发布时间 : 星期日 文章闪烁LED小灯的设计 - 图文更新完毕开始阅读
74HC164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存
器,强制所有的输出为低电平。
AT89C51通过P3.0口和P3.1口对其进行片选控制 2.2.2显示电路
3
图3 LED数码管显示电路:
本次LED显示电路主要采用74HC164与共阳极数码管相接。通过四片74HC164来控制数码管的输出。74HC164的1,2号脚接到AT89C51的P3.0口,第8脚接到P3.1口。 2.2.3十字路口交通灯显示电路:
图4 通过LED红、绿、黄三种颜色灯的亮与灭来模仿十字路口的交通灯。 交通灯的变化规律:
红灯亮20秒,黄灯亮15秒,绿灯亮5秒。假设一个十字路口为东西南北走向。分为五个状态:1初始状态为南北绿灯亮,东西红灯亮;2南北绿灯亮20秒后,转为黄灯闪烁5秒,东西红灯仍亮;3南北黄灯亮5秒后,转为红灯,东西绿灯亮;4东西绿灯亮20秒后,转为黄灯,南北红灯亮;5东西黄灯亮5秒后,转为红灯;南北为绿灯亮。重复循环。
交通灯变化过程中用数码管进行计时,以便观察。
第三章 软件设计及调试
3.1流程图 4
开始
初始化变量
a=1 a=0 N 时间显示为0 时间显示为0 状态2 状态5 0.5秒定时时间 状态标志量a=0 Y 状态 1 N 状态4 显示时间的子程序 显示时间子程序 给定端口值 给定端口值 延时子程序 延时的子程序 Y N 显示时间小于5秒 Y 显示时间小于5秒 N 显示时间的子程序 给定端口的值 显示时间的子程序 给定端口的值 延时子程序 延时子程序 N 5
返回 Y Y 返回 3.2程序
3.2.1主程序 void main(void)
{
TMOD=0x01; //设置定时方式1
TH0=0x3c; //定时初值50MS TL0=0xb0;
TR0=1; //T0溢出中断请求开启 EA=1; //总中断开启 ET0=1; //T0中断开启
EX0=1; //外部中断INT0开启 IT0=1; //设置开关下降沿有效 EX1=1; //外部中断INT0开启
if(!a) //a=0,东西显示19开始倒计时,南北14开始倒计时 IT1=1; //设置开关下降沿有效 ns_time=ns_time_green; //东西南北红黄绿灯时间赋值 ew_time=ew_time_red;
ew_time_red=ns_time_green+ns_time_yellow;
6