您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页protues仿真单片机模拟交通灯

protues仿真单片机模拟交通灯

来源:华佗小知识
单片机模拟交通灯(2012-8-12)

主电路图(图一)

Static Display子图(图二)

第1页 总8 页

13:31:37 2013-4-17

单片机模拟交通灯(2012-8-12)

仿真效果(图三)

仿真效果(图四)

第2页 总8 页

13:31:37 2013-4-17

单片机模拟交通灯(2012-8-12)

仿真效果(图五)

仿真效果(图六)

汇编语言程序: SECOND1 EQU SECOND2 DBUF

EQU

EQU

30H 31H

40H

TEMP EQU LED_G1 BIT LED_Y1 BIT 44H P2.1 P2.2

;东西路口绿灯 ;东西路口黄灯

第3页 总8 页

13:31:37 2013-4-17

单片机模拟交通灯(2012-8-12)

LED_R1 BIT LED_G2 BIT LED_Y2 BIT LED_R2 BIT

ORG LJMP

P2.3 P2.4 P2.5 P2.6 START

0100H

TMOD,#01H TH0,#3CH TL0,#0B0H

;置T0为工作方式1 ;置T0定时初值50ms

;东西路口红灯 ;南北路口绿灯 ;南北路口黄灯 ;南北路口红灯

0000H

ORG START: MOV MOV

MOV CLR SETB CLR MOV

TF0 TR0 A

;启动T0

;关闭不相关的LED P1,A

;*************************************************** LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s

MOV MOV MOV

R3,#20 SECOND1,#25 SECOND2,#25

;红灯亮20s ;东西路口计时显示初值25s ;南北路口计时显示初值25s

LCALL DISPLAY

LCALL STATE1 CLR MOV MOV DJNZ MOV DEC DEC ;调用状态1 ;查询50ms到否

;恢复T0定时初值50ms

WAIT1: JNB TF0,WAIT1 TF0 TH0,#3CH TL0,#0B0H R2,WAIT1 R2,#20 SECOND1 SECOND2

;判断1s到否?未到继续状态1 ;置50ms计数初值

;东西路口显示时间减1s ;南北路口显示时间减1s

LCALL DISPLAY DJNZ R3,WAIT1 ;状态1维持20s

;******************************************* MOV R2,#5 ;置50ms计数初值 5*4=20 MOV R3,#3 ;绿灯闪3s

MOV MOV MOV

R4,#4 SECOND1,#5 SECOND2,#5

;闪烁间隔200ms

;东西路口计时显示初值5s ;南北路口计时显示初值5s

LCALL DISPLAY WAIT2: LCALL STATE2

JNB CLR MOV MOV DJNZ

;调用状态2 ;查询50ms到否

;恢复T0定时初值50ms

TF0,WAIT2 TF0 TH0,#3CH

TL0,#0B0H R4,WAIT2

;判断200ms到否?未到继续状态2

第4页 总8 页

13:31:37 2013-4-17

单片机模拟交通灯(2012-8-12)

CPL MOV DJNZ MOV DEC DEC

LED_G1

;东西绿灯闪

;闪烁间隔200ms

;判1s到否?未到继续状态2 ;置50ms计数初值 ;东西路口显示时间减1s

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

R4,#4

R2,WAIT2 R2,#5 SECOND1

SECOND2

LCALL DISPLAY

DJNZ R3,WAIT2 ;状态2维持3s ;**************************************** MOV R2,#20 ;置50ms计数初值

MOV MOV MOV

LCALL LCALL JNB CLR MOV MOV DJNZ MOV DEC DEC

R3,#2

;黄灯闪2s

;东西路口计时显示初值2s ;南北路口计时显示初值2s SECOND1,#2

WAIT3:

SECOND2,#2 DISPLAY STATE3 TF0,WAIT3 TF0 TH0,#3CH

;调用状态3

;查询100ms到否

;恢复T0定时初值100ms TL0,#0B0H R2,WAIT3 R2,#20

SECOND1 SECOND2

;判断1s到否?未到继续状态3 ;置100ms计数初值

;东西路口显示时间减1s ;南北路口显示时间减1s

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

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

MOV MOV MOV

R3,#20 SECOND1,#25 SECOND2,#25

;红灯闪20s ;东西路口计时显示初值25s ;南北路口计时显示初值25s

LCALL DISPLAY WAIT4: LCALL STATE4

JNB CLR MOV MOV DJNZ MOV DEC DEC

;调用状态4 ;查询100ms到否

;恢复T0定时初值100ms

TF0,WAIT4 TF0 TH0,#3CH

TL0,#0B0H R2,WAIT4

R2,#20 SECOND1 SECOND2

;判断1s到否?未到继续状态4

