protues仿真单片机模拟交通灯

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主电路图(图一)

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 STA TE1 ;调用状态1

WAIT1: JNB TF0,W AIT1 ;查询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 STA TE2 ;调用状态2

JNB TF0,W AIT2 ;查询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 STA TE3 ;调用状态3

JNB TF0,W AIT3 ;查询100ms到否

CLR TF0

MOV TH0,#3CH ;恢复T0定时初值100ms

MOV TL0,#0B0H

DJNZ R2,WAIT3 ;判断1s到否?未到继续状态3

MOV R2,#20 ;置100ms计数初值

DEC SECOND1 ;东西路口显示时间减1s

DEC SECOND2 ;南北路口显示时间减1s

LCALL DISPLAY

DJNZ R3,WAIT3 ;状态3维持2s

;*******************************************

MOV R2,#20 ;置50ms计数初值

MOV R3,#20 ;红灯闪20s

MOV SECOND1,#25 ;东西路口计时显示初值25s

MOV SECOND2,#25 ;南北路口计时显示初值25s

LCALL DISPLAY

WAIT4: LCALL STA TE4 ;调用状态4

JNB TF0,W AIT4 ;查询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计数初值

相关文档
最新文档