实验二 交通灯程序设计
一、实验目的
根据已知电路和设计要求编写、编译、仿真运行交通灯程序。 熟悉掌握PROTEUS硬件软件系统仿真平台的使用方法; 熟悉掌握软件延时的方法。
二、实验内容
1、熟悉掌握软件仿真工具的基本使用方法。 2、用汇编语言/C语言设计交通灯程序,自定义6~8个LED灯作十字路口交通灯,东西方向10s南北方向15s交替通行(东西向:绿灯(10s)→黄灯(5s)→红灯(15s),南北向:红灯(15s)→绿灯(10s)→黄灯(5s),可用定时计数器延时或软件延时)。
3、编译程序生成*.hex文件,并在Proteus平台实现交通灯控制系统的仿真。 4、思考:考虑分别用2个7段数码管来显示东西、南北向通行时间。
三、实验原理
PS:依据电路原理图(既是《单片机实验电路板原理图》文档图,可局部图)叙述实现控制的原理、方法。8个LED发光二极管阳极的接法相同,都经过排阻后连接在一起,为公共端,接电源,阴极连接到单片机的P2接口,8个发光二极管变化只随P2接口状态变化而变化,给P2接口不同数据,显示8个LED发光二极管的不同状态。
四、实验方法与步骤
设计思路和方法:
东西方向红灯亮10东西方向红灯亮5秒东西方向黄灯亮5秒东西方向绿灯亮10
秒秒南北方向绿灯秒南北方向黄灯5秒 秒南北方向红灯5秒 秒秒南北方向红灯
10秒 10秒
设计步骤:
1.交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮
第 1 页 共 6 页
单片机原理与接口技术实验
之后,东西路口的绿灯亮,南北路口的红灯亮,延时一段时间后,东西路口的绿灯,闪烁若干次后(10秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(5秒),东西路口的红灯亮(15),南北路口的绿灯亮,延时一段时间后,南北路口的绿灯闪烁若干次后(10秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮(5),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。 2.编写源代码,并画出电路图;
五、实验结果与分析
1、编译过程
a)源代码(汇编、C语言设计) ORG 00H JMP MAIN
ORG 30H MAIN:
LP: MOV A,#77H MOV p2,A
LCALL DELAY1 MOV A,#7BH MOV p2,A
LCALL DELAY2 MOV A,#0AFH
MOV p2,A
LCALL DELAY1 MOV A,#0CFH MOV p2,A
LCALL DELAY2 SJMP LP DELAY1:
MOV 50H,#20 MOV 51H,#10 MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 L2: JBC TF1,L1 SJMP L2
L1: MOV TH1,#3CH MOV TL1,#0B0H DJNZ 50H,L2 MOV 50H,#20 DJNZ 51H,L2 MOV 51H,#10 RET
DELAY2:
MOV 52H,#20 MOV 53H,#5
MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 L22: JBC TF1,L12 SJMP L22
L12: MOV TH1,#3CH MOV TL1,#0B0H DJNZ 52H,L22
第 2 页 共 6 页
单片机原理与接口技术实验
MOV 52H,#20 DJNZ 53H,L22 MOV 53H,#5 RET
b)编译、调试过程
第 3 页 共 6 页
单片机原理与接口技术实验
c)编译结果分析
2、仿真结果及分析 a)仿真过程
第 4 页 共 6 页
单片机原理与接口技术实验
b)单步仿真及断点设置仿真
c)单步、断点仿真各个相关SFR、SRAM单元结果分析及结论 几种交通灯的情况:
第 5 页 共 6 页
单片机原理与接口技术实验
六、实验结论
先设计没有设置时间功能的交通路灯,然后将时间功能添加进去。利用计时器中断控制秒信号,一个周期有四个状态。基于时钟和流水灯的基础,编好了没有设置功能的交通灯控制代码。 这期
间没有遇到什么麻烦,只有一处,就是判断交通灯是否应该变换时间和红绿灯亮的状态的条件还不能确定。经常会出现差一秒的情况。不过这个问题可以通过改变代码再调试程序的方法来解决,并不棘手。但是数码管显示部分没有做成功。
第 6 页 共 6 页
因篇幅问题不能全部显示,请点此查看更多更全内容