基于AT89S52单片机交通灯控制系统的设计 下载本文

内容发布更新时间 : 2024/5/2 3:19:34星期一 下面是文章的全部内容请认真阅读。

单片机系统开发与应用工程实习计报告

MOV TMOD,#10H ;置定时器1为方式1

MOV IE,#85H ;开CPU中断,开外中断0、1中断 LOOP: MOV P1,#0F3H ;A道绿灯放行,B道红灯禁止 MOV R1,#90

;置0.5秒循环次数(0.5×90=45S)

DIP1: ACALL DELAY ;调用0.5秒延时子程序 DJNZ R1,DIP1 ;45秒不到继续循环

MOV R1,#06 ;置A绿灯闪烁循环次数

;A绿灯闪烁

WAN1: CPL P1.2

ACALL DELAY DJNZ R1,WAN1

;闪烁次数未到继续循环

MOV P1,#0F5H ;A黄灯警告,B红灯禁止 MOV R1,#04H ;置0.5秒循环次数(0.5×4=2S) YL1: ACALL DELAY

DJNZ R1,YL1 ;2秒未到继续循环 MOV P1,#0DEH ;A红灯,B绿灯

MOV R1,#32H ;置0.5秒循环次数(0.5×50=25S)

DIP2: ACALL DELAY

DJNZ R1,DIP2 ;25秒未到继续循环 MOV R1,#06H

WAN2: CPL P1.5 ;B绿灯闪烁 ACALL DELAY

DJNZ R1,WAN2

MOV P1,#0EEH ;A红灯,B黄灯

MOV R1,#04H

YL2: ACALL DELAY

DJNZ R1,YL2

AJMP LOOP ;循环执行主程序 INTT0: PUSH P1 ;P1口数据压栈保护

PUSH ACC ;ACC寄存器压栈保护 PUSH TH1 ;TH1压栈保护 PUSH TL1 ;TL1压栈保护

8

单片机系统开发与应用工程实习计报告

MOV P1,#0F6H ;A、B道均为红灯 MOV R2,#40 ;置0.5秒循环初值(20S)

DEY0: ACALL DELAY

DJNZ R2,DEY0 ;15秒未到继续循环 POP POP

TL1 ;弹栈恢复现场 TH1

POP ACC

POP

P1

RETI ;返回主程序

INTT1: CLR EA ;关中断

PUSH P1 ;压栈保护现场 PUSH ACC PUSH TH1 PUSH TL1

SETB EA ;开中断

JB P3.0,BOP ;A道无车转向B道 MOV P1,#0F3H ;A道绿灯,B道红灯

SJMP DEL1 ;转向15秒延时 BOP: JB P3.1,EXIT ;B道无车退出中断

MOV P1,#0DEH ;A红灯,B绿灯

DEL1: MOV R5,#30 ;置0.5秒循环初值(15S) NEXT: ACALL DELAY

DJNZ R5,NEXT ;15秒未到继续循环 EXIT: CLR EA

POP TL1 ;弹栈恢复现场

POP TH1 POP ACC

POP P1 SETB EA RETI

9

DELAY: MOV R3,#0AH ;0.5秒子程序(50ms×10=0.5s)

单片机系统开发与应用工程实习计报告

MOV TH1,#3CH ;置50ms初值X=3CB0H MOV TL1,#0B0H

SETB TR1 ;启动T1

LP1: JBC TF1,LP2 ;查询计数溢出

SJMP LP1

LP2:MOV TH1,#3CH ;置50ms初值X=3CB0H

MOV TL1,#0B0H DJNZ R3,LP1 RET END

5 系统仿真及调试

单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误时在软件调试的过程中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从做起。

硬件的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和工艺性故障。一般原则是先静态后动态。

利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否正确,是否有短路故障。

先要将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,这些都没有问题后,接上仿真器进行联机调试观察各接口线路是否异常。在一切都正常后,在将单片机AT89S52芯片插在底座上,进行通电试验,看是否跟预先的目标现象一致。

单片机AT889S52是系统的核心,利用万用表检测单片机电源VCC是否为(40脚)+5V、晶振是否正常工作(可用万用表检测,两引脚电压一般为1.8~2.3之间)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),这样一来单片机就能工作了,再结合电路图,检测故障就很容易了。

10

单片机系统开发与应用工程实习计报告

交通灯控制在交通运输领域有着非常重要的作用。本文完成了基于单片机的交通灯控制系统的设计与模拟。包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。在课程设计完成过程中,主要做的工作有:

(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的实现。

(2)以ATMEL公司的AT89C52单片机为核心进行系统硬件设计,输入量包括:车流量,按键状态;输出控制交通信号灯亮灭状态及时间。

本次课程设计的过程是艰辛的,不过收获却是很大的。在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在网络编程这方面有一个大的发展。

本次课程设计,我们深深体会到仅仅依靠课本知识是远远不够的。在查找资料和实践的过程中,老师为我们指点了许多我们难以解决的问题,使我们的知识水平大大提高。特别是在编程的过程中,戴老师丰富的经验也使得我们受益匪浅,少走许多弯路。

最后,此次单片机课程设计过程使我们认识到自身知识及能力的薄弱,更让我们知道实践的重要性。在以后的学习过程中,我们会更加努力学习单片机的相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。

11

单片机系统开发与应用工程实习计报告

参考文献

1 黄智伟.凌阳单片机课程设计指导.北京:北京航空航天大学出版社,2007, 2 杨居义.单片机课程设计指导.北京:清华大学出版社,2009 3 李广弟.单片机基础.北京:北京航空航天大学出版社,2002

4 李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,1998 5 何立民.单片机应用技术大全.北京:北京航空航天大学出版社,1994 6 张毅刚.单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990 7 谭浩强.单片机课程设计.北京:清华大学出版社,1989

12