;置100ms计数初值 ;东西路口显示时间减1s

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

LCALL DISPLAY

DJNZ R3,WAIT4

;状态4维持20s

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

第5页 总8 页

13:31:37 2013-4-17

单片机模拟交通灯(2012-8-12)

MOV MOV MOV MOV

R4,#4

;红灯闪20ms

;绿灯闪3s

;东西路口计时显示初值5s ;南北路口计时显示初值5s

R3,#3 SECOND1,#5 SECOND2,#5

LCALL DISPLAY WAIT5: LCALL STATE5 JNB TF0,WAIT5

CLR MOV MOV DJNZ CPL MOV DJNZ MOV DEC DEC

TF0 TH0,#3CH

;调用状态5

;查询100ms到否

;恢复T0定时初值100ms

TL0,#0B0H R4,WAIT5 LED_G2 R4,#4 R2,WAIT5

;判断200ms到否?未到继续状态5 ;南北绿灯闪

;闪烁200ms

;判断1s到否?未到继续状态5

;置100ms计数初值 ;东西路口显示时间减1s

;南北路口显示时间减1s R2,#5

SECOND1 SECOND2

LCALL DISPLAY DJNZ R3,WAIT5

;状态5维持3s

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

MOV MOV MOV

R3,#2 SECOND1,#2 SECOND2,#2

;红灯闪2s

;东西路口计时显示初值2s ;南北路口计时显示初值2s

LCALL DISPLAY WAIT6: LCALL STATE6 JNB TF0,WAIT6 CLR MOV MOV DJNZ MOV DEC DEC

TF0 TH0,#3CH

;调用状态6

;查询100ms到否

;恢复T0定时初值100ms

TL0,#0B0H R2,WAIT6 R2,#20 SECOND1 SECOND2

;判断1s到否?未到继续状态6 ;置100ms计数初值

;东西路口显示时间减1s ;南北路口显示时间减1s

LCALL DISPLAY DJNZ R3,WAIT6 LJMP

LOOP

;状态6维持2s ;大循环

;********************************************** STATE1: ;状态1

SETB CLR CLR CLR CLR

LED_G1 LED_Y1 LED_R1 LED_G2 LED_Y2

第6页 总8 页

13:31:37 2013-4-17

;东西路口绿灯亮

单片机模拟交通灯(2012-8-12)

SETB

LED_R2

;南北路口红灯亮 ;状态2

RET STATE2:

CLR CLR CLR

LED_Y1 LED_R1 LED_G2 LED_Y2 LED_R2

;南北路口红灯亮 ;状态3

CLR SETB RET STATE3:

CLR CLR CLR CLR SETB SETB

LED_G1 LED_R1 LED_G2 LED_Y2 LED_R2 LED_Y1

;南北路口红灯亮 ;东西路口绿灯亮 ;状态4 RET STATE4:

CLR CLR SETB SETB

LED_G1 LED_Y1 LED_R1 LED_G2 LED_Y2 LED_R2

;状态5

;东西路口红灯亮 ;南北路口绿灯亮

CLR CLR RET STATE5:

CLR CLR SETB CLR LED_G1 LED_Y1 LED_R1 LED_Y2 LED_R2 LED_G1 LED_Y1 LED_R1 LED_G2 LED_R2 LED_Y2 AB

第7页 总8 页

13:31:37 2013-4-17

;东西路口红灯亮

CLR RET STATE6: CLR

CLR SETB CLR CLR SETB

;状态6

;东西路口红灯亮

;南北路口红灯亮 ;数码显示

;东西路口计时寄存器

;16进制数拆成两个10进制数

RET DISPLAY:

MOV MOV DIV

A,SECOND1 B,#10

单片机模拟交通灯(2012-8-12)

MOV MOV MOV MOV MOV DIV MOV MOV MOV MOV MOV MOV MOV MOV

AB

DBUF+1,A A,B DBUF,A R0,#DBUF R1,#TEMP R7,#4

DPTR,#LEDMAP A,@R0 DBUF+3,A A,B

DBUF+2,A A,SECOND2 B,#10

;南北路口计时寄存器

;16进制数拆成两个10进制数

DP10:

MOVC A,@A+DPTR MOV @R1,A INC INC DJNZ MOV MOV MOV MOV RLC MOV CLR SETB DJNZ INC DJNZ R0 R1

R7,DP10 A

R0,#TEMP R1,#4 R7,#8 A,@R0 P3.0,C DP12: DP13:

P3.1 P3.1 R7,DP13 R0 R1,DP12 RET LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH

DB 58H,5EH,7BH,71H,0,40H END

;0,1,2,3,4,5 ;6,7,8,9,A,B

;C,D,E,F, ,-

第8页 总8 页

13:31:37 2013-4-17

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务