单片机交通灯设计
LJMP DIAOY
4.4 对现有程序的扩充
当由于紧急需要对道路进行长时间通行时,就要保持该道路更长时间
的通行。下面以东西方向为例进行紧急通行为例。 紧急通行是平常通行的特例,只要将相应的代码去掉就可以实现延长本车道的通行时间。设置通行时间为20秒。 核心代码如下: FIR: MOV P1, #00H SETB P1.0 CLR P1.1 CLR P1.2 CLR P1.3 MOV R0, #20 MOV R1, #20
SGL: ;与原程序类同
CJNE R0, #00H, SGL LJMP FIR
要实现东西方向的左转通行时,只需要修改FIR中的代码就可以了。时间显示只要修改R0和R1就可以了。
要实现南北方及左转,只要把SGL换成SGL1、把FIR 中代码进行相应的修改就可以了。由于时间紧张,程序有不完善的地方。 系统调试 软件调试 1)静态检查
根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。 2)通电检查
首先调试电源部分。整个电路只需要+5V的电压,接上电源,将220V交流电通入,测试变压器的输出端,整流桥输出,LM7805的输出电压
- 21 -
…… 运城学院计算机科学与技术系毕业论文
是否和理论计算值一致,再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡信号[9]。
4.3 系统软件调试
本系统的软件系统很大,选用一般的伟福仿真器对程序进行编写和调试。除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试
按照系统硬件连线图连接好系统并调试
1.调试程序
? 打开Keil软件,新建工程; ? 选择芯片;
? 新建文档,把编写好代码写入文档并保存了ASM文件; ? 把保存的文档加载到Source Group; ?编译程序;
?设置转换成16进制; ?运行程序的结果;
2. 把编译好的16进制文件(jtd.hex) 输入单片机AT89S51仿真器和对其进行初始化。
3.给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。
以下是在程序调试过程中出现在情况:通电以后,把程序装好,数码管是的数字不变,按复位键后重新开始还是如此。经过和同组人的共同分析后,发现是中断系统在计时到了1秒以后,赋的初值R0,R1没有减1,修改如下:
DSD: INC R3 MOV TH1, #3CH MOV TL1, #0B0H CJNE R3, #20, FH DEC R0 DEC R1
- 22 -
;判断是否够 1秒
单片机交通灯设计
MOV R3, #00H ;R3清0 FH: RETI ;中断返回
通电以后,东西、南北方向的时间均递减,20秒以后,东西方向的20秒用完,变成东西左转、南北各20秒,此后,时间显示和红绿灯不再变化,一直保持这一状态。
经过老师和同组人的共同努力,终于找到原因,问题出在循环控制过程中,当经过第一次20秒判断后,寄存器R2加1,当再次运行到循环控制处时,判断R2与#01H相同,程序跳到SEC处执行,此后一直如此。解决方法如下:
设置3个标记位:
FLAG1 BIT 00H ;标记00H位 FLAG2 BIT 01H FLAG3 BIT 02H
在循环控制中加入判断如:
DIAOY: CJNE R2, #01H, AA ;判断不相等刚跳转 JB FLAG1, AA ;FLAG1为1则跳转 LJMP SEC ;跳到SEC
在跳到SEC后,在运行到该程序后加给FLAG1置数,程序如下: SEC: CLR P1.0 SETB P1.1 CLR P1.2 CLR P1.3 MOV R0, #20 MOV R1, #20 SETB FLAG1
LJMP SGL
其它几部分与之相同的处理。
结论
本系统就是利用了AT89S51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片(如:74HC164、74LS04六位反
- 23 -
运城学院计算机科学与技术系毕业论文
向器、L7805三端稳压电源)来设计交通灯控制器,实现了红灯亮40秒,绿灯和左转绿灯各亮20秒。并通过AT89S51来控制74LS04芯片的输出口设置红、绿灯燃亮的功能和控制74HC164来实现在七段数码管上的时间显示;为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。系统设计简便、实用性强、操作简单、程序设计简便。
系统不足:时间设定中没有黄灯的等待闪烁时间,以及自动根据车流改变红绿灯时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。
致谢
通过本次毕业设计,我在指导老师赵润林副教授的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。另外,此次毕业设计还获得了计科系各位领导和老师的大力支持。在此,我忠心感谢单片机组的其它同学以及计科系各位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导、老师和同学。
- 24 -

