文档详情

protues仿真单片机模拟交通灯.doc

发布:2017-09-16约5.22千字共8页下载文档
文本预览下载声明
主电路图(图一) Static Display子图(图二) 仿真效果(图三) 仿真效果(图四) 仿真效果(图五) 仿真效果(图六) 汇编语言程序: SECOND1 EQU 30H SECOND2 EQU 31H DBUF EQU 40H TEMP EQU 44H LED_G1 BIT P2.1 ;东西路口绿灯 LED_Y1 BIT P2.2 ;东西路口黄灯 LED_R1 BIT P2.3 ;东西路口红灯 LED_G2 BIT P2.4 ;南北路口绿灯 LED_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 ;东西路口计时显示初值25s 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 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 ;查询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 ;置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
显示全部
相似文档