信号灯实验解读.doc

一、设计目的: 1.89C51单片机实际应用及基本原理 2.巩固和加深用汇编语言程序设计的能力。 二、设计条件和要求: 1.通过89C51控制LED发光二极管的亮灭。 2.A口控制红灯,B口控制黄灯,C口控制绿灯。 3.输出为0则亮,输出为1则灭。 4.用循环中断计数来控制变换时间 。 三、设计任务: 1.西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿 黄灯显示包括人行道在内的道路交通状态。 2.某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。 紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。 四、设计思想 工作寄存器及存储单元分配 1.工作寄存器 R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器 2.片内存储单元 30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元 3.标志位 00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位 程序 SNF EQU 00H ;;;南北通行标志位 EWF EQU 01H ;;;东西通行标志位 URF EQU 02H ;;;紧急事件标志位 ORG 0000H LJMP MAIN ;;;上电转主程序 ORG 000BH ;;;定时中断入口 LJMP DSZD ORG 0003H ;;;紧急中断入口 LJMP URZD ORG 0030H MAIN: LCALL INIT ;;;调用初始化子程序 LOOP: LCALL DIS ;;;循环执行显示子程序 AJMP LOOP ;///////////初始化程序 INIT: SETB SNF SETB EWF SETB URF MOV R2,#20 ;;;定时器中断20次为1s MOV TMOD,#01H ;;;初始化定时器 MOV TL0,#0B0H MOV TH0,#3CH SETB EA ;;;开定时中断与紧急中断 SETB ET0 SETB TR0 SETB EX0 SETB IT0 ;;;设置中断程控方式 MOV DPTR,#TAB ;;;数值首地址放入DPTR中 MOV 40H,#40 ;;;东南西北通行时间设置 MOV 41H,#40 MOV 30H,#40 ;;;通行时间初始化 MOV 31H,#60 MOV P0,#4CH ;;;初始化时南北通行并把交通灯状态分别放在32H和33H中 MOV 32H,#4CH MOV P2,#15H MOV 33H,#15H RET ;////////////显示子程序 DIS: MOV P3,#0DFH ;;;选中南北方向的十位数码管 MOV A,30H ;;;把显示数据送人数码管显示 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P1,A ;;; LCALL D1MS MOV P3,#0EFH ;;;选中南北方向的个位数码管 MOV A,B ;;;送入数码管显示 MOVC A,@A+DPTR MOV P1,A LCALL D1MS MOV P3,#7FH ;;;选中第东西方向的十位数码管 MOV A,31H ;;;送入数码管显示 MOV B,#10 DIV

文档评论(0)

1亿VIP精品文档

相关文档