单片机课程设计(论文)交通信号灯单片机设计.doc

上传人:laozhun 文档编号:4144592 上传时间:2023-04-07 格式:DOC 页数:19 大小:420KB
返回 下载 相关 举报
单片机课程设计(论文)交通信号灯单片机设计.doc_第1页
第1页 / 共19页
单片机课程设计(论文)交通信号灯单片机设计.doc_第2页
第2页 / 共19页
单片机课程设计(论文)交通信号灯单片机设计.doc_第3页
第3页 / 共19页
单片机课程设计(论文)交通信号灯单片机设计.doc_第4页
第4页 / 共19页
单片机课程设计(论文)交通信号灯单片机设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《单片机课程设计(论文)交通信号灯单片机设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)交通信号灯单片机设计.doc(19页珍藏版)》请在三一办公上搜索。

1、一、 设计目的1、了解交通信号钟管理的基本工作原理。2、熟悉AT89S51单片机的各种工作方式和应用。3、熟悉应用编程,掌握利用软硬件相结合的方法。4、掌握多位LED显示问题的解决及显示方法。5、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。6、通过单片机课程设计,熟练掌握编程的方法,将理论联系到实践中去,提高我们的动脑和动手的能力。7、通过交通信号钟的设计和简单程序的编写,最终提高我们的逻辑抽象能力。8、通过此次课程设计掌握仿真软件的应用,能将软硬件结合起来,对程序进行编辑和校验。二、设计要求1、设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条

2、交叉道路上的车辆交替运行,每次通行时间为25秒;2、要求黄灯先亮5秒,才能变换运行车道;3、黄灯亮时,要求每秒钟闪亮一次;4、根据交通灯控制系统框图,画出完整的电路图和波形图。三、总体设计1、AT89S51单片机的简介89S51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:(1)中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或

3、代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。(2)数据存储器RAM89S51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3)程序存储器(ROM)89S51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。(4)定时/计数器:89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。(5)并行输入输

4、出(I/O)口:89S51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。(6)中断系统89S51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。2、89S51单片机的引脚89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. 89S51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. 89S51单片机为双列直插式封装结构, 如图3.2所示.图3.2 89S51引脚分配图89S51单机的电源线有以下两种:(1) VC

