找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18489|回复: 7
打印 上一主题 下一主题
收起左侧

51单片机红绿灯系统,加数码管显示倒计时时间

  [复制链接]
跳转到指定楼层
楼主
100黑币
已经用单片机的定时器设计了交通信号灯控制电路(东西绿与南北红5S;东西绿灭黄闪烁5次;东西红与南北绿5S;南北绿灭黄闪烁5次。),请在此的基础上加上数码管显示器,将交通灯的倒计时时间显示出来。求仿真图和程序。有意向帮忙的大佬可以留下邮箱,已经做好的keil和proteus仿真可打包发送。
未加数码管计时程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char


sbit RED_A = P0^0;
sbit YELLOW_A = P0^1;
sbit GREEN_A = P0^2;
sbit RED_B = P0^3;
sbit YELLOW_B = P0^4;
sbit GREEN_B = P0^5;


uchar Count = 0,Flash_Count = 0,Operation_Type = 1;


void T0_INT() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        switch(Operation_Type)
        {
                 case 1:
                        RED_A=0;YELLOW_A=0;GREEN_A=1;
                        RED_B=1;YELLOW_B=0;GREEN_B=0;
                        if(++Count != 100) return;
                        Count=0;
                        Operation_Type = 2;
                        break;
                case 2:
                        if(++Count != 8) return;
                        Count=0;
                        YELLOW_A=!YELLOW_A;
                        GREEN_A=0;
                        if(++Flash_Count != 10) return;
                        Flash_Count=0;
                        Operation_Type = 3;
                        break;
                case 3:
                        RED_A=1;YELLOW_A=0;GREEN_A=0;
                        RED_B=0;YELLOW_B=0;GREEN_B=1;
                        if(++Count != 100) return;
                        Count=0;
                        Operation_Type = 4;
                        break;       
                case 4:
                        if(++Count != 8) return;
                        Count=0;
                        YELLOW_B=!YELLOW_B;
                        GREEN_B=0;
                        if(++Flash_Count !=10)
                        return;
                        Flash_Count=0;
                        Operation_Type = 1;
                        break;       
        }
}


void main()
{
       
        TMOD = 0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        IE = 0x82;
        TR0 = 1;
        while(1);
}


1.png (51.92 KB, 下载次数: 90)

1.png

最佳答案

查看完整内容

给你介绍一个正确有效的案例!实例30 带限行时间显示的模拟交通灯先Proteus仿真一下,确认有效。 缩短亮灯时间,是为了仿真演示,便于观看,否则,你等得不耐烦了,实际应用时,可可修改延长。 以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程 ...

评分

参与人数 1黑币 +5 收起 理由
wlt1999 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2017-11-18 18:14 | 只看该作者
本帖最后由 zl2168 于 2017-11-19 19:37 编辑

给你介绍一个正确有效的案例!
实例30  带限行时间显示的模拟交通灯
Proteus仿真一下,确认有效。
实例30 带限行时间显示模拟交通灯.rar (40.64 KB, 下载次数: 850)

缩短亮灯时间,是为了仿真演示,便于观看,否则,你等得不耐烦了,实际应用时,可可修改延长。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。


回复

使用道具 举报

板凳
ID:302712 发表于 2018-4-6 14:39 | 只看该作者
学习了,谢谢分享
回复

使用道具 举报

地板
ID:205808 发表于 2018-4-6 15:34 | 只看该作者

学习了,谢谢分享
回复

使用道具 举报

5#
ID:752616 发表于 2020-5-15 15:34 | 只看该作者
zl2168 发表于 2017-11-18 18:14
给你介绍一个正确有效的案例!实例30  带限行时间显示的模拟交通灯先Proteus仿真一下,确认有效。
缩短亮 ...

为什么没有.c文件,看不到源代码
回复

使用道具 举报

6#
ID:758457 发表于 2020-5-22 17:18 | 只看该作者
zl2168 发表于 2017-11-18 18:14
给你介绍一个正确有效的案例!实例30  带限行时间显示的模拟交通灯先Proteus仿真一下,确认有效。
缩短亮 ...

为什么proteus 文件显示无法打开啊
回复

使用道具 举报

7#
ID:773702 发表于 2020-6-9 10:42 | 只看该作者
没有程序哭泣
回复

使用道具 举报

8#
ID:915786 发表于 2021-5-15 10:19 | 只看该作者
你好,有附件的程序吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表