单片机控制交通灯程序代码_单片机控制交通灯程序

2020-02-28 其他范文 下载本文

单片机控制交通灯程序代码由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机控制交通灯程序”。

毕业设计

程序源代码

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秒程序------N3:

MOV R3,#05H

MOV DPTR,#0000H

;置8255A口,东西,南北方向黄灯亮

毕业设计

MOV A,#0E2H

MOVX @DPTR,A N31:

MOV R4,#00H

CJNE R4,#7DH,$

;黄灯持续亮0.5秒

N32:

MOV DPTR,#0000H;置8255A口,南北方向黄灯灭

MOV A,#0EBH

MOVX @DPTR,A N33:

MOV R4,#00H

CJNE R4,#7DH,$

;黄灯持续灭0.5秒

CJNE R3,#00H,N3

;闪烁时间达5秒则退出

SJMP N00;------闯红灯报警程序------B0:

MOV R2,#03H

;报警持续时间3秒 B01:

MOV A,R3

JZ N1

;若倒计时完毕,不再报警

CLR P3.0

;报警

CJNE R2,#00H,B01

;判断3秒是否结束

SJMP N02;------1秒延时子程序-------N7:

RETI T0_INT:MOV TL0,#9AH

;给定时器T0送定时10ms的初值

MOV TH0,#0F1H

INC R4

INC R5

CJNE R5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序

MOV R5,#00H

;R5清零

DEC R3

;倒计时初值减一

DEC R2

;报警初值减一 T01:

ACALL DISP

;调用显示子程序

RETI

;中断返回;------显示子程序------DISP: JNB P2.4,T02 DISP1: MOV B,#0AH

MOV A,R3

;R3中值二转十显示转换

DIV AB

MOV 79H,A

MOV 7AH,B DIS:

MOV A,79H

;显示十位

毕业设计

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0F7H

MOVX @DPTR,A

LCALL DELAY DS2:

MOV A,7AH

;显示个位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0FBH

MOVX @DPTR,A

RET;------东西方向车流量检测程序------T03:

MOV A,R3

SUBB A,#00H

;若绿灯倒计时完毕,不再检测车流量

JZ

N3

JB P2.0,T03

INC R7

CJNE R7,#64H,E1

MOV R7,#00H

;中断到100次则清零 E1:

SJMP N22;------东西方向车流量显示程序------T02:

MOV B,#0AH MOV

A,R7

;R7中值二转十显示转换

DIV AB

MOV 79H,A

MOV 7AH,B DIS3: MOV A,79H

;显示十位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

毕业设计

MOV A,#0F7H

MOVX @DPTR,A

LCALL DELAY DS4:

MOV A,7AH

;显示个位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0FBH

MOVX @DPTR,A

LJMP N7;------延时4MS子程序----------DELAY: MOV R1,#0AH LOOP: MOV R6,#64H

NOP LOOP1: DJNZ R6,LOOP1

DJNZ R1,LOOP

RET

;------字符表------TAB:

DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

《单片机控制交通灯程序代码.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
单片机控制交通灯程序代码
点击下载文档
相关专题 单片机控制交通灯程序 交通灯 单片机 程序代码 单片机控制交通灯程序 交通灯 单片机 程序代码
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文