自动控制网移动版

自动控制网 > 自动化 > 单片机 >

单片机交通灯控制毕业设计(2)

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

九、调试程序所用的试验设备

 

实训设备:单片机集成开发环境,综合实训板。

十、模拟调试的过程和出现问题的分析

(1)开关键盘输入交通灯初始时间,通过8051单片机P1 输入到系统

(2) 由 8051 单片机的定时器每秒钟通过 P0 口向 8255 的数据口送信息,由 8255 的PA  口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。

(3)8051 通过 设置 各个信号等的|<< << < 1 2 3 4 5 6 7 8 > >> >>| 燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒循环由8051的 P0 口向8255的数据口输出。

(4) 通过 8051 单片机的 P3.0 位来控制系统是工作或设置初值,当.牌位 0 就对系统进行初始化,为1系统就开始工作。

(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。

(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。

(7)绿灯时间倒计时完毕,重新循环。

十一、设计的体会

通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。我在万老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。在此,忠心感谢老师以及许多同学的指导和支持。我会继续努力的......

本系统就是充分利用了8051和8255芯片的I/O引脚。系统统采用MSC-51 系列单片机Intel8051和可编程并行I/O接口芯片 8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的P1 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现 。

通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

本文已影响
最近关注
0基础免费学PLC,扫描观看

扫描上方二维码免费观看PLC视频课程