仿真原理图如下(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
|