毕业论文基于stc89c52rc单片机十字路口智能交通灯设计.docx
《毕业论文基于stc89c52rc单片机十字路口智能交通灯设计.docx》由会员分享,可在线阅读,更多相关《毕业论文基于stc89c52rc单片机十字路口智能交通灯设计.docx(44页珍藏版)》请在冰豆网上搜索。
毕业论文基于stc89c52rc单片机十字路口智能交通灯设计
《单片机课程设计》
课程设计说明书
专业班级:
姓名:
学号:
指导教师:
设计时间:
1概述3
1.1设计的意义3
1.2设计的思想3
1.3设计满足的基本功能4
2系统方案设计4
2.1系统方案的选择................4
2.2系统方案的确定.................................................4
3系统硬件设计
显示部分电路设计5
时钟部分电路设计6
3.3复位部分电路设计6
3.4LED显示电路...........................................7
4系统软件设计7
应用系统软件设计要求7
4.2主程序模块的设计8
4.3延时程序模块的设计10
5Protel软件仿真10
5.1具体仿真结果显示10
6课程设计体会10
参考文献11
...........................................................12
附1:
源程序代码12
附2:
系统原理图19
摘要
本设计是关于单片机控制的交通灯模拟系统的设计。
该设计中用LED灯来模拟信号灯。
利用STC89C52RC单片机,调用延时程序对通行时间进行倒计时,从P0口输出并显示在数码管上,P1控制LED的显示,P2通过74LS138译码器控制数码管的位选,以此来实现十字路口交通灯的指示功能,当出现紧急情况时,通过按下P3.2产生中断,路口全部显示红灯,一段时间后可恢复原来的状态。
根据交通灯系统所需要实现的功能要求,先画出程序部分的流程图和主程序流程图,然后根据流程图写出其子程序。
从而通过模拟系统的仿真来实现该设计所要求的功能。
此交通灯系统要求实现如下的的功能:
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为80秒、支干道每次通行间为60秒。
2)在绿灯转为红灯时,要求黄灯先闪亮3秒钟,才能变换运行车道;
3)当出现紧急情况时,四个路口全部显示红灯,一段时间后恢复原来状态。
关键字:
单片机交通灯系统LED指示灯74LS138译码器
1概述
交通的发达程度,是一个城市发达程度的指标之一,由此可见对交通的管理则显得越来越重要。
然而交通灯又是城市交通中的重要指挥系统,它与人们日常生活密切相关.随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。
因此对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利安全的通过十字路口。
单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强、可在各种恶劣环境下可靠的工作等特点。
特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。
另外,考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用STC89C52RC单片机来实现十字路口交通信号灯的控制。
正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,(如有救护车或警车到来时,应优先让其通过)。
再者,单片机课程设计是电气自动化本科学生的必修课程。
通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。
在完成理论学习和必要的实验后,学生掌握了单片机的基本原理和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。
交通灯模拟系统的课程设计既让学生巩固了课本学到的理论,还让学生学习了单片机硬件电路设计和用户程序设计的整个过程,同时学习了查阅资料、参考资料的方法。
单片机的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的个体创新能力。
1.2设计的思想
该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,设计一个采用STC89C52RC单片机控制的交通灯控制电路。
根据设计功能及要求,我们可得系统的原理框图如图所示。
图一:
设计系统的原理框图
根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。
具体设计思路如下:
收集并整理资料,硬件设计,软件设计,Protel仿真,设计体会与总结。
1.3设计满足的基本功能
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为80秒、支干道每次通行间为60秒。
2)在绿灯转为红灯时,要求黄灯先闪亮3秒钟,才能变换运行车道;
3)当出现紧急情况时,四个路口全部显示红灯,一段时间后恢复原来状态。
2系统方案设计
2.1系统方案的选择
交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。
2.2系统方案的确定
硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
该交通灯拟系统的硬件部分主要显示和运算部分组成。
按照题目的设计要求,本课题需要使用LED数码管显示和指示灯显示。
在该交通灯系统的设计中采用STC89C52RC单片机。
3系统硬件设计
3.1显示部分电路设计
数码管显示器有两中工作方式:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。
送入一次字型码显示自行一直保持,直到送入新字型码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。
该设计采用如下所示的数码管,分别显示南北和东西灯的剩余时间。
片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口。
其中,A到G为码段控制端口,P2.0,P2.1,P2.2为片选端口。
如下图所示:
图二:
数码管显示电路
3.2时钟部分电路设计
时钟电路用于产生STC89C52RC单片机工作时所必须的时钟控制信号。
其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个30Pf瓷片电容,他们构成一个稳定的自激振荡器。
该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
其中两个瓷片电容起微调作用。
如下图所示:
图三:
时钟电路
3.3复位部分电路设计
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
该设计采用加电直接复位,复位电容采用10uF,电阻1000欧,为了节省元件,没有采用上电加按键模式。
加电瞬间,RES管脚为高电平。
通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。
其连接图如下图所示:
图四:
复位电路
3.4LED显示电路
通过电阻与发光二极管相连,不同颜色的发光二极管另一端接P1口(低电平有效)。
图下图示:
图五:
LED灯显示电路
4软件设计
4.1应用系统软件设计要求
在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。
当系统的电路设计定型以后,软件的任务也就明确了。
一般来说,软件的功能可分为两大类。
一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织协调角色。
我们设计时,应从以下几个方面考虑:
1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。
设计出合理的软件总体结构,使其清晰、简捷、流程合理。
2)各功能程序实行模块化、子程序化。
3)在编写应用软件之前,应绘制出程序流程图。
4)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。
本设计采用了模块化设计,主要由主程序模块、功能实现模块两大部分模块组成。
4.2主程序模块的设计
主程序流程图如下图所示:
该交通信号灯控制系统的四中工作状态(东西方向的交通灯为例):
(1)东西方向A车道绿灯亮,南北方向B车道红灯亮。
表示南北方向B车道上的车辆禁止通行,东西方向A车道允许通行。
绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。
(2)东西方向A车道黄灯亮,南北方向B车道红灯亮。
表示东西方向A车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,南北方向B车道禁止通行。
黄灯亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(3)东西方向A车道红灯亮,南北方向B车道绿灯亮。
表示东西方向A车道上的车辆禁止通行,南北方向B车道允许通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。
(4)东西方向A车道红灯亮,南北方向B车道黄灯亮。
表示东西方向A车道禁止通行,南北方向B车道上未过限停车线的车辆停止通行,已过停车线的车辆继续通行。
黄灯亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第
(1)种工作状态。
(5)当出现紧急情况时候,按下P3.2可进行中断,此时所有路口出现红灯,当缓冲时间到时,中断返回到之前的状态。
控制灯流程图如下:
中断流程图如下:
图六:
控制灯与中断流程图
4.3延时程序模块的设计
延迟程序块是要生成一定的是时间延时,这在数码管显示模块中会用到延迟程序,以满足足动态扫描时数码管的闪亮能产生视觉效果。
5Protel软件仿真
5.1Protel软件系统仿真
如硬件系统图所示接线,图中,在十字路口的红,黄,绿交通灯中A道的两组同色灯连在起,B上的也互联,受STC89C52RC的控制。
打开keil软件调试环境,把已经编好的程序输入,保存为“.asm”格式的,然后编译,系统自动生成“.hex”文件。
设置好仿真器后,编译程序无误后调试执行程序,结果显示符合要求。
具体仿真结果见Protel里仿真图形。
6课程设计体会
这次课程设计经过一个假期的反复琢磨与修改,终于完成了。
从查资料,整理资料到读程序,写程序,改程序,仿真直至通过老师的验收,一切都充满了刻苦与艰辛,其间充满了挫折可是同时又伴随着欢乐。
通过此次课程设计。
培养了我们综合运用所学的基础理论课、技术基础课、专业课的知识和实践技能去分析和解决实际工作中的一般实际应用技术问题的能力,使我们建立了正确的设计思想,学会了如何把所学的理论知识运用到实践当中去。
掌握了单片机控制系统的原理、并进一步巩固、扩大和深化了我们所学的基本理论,基本知识和基本技能,提高了我们的逻辑思维能力。
同时,这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但是这毕竟是第一次做,难免会遇到过各种各样的问题。
我们难点的突破主要来自己于小组成员与老师指导老师的交流,交流使我们获得更多信息,开拓了思路,因此要重视与别人的交流,同时在设计的过程中发现了我们自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献
1.李全利.80C51单片机原理及接口技术(第二版).高等教育出版社,2009
2.张毅刚.新编MCS-51单片机应用设计(第3版).哈尔滨工业大学出版社,2006
3.马家辰.MCS-51单片机原理及接口技术(修订版)哈尔滨工业大学出版社民2001
4.——单片机应用系统设计.北京:
北京航空航天大学出版社1990
5.侯玉宝,基于protues的51系列单片机设计与仿真.北京:
电子工业出版社2009
6.陈文芗单片机原理与应用.中国机械教育协会组编
附录
附1源程序代码
ORG0000H
LJMPSTART
ORG0003H
LJMPINTT
ORG000BH
LJMPTIME0
ORG0100H
START:
MOV26H,#60;东西通行时间初始值,存到26H单元
MOV25H,#80;南北通行时间初始值,存到25H单元
;..............开中断.....................................
SETBEA
SETBEX0
SETBET0
SETBPT0;设置定时器T0为高优先级
SETBIT0
;......东西绿灯南北红灯.....................................
DXLD:
MOVR3,26H;东西通行60秒(26H)=60,(DXLD即东西绿灯)
DXLD1:
MOVP1,#6FH;点亮东西绿灯南北红灯
MOV24H,R3;为东西方向显示时间做准备
MOVA,R3;
ADDA,#3;黄灯的时间差
MOV23H,A;为南北方向显示时间做准备
LCALLDISP3;凑够1秒时间
DJNZR3,DXLD1;判断60秒是否已完,否则继续东西绿灯南北红灯
;.......南北红灯东西黄灯闪烁亮...................................
L2:
MOVR2,#3;转入黄灯亮3秒
HD1:
MOV22H,R2;为显示做准备
MOVP1,#7BH;点亮南北红灯东西黄灯
MOVP1,#7FH;点亮南北红灯关闭东西黄灯
DJNZR2,HD1;判断3秒是否到,若未到继续闪灭东西黄灯
;..............南北绿灯东西红灯................................
NBLD:
MOVR1,25H;南北通行时间80秒(25h)=80,(NBLD即东西绿灯)
NBLD1:
MOVP1,#9FH;点亮南北绿灯东西红灯
MOV20H,R1;为南北方向显示时间做准备
MOVA,R1;
ADDA,#3;
MOV22H,A;为东西方向显示时间做准备
DJNZR1,NBLD1;判断80秒是否已完,若未完则从新显示、延时
;.......南北黄灯......东西红灯................................
L3:
MOVR2,#3;黄灯闪烁亮3秒
HD:
MOVP1,#0B7H;点亮黄灯
MOV22H,R2;为显示时间做准备
LCALLDISP2;黄灯闪亮剩时显示,其中延时1秒
MOVP1,#0BFH
LCALLDISP2
DJNZR2,HD;判断3秒是否已完,若未完则从新闪灭、延时和显示
JMPSTART
INTT:
MOVTH0,#HIGH(65536-1000);送初值定时1ms
MOVTL0,#LOW(65536-1000)
MOVTMOD,#01H;T0工作于方式一
MOVR4,#0
SETBTR0
MOV30H,#5;设定中断时间为5秒
MOVp1,#3FH;红灯全部点亮
QQ:
CJNER4,#1000,KK;循环1000次,为1秒
MOVR4,#0
DEC30H
KK:
MOVA,30H;为显示做准备
LCALLTRAN
MOVA,30H
LCALLTRAN1
MOVA,30H
CJNEA,#0,QQ
CLRTR0
RETI
TIME0:
MOVTH0,#HIGH(65536-1000)
MOVTL0,#LOW(65536-1000)
INCR4
CPLP3.0;产生方波信号
RETI
;..........延时程序............................................
DELAY:
ACALLDELAY1;10ms延时
ACALLDELAY1
RET
DELAY1:
MOVR6,#50;5ms延时,(5ms=50*50*2us)
DE6:
MOVR0,#50
DE7:
DJNZR0,DE7
DJNZR6,DE6
RET
;.....南北通行的时间显示子程序..(其中有0.5秒延时)...............
RP1:
MOVA,20H;南北方向要显示的时间移到寄存器A
LCALLTRAN
MOVA,22H
LCALLTRAN1
DJNZR7,RP1;是否已循环25次?
(25次才够0.5秒)
RET
;................黄灯的时间显示子程序..............................
RP2:
MOVA,22H;要显示的时间移到寄存器A
LCALLTRAN
MOVA,22H
LCALLTRAN1
DJNZR7,RP2
RET
;..............东西通行的时间显示子程序.............................
RP3:
MOVA,23H;要南北方向显示的时间移到寄存器A
LCALLTRAN
MOVA,24H
LCALLTRAN1
DJNZR7,RP3
RET
TRAN:
MOVDPTR,#TAB;要显示的数字代码表首地址
MOVB,#10
DIVAB;要显示的时间与10相除,求出十位和个位
MOVCA,@A+DPTR;找到十位的显示代码
MOVP2,#4;选择南北数码管十位片
MOVP0,A;送出十位显示代码
LCALLDELAY1;延时5ms以点亮数码管
MOVA,B;把个位数移到寄存器A
MOVCA,@A+DPTR;找到个位数显示代码
MOVP2,#5;选择南北数码管个位片
MOVP0,A;送出个位数显示代码
LCALLDELAY1;延时5ms以点亮数码管
RET
TRAN1:
MOVDPTR,#TAB;要显示的数字代码表首地址
MOVB,#10
DIVAB;要显示的时间与10相除,求出十位和个位
MOVCA,@A+DPTR;找到十位的显示代码
MOVP2,#0;选择东西数码管的十位片
MOVP0,A;送出十位显示代码
LCALLDELAY1;延时5ms以点亮数码管
MOVA,B;把个位数移到寄存器A
MOVCA,@A+DPTR;找到个位的显示代码
MOVP2,#1;选择东西数码管的个位片
MOVP0,A;送出个位显示码
LCALLDELAY1
RET
TAB:
DB3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH
END
附2系统原理图
图五:
设计总原理图
科技学院
本科毕业论文(设计)管理办法
第一章总则
第一条本科毕业论文(设计)是人才培养方案的重要组成部分,是培养学生科研能力和创新能力的重要实践环节,为保证毕业论文(设计)工作的顺利完成,加强规范化管理,提高毕业论文(设计)质量,根据教育部、省教育厅的有关规定要求,结合我院实际情况,特制定本办法。
第二章目的与要求
第二条毕业论文(设计)教学环节的目的,培养学生勇于探索的创新精神,实事求是、严肃认真的科学态度和严谨求实的工作作风。
第三条使学生能综合运用所学的知识技能,提高思考问题、分析问题和解决实际问题的能力。
第四条培养学生从文献、科学实验、生产实践和调查研究中获取知识的能力,培养学生从事科学研究的兴趣,掌握科学研究的基本方法。
第五条对学生的知识面、掌握知识的深度、运用理论知识处理问题的能力、实践能力、外语水平、计算机运用水平、书面及口头表达能力等进行一次全面的考核。
第六条要求所有毕业生必须撰写毕业论文(设计),各系要认真组织毕业论文(设计)工作,确保毕业论文(设计)的质量。
第三章组织管理
第七条全院的毕业论文(设计)工作按照分级分工的原则,负责毕业论文(设计)工作的管理、指导、检查、考核和总结。
(一)教务处职责
1.负责制定全院本科毕业论文(设计)管理规章制度。
2.组织开展毕业论文(设计)工作的教学研究与改革。
3.组织毕业论文(设计)工作的检查、评估和总结。
4.审核答辩委员会组成人选,检查毕业答辩的过程。
优秀毕业论文(设计)。
(二)系职责
1.成立毕业论文(设计)工作领导小组,制定工作计划和安排。
2.组织专业教研室成立专业答辩委员会。
3.负责按照标准配备、审查、批准指导教师,组织指导教师培训。
4.依据学院的毕业论文(设计)成绩评定标准,结合专业特点,制定本系各专业的具体评分标准和规范。
5.负责本系学生毕业论文(设计)所需的场地、仪器设备的分配和保障。
6.评选系优秀毕业论文(设计)。
7.做好毕业论文(设计)工作总结与归档。
(三)教研室职责
1.根据指导教师的条件,提出指导教师名单。
2.审查毕业论文(设计)题目及指导教师的安排,对不合格的题目提出修改意见。
3.组织审定毕业论文(设计)选题,落实一人一题的工作要求;定期检查毕业论文(设计)工作的进度和质量。
4.检查毕业论文(设计)任务书的填写情况。
5.考