5、C:+5V电源线。电源线 (2) GND:接地线。89S51单片机的外接晶体引脚有以下两种: (1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。外接晶体引脚。控制线 89S51单片机的控制线有以下几种:(1) RST:复位输入端,高电平有效。(2) ALE/PROG:地址锁存允许/编程线。(3) PSEN:外部程序存储器的读选通线。(4) EA/Vpp:片外ROM允许访问端/编程电源端。3、交通钟设计流程图

6、南北绿灯,东西红灯延时25秒南北绿灯闪5次转黄灯,东西红灯,延时一秒南北红灯,东西绿灯延时25秒东西绿灯闪5次转黄灯,南北红灯,延时一秒开始结束四、各部分电路设计(1)时钟电路设计如上图所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。其发出的时钟脉冲直接送入片内定时控制部件。(2) 复位电路设计如上图所示,采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。为保证复位可靠,RC时间常数应大于两个机器周期,电容取22uf,电阻取1K欧。(3) 灯控制电路设计如上图所示,交通灯状态显示电路由东西南北四个方向各三个LED灯组成

7、,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。通过软件编程,可使路口交通变化情况为:南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间为25秒;黄灯先亮5秒,才能变换运行车道;黄灯亮时,要求每秒钟闪亮一次。(4) 倒计时交通钟电路设计如上图所示,交通显示钟由两个共阴极两位数码管来实现倒计时。由于P0口输出电流小,需外接上电阻,接到P1口的P1.0P1.7口用单片机来控制其片选。(5) 按键控制电路设计如上图所示,开关控制由三个连接到单片机的控制按钮组成。通过软件编程,一道有车而另一道无

8、车(实验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。返回正常状态时通过复位电路的复位开关进行控制。五、整体电路图六、 设计总结1、 设计过程中遇到的问题及解决方法仿真软件中找不到AT89S52,所以用AT89S51代替,在向仿真软件的单片机输入程序时需要HEX格式的文件,通过网上搜索找到了keil Uvision软件将写好编程的TXT文档建成HEX文件,仿真时可能会出错,所以需要不断调试电路与程序,直到达到设计要求为止。2、 设计体会通过这次课程设计,加强了我们动手、思考和解决问题

9、的能力。让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距。书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。特别是电路完成后,所有的焊接都与我们设计的方案一样,但当我们接通电源时,所看到的结果与我们料想的完全不同,十二盏灯都亮了,我们也都知道,任何实验都不可能一次就成功的,我们认真的去检查,可是检查了好久都没有任何发现,只知道单片机的IO口的输出与我们所输入的程序不相符合

10、,我们逐步排查,最先检查LED灯电路的接法是否合理,然后检查时钟电路的晶振是否有问题,然后再检查复位电路是否完好,最后功夫不负有心人,我们把复位电路接地电阻断开后,就发现LED灯有规律的熄灭了,经过我们的认真检查,对位选控制位口的改正,最后电路基本上都实现了我们预先设计的功能。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,

11、掌握得不够牢固。3、 对设计的建议以后应该下更多的功夫到实践中去,到图书馆或者上网获取更多的知识,单靠书本是不行的,可以定时开放实验室供学生进行实践学习,另外设计时间比较短,为了更好地符合设计要求,应花更多时间投入到学习当中去。实践是掌握只是的一个很好的途径。参考文献1李明 毕万新主编 单片机原理与接口技术,大连理工大学出版社2张毅坤主编 单片微型计算机原理及应用.西安电子科技大学出版社3杨恢先 黄辉先主编 单片机原理及其应用,人民邮电出版社4刘瑞新主编 单片机原理及应用教程,机械工业出版社5蔡明文 冯先成主编 单片机课程设计,华中科技大学出版社附录一:参考程序清单如下:LEDEQUP1 OR

12、G0000H LJMPSTART ORG0030HSTART:MOVSP,#60HLCALLS0 ;初始状态LCALLS1 ;南北绿灯,东西红灯LCALLS2 ;南北绿灯闪转黄灯,东西红灯LCALLS3 ;南北红灯,东西绿灯LCALLS4 ;南北红灯,东西绿灯闪转黄灯LJMPSTARTS0:MOVA,#00100001B ;南北红灯,东西红灯MOV LED,AMOVR2,#10 ;延时LCALLDELAYRETS1:MOVA,#10000001B ;南北绿灯,东西红灯MOV LED,AMOV R2,#200 ;延时LCALL DELAYRETS2:MOVA,#00000001B ;南北绿灯灭,

13、东西红灯亮FLASH:MOVA,#01000001B;南北黄灯,东西红灯MOV LED,AMOV R2,#03HLCALLDELAYMOV A,#10000001B ;南北绿灯,东西红灯MOV LED,AMOV R2,#03HLCALLDELAYDJNZR3,FLASHRETS3:MOVA,#00100100B ;南北红灯,东西绿灯MOV LED,AMOV R2,#200;延时LCALLDELAYRETS4:MOV A,#00100010B MOV LED,A MOV R3,#03H LCALL DELAYFLASH1:MOVA,#00100010B;南北红灯亮,东西绿灯灭MOV LED,AM

14、OV R2,#03HLCALLDELAYMOV A,#01000000BMOV LED,AMOV R2,#03HLCALLDELAYDJNZR3,FLASH1RETDELAY:PUSH02H ;延时子程序PUSH01H PUSH00HDELAY1:MOVR1,#00HDELAY2:MOVR0,#0C2HDJNZR0,DELAY2DJNZR1,DELAY2 ;延时DJNZR2,DELAY1POP 00HPOP 01HPOP 02HRETEND序号元器件名称数量1AT89S511片2两位共阴数码管1个3电容30PF2片4晶振1个5电阻10008个6开关2个7电池盒1个8发光二极管红 黄 绿各4个9

15、电路板1块10导线若干11电池4个附录二:元件清单#include#define uint unsigned int#define uchar unsigned char uchar code tab10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit ashumage=P27; /对支路的设计sbit ashumashi=P26;/左主,右支uint cnt=0;uint cnty=5;uint k1,k2,k3,k4;sbit red=P12;/三个模拟灯的设计sbit green=P11;sbit yellow=P10;sbi

16、t ting=P25;/停车时的信号sbit bshumage=P23; /支路的设计sbit bshumashi=P22;int a=25,b=25;void delayxms(xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void init() /定时器0的设置TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;void dis_a(uint x)P0=tabx/10;/显示25倒计时函数ashumashi=0; delayxms(5);ashumashi=1;P0=

17、tabx%10;ashumage=0;delayxms(5);ashumage=1;void dis_b(uint x)P0=tabx/10;/显示25倒计时函数bshumashi=0; delayxms(5);bshumashi=1;P0=tabx%10;bshumage=0;delayxms(5);bshumage=1;void main()init();TR0=1;k1=1;k2=k3=0;while(1)if(k1)red=0;green=yellow=1;dis_a(a);dis_b(a);if(k2)red=green=1;yellow=0;delayxms(10);/yellow

18、=1;/delayxms(1000);b=25;if(k3)dis_b(b);dis_a(b);red=yellow=1;green=0;/a=25;if(k4)red=green=1;yellow=0;delayxms(10);/yellow=1;/delayxms(1000);a=25; void T0_time() interrupt 1/主要完成过程的检测,TH0=(65536-45872)/256;/至于任务的完成则安排在主程序中TL0=(65536-45872)%256;cnt+;if(cnt=20)/说明1s 已到cnt=0;if(k1=1)/k1表示第一过程正在进行k2=k3=

19、k4=0;/关闭第二,第三过程a-;if(a=0)a=25;k1=k3=k4=0;/关闭第一,第三过程k2=1;if(k2=1)k1=k3=k4=0;/if(yellow=0)yellow=1;/else/yellow=0;/b-;/*if(b=0)b=25;k1=k2=0;k3=1; */cnty-;if(cnty=0)cnty=5;k1=k2=k4=0;k3=1;b=25;/打开过程三if(k3=1)k1=k2=k4=0;k3=1;b-;if(b=0)b=25;k2=k3=k1=0;k4=1;if(k4=1)k2=k3=k1=0;/if(yellow=1)/yellow=0;/elseyellow=1;cnty-;if(cnty=0)cnty=5;k2=k3=k4=0;k1=1;a=25;/打开过程 /到目前为止,基本自控循环已完成,接下来的任务便是设计出 /二极管的亮灭情况。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号