Iqazgq单片机控制交通灯毕业设计 联系客服

发布时间 : 星期二 文章Iqazgq单片机控制交通灯毕业设计更新完毕开始阅读

2 程序源代码

ORG 0000H ;主程序的入口地址

LJMP MAIN ;跳转到主程序的开始处

ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处

ORG 0013H ;外部中断1的中断程序入口地址 MAIN : MOV SP,#50H

MOV IE,#8EH ;CPU 开中断,允许T0中断,T1中断和外部

中断1中断

MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工

作于模式1

MOV TH1,#00H ;T1 计数器清零 MOV TL1,#00H

SETB TR1 ;启动T1计时器 SETB EX1 ;允许INT1 中断 SETB IT1 ;选择边沿触发方式 MOV DPTR ,#0003H

MOV A, #80H ;给8255赋初值,8255工作于方式0 MOVX @DPTR, A

AGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,

若P3.1为1 跳转

MOV A,P1

JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,

否则设定绿灯间

MOV R0,#00H ;R0 清零

MOV R0,A ;存入东西方向绿灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN RED: MOV A,P1

ANL A,#7FH ;P1.7 置0 MOV R7,#00H ;R7 清零

MOV R7,A ;存入东西方向红灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN

;-------------------------------------------

N0: SETB TR0 ;启动T0计时器 MOV 76H,R7 ;红灯时间存入76H

N00: MOV A,76H ;东西方向禁止,南北方向通行 MOV R3,A

MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮 MOV A,#0DDH MOVX @DPTR, A N01: JB P2.0,B0 N02: SETB P3.0

CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处

;------黄灯闪烁5秒程序------

N1: SETB P3.0 MOV R3,#05H

MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0D4H MOVX @DPTR,A

N11: MOV R4,#00H

N12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒

N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0DDH MOVX @DPTR,A N14: MOV R4,#00H

CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N1 ;闪烁时间达5秒则退出 ;-----------------------------------------------

N2: MOV R7,#00H

MOV A,R0 ;东西通行,南北禁止 MOV R3,A

MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮

MOV A,#0EBH MOVX @DPTR,A N21: JB P2.0,T03 N22: CJNE R3,#00H,N21 ;------黄灯闪烁5秒程序------