单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc

上传人:文库蛋蛋多 文档编号:3936528 上传时间:2023-03-28 格式:DOC 页数:13 大小:440.50KB
返回 下载 相关 举报
单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc_第1页
第1页 / 共13页
单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc_第2页
第2页 / 共13页
单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc_第3页
第3页 / 共13页
单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc_第4页
第4页 / 共13页
单片机原理及应用课程设计论文交通信号灯模拟控制设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

1、 单片机原理及应用课程设计论文交通信号灯模拟控制设计 东北农业大学电子信息工程系目录单片机原理及应用课程设计论文- 1 -交通信号灯模拟控制设计- 1 -一、设计目的及意义- 1 -二、设计要求- 2 -三、总体设计方案- 3 -四、硬件和软件设计- 4 -4.1 硬件分析- 4 -4.1.1 AT89C51- 4 -4.1.2 四位七段数码管- 5 -4.2设计原理图- 5 -4.3信号灯的控制及控制编码- 6 -4.4设计流程图- 7 -四、心得体会- 8 -五、 附录- 9 -参考源程序- 9 -交通信号灯模拟控制设计一、设计目的及意义设计一个单片机控制交通信号灯,使其能模拟城市“十字”

2、路口交通信号灯的功能,该交通信号灯控制器由一条主干道(东西方向)和一条支干道(南北方向)汇合成十字路口,即主干道的通行时间与从干道的通行时间相同。在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。所谓模拟,就是以红、黄、绿色三只共两组(因为东、西方向信号灯的变化情况相同,用一组发光二级管;南、北方向信号灯的变化情况相同,用一组发光二级管)发光二级管(LED)表示交通信号灯。在一十字路口设置交通灯,并用单片机对其进行合理的控制。 控制要求东西: 绿灯 黄灯 红灯 ,南北: 红灯 绿灯 黄灯。在正常情况下

3、,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED数码管上。利用单片机设计实际生活中的交通灯,既提高了我们的实际动手能力,又能深刻的理解单片机在生活中的实际应用,使我们受益匪浅。二、设计要求设计完成后按交通状态图实现以下功能: 1.初始东西红灯亮,南北绿灯亮,南北方向通车。 2.延时20s,南北路口绿灯熄灭,黄灯闪烁3秒。 3.黄灯闪烁后,南北路口红灯亮、东西路口绿灯亮,东西方向开始通车。4. 延时20s,东西方向绿灯灭,黄灯闪烁3秒,然后切换成南北方向通车,如此重复。 图1 交通状态图(黑色表示亮,白色表示灭)三、总体设计方案倒计时显示可以提醒驾驶员在信

4、号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。因此本设计采用加入倒计时显示,以AT89C51单片机为控制核心,利用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯交替点亮和熄灭,并且利用4只LED数码管实时显示通行、等待及禁止的剩余时间。用6只发光二级管作为红、绿、黄灯指示。本设计的总体框图如图2. 图2 系统的总体框图本设

5、计方案用到以下元器件:1、 AT89C51单片机及其外围器件。2、 四位七段数码管一个。3、 6只发光二级管。四、硬件和软件设计 4.1 硬件分析 4.1.1 AT89C51 交通信号灯的控制电路中的核心是AT89C51单片机,其内部带有4KB的FLASH,无须扩展程序存储器;交通灯的控制没有大量的运算和暂存数据,AT89C51芯片内的128BRAM已经满足要求,所以不必外扩RAM,硬件电路原理图如图3所示。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CM

6、OS 8位微处理器,俗称单片机。AT89C51主要特性:(1) 与MCS-51 兼容 (2) 4KB字节可编程闪烁存储器 (3) 寿命:1000写/擦循环 (4) 数据保留时间:10年(5) 全静态工作:0Hz-24MHz(6) 三级程序存储器锁定(7) 1288位内部RAM(8) 32位可编程I/O线(9) 两个16位定时器/计数器(10) 5个中断源(11) 可编程串行通道(12) 低功耗的闲置和掉电模式(13) 片内振荡器和时钟电路 图3 AT89C51单片机引脚图 4.1.2 四位七段数码管四个数码管共用adp这8根数据线,有四个公共端,共有12个引脚。本设计采用一个共阴的四位数码管,

7、引脚图如图4 。图4 四位数码管引脚图4.2 设计原理图 图5 硬件电路原理图 4.3信号灯的控制及控制编码由图1所示可知,P1.0P1.2控制东西方向的信号灯(用A线表示);P1.3P1.5控制南北方向的信号灯(用B线表示)。6只发光二级管是以共阳极连接,所以相应口线输出高电平则“信号灯”灭;口线输出低电平则“信号灯”亮。为了实现上述控制要求,P1口共输出4中控制吗,用表1.1表示。 表1.1 “信号灯”控制码表P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0控制码 状 态 说 明空空B线黄灯B线绿灯B线红灯A线黄灯A线绿灯A线红灯11101110EEHB线放行,A线禁行11

8、011110DEHB线警告,A线禁行11110101F5HB线禁行,A线放行11110011F3HB线禁行,A线警告 4.4设计流程图 按上表所示的控制码编程实现交通“信号灯”的模拟控制,流程图如图6所示。图6 “信号灯”的控制流程图 四、心得体会 通过这次交通灯的课程设计,我得到了一次用专业知识、专业技能分析和解决现实问题的能力。我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限

9、,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。通过这次单片机技术在生活中的简单应用的设计,我学到了不少实用的知识,更重要的是,在设计的过程,学到了思考问题的方法,设计过程中培养了我在实践中研究问题,分析问题和解决问题的能力以及培养了良好的工程素质和科学道德,例如团队精神、独立思考等;提高了自己动手能力,培养理论联系实际的作风。还有动手这次实验,使单片机原理和接口技术这门课的一些理论知识与实践相结合,更加深刻了我对单片机原理和接口技术这门课的认识,巩固了我的理论知识。 还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为

10、我们以后的工作于学习打下基础。最后,对在这个设计中帮助我们的所有同学和各位指导老师再次表示衷心的感谢。五、 附录参考源程序#include#define uint unsigned int#define uchar unsigned charuchar time,aa,qian,bai,shi,ge,i;sbit huanga=P12;sbit huangb=P15;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code tabledeng=0xee,0xde,0xf5,0xf3;void di

11、splay(uchar qian,uchar bai,uchar shi,uchar ge);void delay(uint z);void init();void main() init();while(1) P1=tabledeng0; time=20; while(time!=0) display(time+3)/10,(time+3)%10,time/10,time%10); P1=tabledeng1; time=3; while(time!=0) for(i=0;i50;i+) display(time/10,time%10,time/10,time%10); huangb=hua

12、ngb; P1=tabledeng2; time=23; while(time!=3) display(time-3)/10,(time-3)%10,time/10,time%10); P1=tabledeng3; time=3; while(time!=0) for(i=0;i0;x-)for(y=110;y0;y-);void display(uchar qiang,uchar bai,uchar shi,uchar ge) P0=tableqiang; T0=0;TXD=1;INT1=1;INT0=1;delay(1);P0=tablebai; T0=1;TXD=0;INT1=1;INT

13、0=1;delay(1);P0=tableshi; T0=1;TXD=1;INT1=0;INT0=1;delay(1);P0=tablege; T0=1;TXD=1;INT1=1;INT0=0;delay(1);void init() INT1=1;INT0=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+; if(aa=20) aa=0; if(time!=0) time-;

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号