微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 实验八 交通灯控制(80C51单片机汇编语言编程)

实验八 交通灯控制(80C51单片机汇编语言编程)

时间:11-23 来源:互联网 点击:
设计一交通灯控制系统,控制东西方向的红、黄、绿灯和南北方向的红、黄、绿灯,可手动控制和自动控制,设置两个输入控制开关(可用P1.0、P1.1做输入控制),控制过程如下:
东西方向 南北方向
P1.0 P1.1 绿 绿
1 0 亮 3S后亮
0 1 亮 3S后 亮
0 0
1 1 闪(亮1S灭1S) 闪(亮1S灭1S)

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP T0

ORG 0030H
MAIN:MOV P1,#03H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
MOV R2,#30
MOV R3,#30
MOV R4,#50
MOV R5,#50
MOV R6,#10
MOV R7,#10
SETB TR0
SJMP $

ORG 0200H;进入定时器,首先判断情况
T0:SETB P1.0
SETB P1.1
JB P1.0,AA ;每100ms判断一次情况
JNB P1.0,BB
AA:JB P1.1,SHAN ;11
JNB P1.1,ZD2 ;01
BB:JB P1.1,ZD1 ;10
JNB P1.1,HONG;00

SHAN:MOV TH0,#3CH;黄灯闪烁情况
MOV TL0,#0B0H
CJNE R6,#00H,LOOP1
MOV P1,#01001011B;亮一秒
DJNZ R7,GORET1
MOV R6,#0AH
GORETI:RETI
LOOP1:MOV P1,#00000011B;灭一秒
DJNZ R6,GORET1
MOV R7,#0AH
GORET1:RETI

HONG:MOV TH0,#3CH ;红灯一直亮
MOV TL0,#0B0H
MOV P1,#10010000B
RETI

ZD1:JB P1.4,ZD11
MOV TH0,#3CH;自动情况
MOV TL0,#0B0H
CJNE R4,#00H,LOOP2
MOV P1,#10001001B;黄灯亮3秒
DJNZ R2,GORET2
MOV R4,#50
LJMP ZD11
LOOP2:MOV P1,#10000101B;红灯亮5秒
DJNZ R4,GORET2
MOV R2,#1EH
GORET2:RETI

ZD11:MOV TH0,#3CH ;自动情况11
MOV TL0,#0B0H
CJNE R4,#00H,LOOP5
MOV P1,#01010001B;黄灯亮3秒
DJNZ R2,GORET3
MOV R4,#32H
MOV P1,#10000110B
AJMP ZD1
LOOP5:MOV P1,#00110001B;绿灯亮5秒
DJNZ R4,GORET3
MOV R2,#1EH
GORET3:RETI

ZD2:JB P1.7,ZD21
MOV TH0,#3CH ;自动情况2
MOV TL0,#0B0H
CJNE R5,#00H,LOOP3
MOV P1,#01010010B;黄灯亮3秒
DJNZ R3,GORET4
MOV R5,#32H
AJMP ZD21
LOOP3:MOV P1,#00110010B;绿灯亮5秒
DJNZ R5,GORET4
MOV R3,#1EH
GORET4:RETI

ZD21:MOV TH0,#3CH;自动情况
MOV TL0,#0B0H
CJNE R5,#00H,LOOP6
MOV P1,#10001010B;黄灯亮3秒
DJNZ R3,GORET5
MOV R5,#32H
MOV P1,#00110010B
AJMP ZD2
LOOP6:MOV P1,#10000110B;红灯亮5秒
DJNZ R5,GORET5
MOV R3,#1EH
GORET5:RETI

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top