单片机的十字路口交通灯控制器的设计毕业论文(8)

2019-04-22 16:41

MOV 67H,R0;东西方向绿灯时间存入67H中,也是南北方向红灯时间 MOV 68H,#00H ; 68H单元清零,用来记录车流量

CLR 08H ;通过检测位地址08H来判断外部中断是用来报警还

;是用来检测车流量 MOV R3,66H

N01: LCALL DISP1 ;东西方向数码管显示红灯时间 LCALL DISP2 ; 南北方向数码管显示绿灯时间

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

MOVX @DPTR, A

CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到N01处执行 ;----------黄灯闪烁5秒---------------------------------------------------------- SETB P3.0

LCALL F0 ;调黄灯闪烁5s子程序

;-----东西方向绿灯倒计时显示,南北方向红灯倒计时显示-------------- SETB 08H

MOV 68H,#00H ; 68H单元清零

MOV R3,67H

N1: L CALL DISP1 ;东西方向数码管显示绿灯时间

LCALL DISP2; 南北方向数码管显示红灯时间

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

CJNE R3,#00H,N1 ;判断倒计时是否结束

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

SETB P3.0

LCALL F0 ;调黄灯闪烁5s子程序

LJMP AGAIN ;反复循环执行

;----------------主程序完,以下为子程序------------------------------------- ;--------1S中断子程序-------------------------------------------------------- T0_INT: INC R4 ;R4每50ms加1 MOV TH0,#3CH ;重装定时器T0初值

MOV TL0,#0B0H

DJNZ 65H,NEXT ;判断计时是否到1s,不到转NEXT

MOV 65H,#14H ;恢复65H存储器中的值 DEC R3 ;倒计时初值减1 DEC R2 ;报警初值减1 LCALL DISP1 LCALL DISP2

;调时间显示子程序

NEXT: RETI

;---------- 东西路口红外对管检测中断程序--------------------------- B0: JB 08H,B01

LCALL D0 ;调用报警子程序

SJMP B02

32

B01: LCALL E0 ;调用车流量与显示子程序 B02: RETI

;---------- 南北路口红外对管检测中断程序------------------------ C0: JB 08H,C01

LCALL E0 ;调用车流量与显示子程序 SJMP C02

C01: LCALL D0 ;调用报警子程序

C02: RETI

;------------东西方向时间显示子程序--------------------------------- DISP1: MOV B,#0AH

MOV A,R3 ;R3中值二转十显示转换 DIV AB

MOV 68H,A MOV 69H,B

DS1: MOV A,68H ;显示十位 MOV DPTR,#TAB MOV A,@A+DPTR MOV DPTR,#0002H MOVX @DPTR,A MOV DPTR,#0001H MOV A,#02H

MOVX @DPTR,A LCALL DELAY

DS2: MOV A,69H ;显示个位 MOV DPTR,#TAB MOV A,@A+DPTR MOV DPTR,#0002H MOVX @DPTR,A MOV DPTR,#0001H MOV A,#01H MOVX @DPTR,A

LCALL DELAY

RET

;------------南北方向时间显示子程序---------------------------------- DISP1: MOV B,#0AH

MOV A,R3 ;R3中值二转十显示转换 DIV AB

MOV 68H,A MOV 69H,B

DS1: MOV A,68H ;显示十位 MOV DPTR,#TAB MOV A,@A+DPTR MOV DPTR,#0002H MOVX @DPTR,A

33

MOV DPTR,#0001H

MOV A,#08H

MOVX @DPTR,A LCALL DELAY

DS2: MOV A,69H ;显示个位 MOV DPTR,#TAB MOV A,@A+DPTR MOV DPTR,#0002H MOVX @DPTR,A MOV DPTR,#0001H MOV A,#04H

MOVX @DPTR,A

LCALL DELAY

RET

;------------黄灯闪烁5s子程序------------------------------------------ F0: MOV R3,#05H ;赋5s初值

F01: LCALL DISP1

LCALL DISP2

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

MOV R4,#00H

CJNE R4,#0AH,$ ;黄灯持续亮0.5秒

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

MOVX @DPTR,A

MOV R4,#00H

CJNE R4,#0AH,$ ;黄灯持续灭0.5秒

CJNE R3,#00H, F01 ;闪烁时间达5秒则退出 RET

;-------------检测车流量与显示子程序---------------------------------- E0:PUSH R3 ;将R3压入堆栈

MOV A,R3

JZ E04 ;若绿灯倒计时完毕,不再检测车流量 INC 68H ;68H存入车流量 CJNE 68H,#64H,E01 ;中断100次则清零 MOV 68H,#00H

AJMP E04 E01:JB 08H,E02

JNB P2.5 E03 ;是否显示南北方向车流量 AJMP E04

E02:JNB P2.4,E03 ;是否显示东西方向车流量 AJMP E04 E03:MOV R3,68H

34

JB 08H,E030

LCALL DISP2 ;显示东西方向车流量 AJMP E04

E030: LCALL DISP1 ;显示南北方向车流量 E04: POP R3 ;R3出栈

RET

;-----------------报警子程序------------------------------------------ D0: MOV R2,#03H ;报警持续时间3秒 D01: MOV A,R3

JZ D02 ;若倒计时完毕,不再报警 CLR P3.0 ;报警

CJNE R2,#00H,D01 ;判断3秒是否结束 SETB P3.0 D02: RET

;---------1ms延时子程序------------------------------------------- DELAY: MOV R6,#0FAH ;1ms延时预定值 DL1: NOP NOP

DJNZ R6,DL1 ;1ms延时循环

RET

;------------------------字形表----------------------------------------- TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END

35


单片机的十字路口交通灯控制器的设计毕业论文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:保研细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: