《2022年2022年交通灯程序 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年交通灯程序 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编程提示:(1) 通过 74LS164 控制发光二极管,以模拟交通灯的控制。(2) 程序中设定好计数初值,开始倒数。(3) 各发光二极管共阴极,使其点亮应使对应的端口输出高电平。;=交通灯控制器 = SECOND1 EQU 30H ; 东西路口计时寄存器SECOND2 EQU 31H ; 南北路口计时寄存器DBUF EQU 40H ; 显示码缓冲区1 TEMP EQU 44H ; 显示码缓冲区2 LED_G1 BIT P2.1 ; 东西路口绿灯LED_Y1 BIT P2.2 ; 东西路口黄灯LED_R1 BIT P2.3 ; 东西路口红灯LED_G2 BIT P2.4 ; 南北路口绿灯LED_
2、Y2 BIT P2.5 ; 南北路口黄灯LED_R2 BIT P2.6 ; 南北路口红灯ORG 0000H LJMP START ORG 0100H START: MOV TMOD,#01H ; 置 T0 为工作方式1 MOV TH0,#3CH ; 置 T0 定时初值50ms MOV TL0,#0B0H CLR TF0 SETB TR0 ; 启动 T0 CLR A MOV P1,A ; 关闭不相关的LED ;* LOOP: MOV R2,#20 ; 置 1s 计数初值 ,50ms*20=1s MOV R3,#20 ; 红灯亮 20s MOV SECOND1,#25 ; 东西路口计时显示初值25
3、s MOV SECOND2,#25 ; 南北路口计时显示初值25s LCALL DISPLAY LCALL STATE1 ; 调用状态 1 WAIT1: JNB TF0,WAIT1 ; 查询 50ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值50ms MOV TL0,#0B0H DJNZ R2,WAIT1 ;判断 1s 到否?未到继续状态1 MOV R2,#20 ; 置 50ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC SECOND2 ; 南北路口显示时间减1s 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
4、- - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - LCALL DISPLAY DJNZ R3,WAIT1 ; 状态 1 维持 20s ;* MOV R2,#5 ; 置 50ms计数初值5*4=20 MOV R3,#3 ; 绿灯闪 3s MOV R4,#4 ; 闪烁间隔 200ms MOV SECOND1,#5 ; 东西路口计时显示初值5s MOV SECOND2,#5 ; 南北路口计时显示初值5s LCALL DISPLAY WAIT2: LCALL STATE2 ; 调用状态2 JNB TF0,WAIT2
5、 ; 查询 50ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值 50ms MOV TL0,#0B0H DJNZ R4,WAIT2 ; 判断 200ms到否?未到继续状态2 CPL LED_G1 ; 东西绿灯闪MOV R4,#4 ; 闪烁间隔200ms DJNZ R2,WAIT2 ; 判 1s 到否?未到继续状态2 MOV R2,#5 ; 置 50ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC SECOND2 ; 南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT2 ; 状态 2 维持 3s ;* MOV R2,#20
6、 ; 置 50ms计数初值MOV R3,#2 ; 黄灯闪 2s MOV SECOND1,#2 ; 东西路口计时显示初值2s MOV SECOND2,#2 ; 南北路口计时显示初值2s LCALL DISPLAY WAIT3: LCALL STATE3 ; 调用状态3 JNB TF0,WAIT3 ; 查询 100ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值 100ms MOV TL0,#0B0H DJNZ R2,WAIT3 ; 判断 1s 到否?未到继续状态3 MOV R2,#20 ; 置 100ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC
7、 SECOND2 ; 南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT3 ; 状态 3 维持 2s 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - ;* MOV R2,#20 ; 置 50ms计数初值MOV R3,#20 ; 红灯闪 20s MOV SECOND1,#25 ; 东西路口计时显示初值25s MOV SECOND2,#25 ; 南北路口计时显示初值25s LCALL DISPLAY WAI
8、T4: LCALL STATE4 ; 调用状态4 JNB TF0,WAIT4 ; 查询 100ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值 100ms MOV TL0,#0B0H DJNZ R2,WAIT4 ; 判断 1s 到否?未到继续状态4 MOV R2,#20 ; 置 100ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC SECOND2 ; 南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT4 ; 状态 4 维持 20s ;* MOV R2,#5 ; 置 50ms计数初值MOV R4,#4 ; 红灯闪 20m
9、s MOV R3,#3 ; 绿灯闪 3s MOV SECOND1,#5 ; 东西路口计时显示初值5s MOV SECOND2,#5 ; 南北路口计时显示初值5s LCALL DISPLAY WAIT5: LCALL STATE5 ; 调用状态5 JNB TF0,WAIT5 ; 查询 100ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值 100ms MOV TL0,#0B0H DJNZ R4,WAIT5 ; 判断 200ms到否?未到继续状态5 CPL LED_G2 ; 南北绿灯闪MOV R4,#4 ; 闪烁 200ms DJNZ R2,WAIT5 ; 判断 1s 到
10、否?未到继续状态5 MOV R2,#5 ; 置 100ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC SECOND2 ; 南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT5 ; 状态 5 维持 3s ;* MOV R2,#20 ; 置 50ms计数初值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - MOV R3,#2 ; 红灯闪 2s MOV SECOND1,#2 ; 东西路口
11、计时显示初值2s MOV SECOND2,#2 ; 南北路口计时显示初值2s LCALL DISPLAY WAIT6: LCALL STATE6 ;调用状态6 JNB TF0,WAIT6 ; 查询 100ms到否CLR TF0 MOV TH0,#3CH ; 恢复 T0 定时初值 100ms MOV TL0,#0B0H DJNZ R2,WAIT6 ; 判断 1s 到否?未到继续状态6 MOV R2,#20 ; 置 100ms计数初值DEC SECOND1 ; 东西路口显示时间减1s DEC SECOND2 ; 南北路口显示时间减1s LCALL DISPLAY DJNZ R3,WAIT6 ; 状
12、态 6 维持 2s LJMP LOOP ; 大循环;* STATE1: ; 状态 1 SETB LED_G1 ; 东西路口绿灯亮CLR LED_Y1 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 ; 南北路口红灯亮RET STATE2: ; 状态 2 CLR LED_Y1 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 ; 南北路口红灯亮RET STATE3: ; 状态 3 CLR LED_G1 CLR LED_R1 CLR LED_G2 CLR LED_Y2 SETB LED_R2 ; 南北路口红灯亮SET
13、B LED_Y1 ; 东西路口绿灯亮RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - STATE4: ; 状态 4 CLR LED_G1 CLR LED_Y1 SETB LED_R1 ; 东西路口红灯亮SETB LED_G2 ; 南北路口绿灯亮CLR LED_Y2 CLR LED_R2 RET STATE5: ; 状态 5 CLR LED_G1 CLR LED_Y1 SETB LED_R1 ; 东西路口红灯亮CLR LED
14、_Y2 CLR LED_R2 RET STATE6: ; 状态 6 CLR LED_G1 CLR LED_Y1 SETB LED_R1 ; 东西路口红灯亮CLR LED_G2 CLR LED_R2 SETB LED_Y2 ; 南北路口红灯亮RET DISPLAY: ; 数码显示MOV A,SECOND1 ; 东西路口计时寄存器MOV B,#10 ;16 进制数拆成两个10 进制数DIV AB MOV DBUF+3,A MOV A,B MOV DBUF+2,A MOV A,SECOND2 ; 南北路口计时寄存器MOV B,#10 ;16 进制数拆成两个10 进制数DIV AB MOV DBUF+
15、1,A MOV A,B MOV DBUF,A MOV R0,#DBUF MOV R1,#TEMP MOV R7,#4 DP10: MOV DPTR,#LEDMAP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,DP10 MOV R0,#TEMP MOV R1,#4 DP12: MOV R7,#8 MOV A,R0 DP1
16、3: RLC A MOV P3.0,C CLR P3.1 SETB P3.1 DJNZ R7,DP13 INC R0 DJNZ R1,DP12 RET LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH ;0 ,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6 ,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, ,- END 运行实验程序编译程序时,在系统“P.”状态后,运行程序时 L1L12 发光二极管模拟交通灯显示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -