一、
设计任务
1、如图,单片机的P2口接上一个数码管(显示十位),P3口接上一个数码管(显示个位);P1.3—P1.0分别接上南北方向的红、黄、绿、左拐灯,P1.4—P1.7分别接上东西方向的红、黄、绿、左拐灯。用单片机实现:开始时,8个灯和数码管全亮3s(用以检测灯和数码管的好坏)。接着,南北方向的红灯和东西方向的绿灯亮,30s后,绿灯灭,黄灯亮5s,接着黄灯闪烁5s;接着黄灯灭,左拐灯亮,15s后,
黄灯闪烁5s,接着都灭了,东西方向的交通也完成。接着,南北方向绿灯和东西方向的红灯亮,重复上面的过程,直到南北方向交通完成。重复整个系统。
二、
电路原理图
图1——1:开机时,全亮,确定灯和数码管是好的
图1——2:东西方向通车,绿灯亮,30s
图1——3:东西方向通人行,黄灯10s
图1—4:黄灯闪烁,告诉行人快过,时间快到了
图1—5:左拐灯亮,东南方向通车
图1—6:南北方向通车,东西禁止
图1—7:南北方向通行人
图1—8:东北方向通车
三、
设计程序
//交通灯控制系统
ORG 00H
MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
LCALL DELAY
LCALL DELAY
LCALL DELAY
START:
MOV R0,#30
MOV P1,#01001000B
MOV DPTR,#TABLE
MOV P2,#00H
MOV P3,#00H
S1:
MOV R1,#10
MOV A,R0
MOV B,R1
DIV AB
MOVC A,@A+DPTR
MOV P2,A
MOV A,B
MOVC A,@A+DPTR
MOV P3,A
LCALL DELAY
DJNZ R0,S1
MOV R0,#5
MOV P1,#00101000B
LCALL LI
LCALL XIAN
MOV R0,#15
MOV P1,#10001000B
LCALL LI
MOV R0,#30
MOV P1,#00010010B
LCALL LI
MOV R0,#5
MOV P1,#00010100B
LCALL LI
LCALL JI
MOV R0,#15
MOV P1,#00010001B
LCALL LI
LJMP START
XIAN:
MOV P2,#3FH
MOV P3,#6DH
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#66H
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#4FH
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#5BH
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#06H
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#3FH
MOV P1,#00101000B
LCALL DELAYH
MOV P1,#00001000B
LCALL DELAYH
RET
LI:
MOV DPTR,#TABLE
MOV P2,#00H
MOV P3,#00H
S2:
MOV R1,#10
MOV A,R0
MOV B,R1
DIV AB
MOVC A,@A+DPTR
MOV P2,A
MOV A,B
MOVC A,@A+DPTR
MOV P3,A
LCALL DELAY
DJNZ R0,S2
RET
JI:
MOV P2,#3FH
MOV P3,#6DH
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#66H
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#4FH
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#5BH
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#06H
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
MOV P2,#3FH
MOV P3,#3FH
MOV P1,#00010100B
LCALL DELAYH
MOV P1,#00010000B
LCALL DELAYH
RET
TABLE:
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY:MOV R5,#100
D1:MOV R6,#20
D2:MOV R4,#248
DJNZ R4,$
DJNZ R6,D2
DJNZ R5,D1
RET
DELAYH:MOV R5,#50
D3:MOV R6,#20
D4:MOV R4,#248
DJNZ R4,$
DJNZ R6,D4
DJNZ R5,D3
RET
END |