您的当前位置:首页红绿灯 单片机实训报告

红绿灯 单片机实训报告

2023-12-07 来源:爱问旅游网
单片机实训报告——简易交通灯

一、实训目的和作用

1.1设计简易路口交通灯控制器。

1.2 熟练掌握电路中所用元件功能、特点。

1.3 熟练掌握Keil、proteus、伟福6000软件的使用方法。 1.4 掌握简易交通灯控制器的仿真、调试方法。

二、实训设计内容要求

2.1 设计两处红绿灯,当A处红灯亮时,B处绿灯亮;,当A处黄灯亮时,B处也是黄灯亮;当A处绿灯亮时,B处红灯亮。 2.2 有复位按键,可随时实现复位功能。

2.3 显示管显示各盏灯所亮的时间,并倒计时,提醒路人。

三、系统设计

3.1 硬件设计

(1)硬件设计如图下:

(2)硬件设计说明:

P0端口依次接入红灯、黄灯、绿灯、绿灯、黄灯、红灯,P0.0和P0.7 分别接显示器1、2端,控制显示器示数。P2端口依次接入显示器A、B、C、D、E、

F端。当D2处红灯亮时,对应的D5绿灯亮;当D4的黄灯亮时,对应的D3 黄灯也D6的绿灯亮时,对应的D1红灯亮。

软件设计 GOW EQU 30H DIW EQU 31H SEC EQU 32H DEDA EQU 33H ORG 00H AJMP MAIN ORG 0BH AJMP ZDFW

MAIN: ACALL INIT ACALL INITTIME LOOP: ACALL CONV ACALL XSHI ACALL XSHI ACALL XSHI AJMP LOOP

INITTIME: MOV TMOD, #00000001B MOV IE, #10000010B MOV TL0, #01111000B MOV TH0, #11101100B SETB TR0 RET ZDFW:

MOV TL0, #01111000B MOV TH0, #11101100B INC DEDA MOV A, DEDA CJNE A,#200,TT MOV DEDA,#0 DEC SEC MOV A,SEC CJNE A,#0,TT DEC R7

CJNE R7,#3,B1 MOV A,#01011010B MOV P0,A MOV SEC,#5 AJMP TT

亮;当3.2

;定时器初始化B1:

CJNE R7,#2,B2

MOV A,#01101100B ;绿灯亮 MOV P0,A MOV SEC,#20 AJMP TT B2:

CJNE R7,#1,B3

MOV A,#01011010B ;黄灯亮 MOV P0,A MOV SEC,#5 AJMP TT B3:

MOV SEC,#20 MOV R7,#4

MOV A,#00110110B ;红灯亮 MOV P0,A TT:

RETI INIT:

CLR P0.0 ;显示器1端清零 CLR P0.7 ;显示器2端清零 MOV DEDA,#0 MOV R7,#4 MOV SEC,#20

MOV A,#00110110B MOV P0,A RET

CONV: ;十进制转换 MOV DPTR,#TABLE MOV A,SEC MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV GOW,A MOV A,B

MOVC A,@A+DPTR MOV DIW,A RET

TABLE:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H XSHI: ;显示 MOV A,GOW MOV P2,A

SETB P0.0 ;显示器1端置1 CLR P0.7 ;显示器2端清零 MOV R5,#2 ACALL DELAY

MOV A,DIW MOV P2,A

CLR P0.0 ;显示器1端清零 SETB P0.7 ;显示器2端置1 MOV R5,#2 ACALL DELAY CLR P0.0 CLR P0.7

DELAY: ;延时 DLY1: MOV R6,#6 DLY2: MOV R4,#8 DJNZ R4,$ DJNZ R6,DLY2 DJNZ R5,DLY1 RET

END

四、调试方法及步骤

4.1按照上面设计的电路在proteus软件内画图, 打开单片机软件开发系统

Keil,选择AT89c52单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89c52单片机中进行仿真。

4.2 之后把程序和硬件电路到实验室仿真,基本上实现了要求,但是还是出

现了一点问题,就是焊接部分没焊好,经过再一次修改硬件,再一次硬件调试,然后仿真,仿真时发现显示器不够亮,经过检测,查出是软件出现一点问题,经修改后,最终达到预想效果。

4.3最后把程序用烧录机把程序烧录到单片机上,接通电路电源,电路能够

按照设计要求正常工作。

五、结果与讨论

本次实训完成得还算顺利。从翻看书籍、上网查资料,收集相关资料,自己尝试着用Proteus画出硬件,用Keil编写程序,电路焊接,到用伟福进行测试仿真,虽然在这过程中遇到了许多问题,但是在同学的帮助,大家的讨论下还是按时完成了任务。

刚开始编写程序时,我根据书上的内容和自己的理解试着编写,但总是在出错,后来在同学的指点下,终于把程序写出来了,并经过Keil编译,在Proteus仿真通过了。后来,在焊接中,由于电烙铁不够热,一不小心就把两条相邻的线焊在一起了,结果在硬件测试时,发现显示器A和B端、D和E端粘在一起,经过修改,最终通过了硬件测试。但是又在仿真时,发现显示器不够亮,后来经多次检查才发现原来是软件部分少了一条返回指令,经修改,显示器总算能正常显示示数了。之后的仿真烧录过程完成得比较顺利。

在本次实训中,我受益匪浅,在这不断的发现问题,解决问题中,我对单片机这门课程有了更深入的了解,也在这过程中,提高了自己的动手能力。

六、参考文献

《单片机课程设计实例指导》 李光飞 主编 北京航空航天大学出版社 《8051单片机嵌入式系统应用》 赖麟文编著 科学出版社

因篇幅问题不能全部显示,请点此查看更多更全内容