仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
摘 要... I
一、设计要求以及总体方案介绍... 1
1.2交通灯总体方案介绍... 1
1.3元件清单... 2
二、交通灯各模块及程序设计... 2
2.1数码管显示模块... 3
2.2红绿灯模块... 6
2.3按键模块... 6
三、仿真与部分实物演示... 8
3.1南北通行... 8
3.2东西通行... 8
3.3夜间模式... 8
设计心得... 9
附 录... 10
为了节省按键占用的I/O口,也为了去除查询按键的时间占用,减轻CPU的负担,所以按键使用外部中断的方式,通过74HC573扩展中断。此时只需要使用三个I/O口,使用中断的好处是只有触发中断时程序才回去执行按键功能,增加了程序运行的效率。
具体内容见交通灯压缩包,附有源代码,仿真文件,仿真实物视频
1、东西方向、南北方向均有红、黄、绿三种信号灯,初始红灯
30秒,黄灯闪烁3秒,绿灯30秒,东西方向红灯时刻,南北方向绿灯,南北方向绿灯,东西方向红灯; 2、按键调节与控制功能,通过按键,可以控制某一个方向长时间绿灯,另一个方向长时间红灯;通过按键可以调整某一个方向的红灯时长,比如调整东西方向红灯40秒,绿灯20秒,于此同时,南北方向红灯20秒,绿灯40秒。
3、夜间模式按钮按下,所有方向显示黄灯闪烁
4、实时提醒灯亮的剩余时间
1.2 交通灯总体方案介绍初始状态:东西方向绿灯,南北红灯,南北时间为13秒,东西方向为10秒。
while循环:有按键检测函数,有按键执行程序;数码管显示函数。
定时器T0中断函数:计时时间为50ms,当计时20次计时变量加到20后清零,时间为1s,此时让数码管显示的数自减,判断红绿灯的状态是否需要改变。
外部中断0中断函数:将标志变量flag置1,并读取P2口的值,用以判断按键按下。
1.3 原件清单
名称 | 型号 | 数量 |
单片机 | STC89C52RC | 1 |
排阻 | 10k/4.7K | 1 |
发光二极管 | 红黄绿 | 4/4/4 |
晶振 | 12MHZ | 1 |
电容 | 10uf 30pf | 1/2 |
电阻 | 10K/1K/0.33K | 4/7/14 |
按键 | 4脚 | 7 |
数码管 | 两位八段 | 4 |
74HC573/74LS148 | 2/1 | |
导线 | 15cm | 若干 |
杜邦线 | 15cm/10cm | 若干 |
焊锡 | 若干 | |
单排插针 | SIP20 | 若干 |
DIP40芯片座子 | 1 | |
DC插座 | 1 | |
US转DC002电源线 | 1 | |
三极管 | S9012 | 4 |
万用板 | 7*9cm/9*15cm | 1/1 |