基于c语言单片机交通灯.doc_第1页
基于c语言单片机交通灯.doc_第2页
基于c语言单片机交通灯.doc_第3页
基于c语言单片机交通灯.doc_第4页
基于c语言单片机交通灯.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 设计课题设计要求及总体方案介绍1.1 设计课题任务 设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“d.1004-16”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“d.1004-16”状态。1.2 功能要求说明要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。1.3 交通灯总体方案介绍及工作原理说明1.3.1 电源提供方案为使模块稳定工作,须有可靠电源,采用单片机控制模块提供电源。此方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。1.3.2 复位方案复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位的目的。1.3.3 输入方案直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用2个按键,分别是K1、K2。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用1.3.4 显示界面方案 该系统要求完成倒计时、状态灯等功能。采用数码管与点阵LED (点阵式和8段式LED)相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。2 交通灯硬件系统的设计2.1 交通灯硬件系统各模块功能简要介绍2.1.1 设计方框图 图2-12.1.2 复位电路模块复位方式有多种,本设计采用按键复位,在设定的定时时间内,89S52必须在RST引脚产生一个由高到低的电平变化,以清内部定时器。 2.1.3 晶振电路模块选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取33pF,晶振为12MHz。2.1.4 流水灯电路模块流水灯电路直接接在单片机的P2口上,采用共阳接法。2.1.5 数码管电路模块数码管的段控口接在单片机的P0口上,位控通过三极管接在单片机的P2口上。2.1.6 按键电路模块按键电路的设计就是在一段共接地,另一端通过上拉电阻接到P1口有按键时。相应的口就会变成低电平,产生一个下降沿。2.1.7 下载口电路下载口的1脚接在P1.5口,2脚悬空,3脚接在单片机的复位口上,4脚接在P1.6口,5叫接在P1.7口,6、7、8、9、10接地。2.2 交通灯电路原理图、PCB图、元器件分布图电路原理图见附录1PCB顶层图见附录2PCB底层图见附录3元器件布局图见附录42.3 交通灯元器件清单元器件清单见附录53 交通灯软件系统的设计3.1 单片机资源使用情况AT89S52的P3口用来接八个发光二极管的阴极,控制其亮与灭,P0口和P2口外接由8个LED数码管构成的显示器,用P0口作LED的段码输出口(P0.0P0.7对应于LED的adp),P2口作LED的位控输出线,P2口外接3个按键A、B、C(分别对应于P1.0、P1.1、P1.2)用于调整显示接口电路。3.2 软件各模块简要介绍软件设计是由C语言来编写的,由主程序、键处理和键扫描程序、显示程序、延时程序这几个模块组成的。3.2.1 主程序主程序中会一直调用显示程序、键扫描程序,延时程序,当没有键按下时,数码管会一直显示P.,当有按键按下时,就会按操作执行。3.2.2 显示程序显示程序主要完成数码管动态显示。3.2.3 键处理和键扫描程序键处理程序主要将P1口的取值送往单片机进行取反。键扫描主要判断是否有键按下,即过度前沿抖动在判断是否有键按下。最终将处理完的键值作为返回值返回。3.2.4 延时程序延时程序主要是用来倒计时用的,用来计算秒数。3.3 交通灯程序流程图3.3.1 主程序流程框图主程序流程图如图3-1所示图3-1紧急情况时的中断服务程序(外中断0) 中断响应 返回 恢复现场 延时10S A红灯、B红灯 保护现场图3-23.3.2 显示子程序流程框图显示子程序框图如图3-3所示图3-33.3.3 键扫子程序流程框图键扫子程序流程框图如图3-4所示 图3-43.4交通灯设计程序清单程序清单见附录64 交通灯设计结论4.1 使用说明通电后,数码管会显示d.1004-16,按下S2键后,交通灯开始进入运行状态。运行时按S1复位,如果按下S2键,主车道绿灯亮60秒,次车道红灯亮60秒,随后主车道黄灯亮2秒,闪3下,然后主车道红灯亮30秒,次车道绿灯亮30秒,紧接着次车道黄灯亮2秒闪三下,一直循环,如果按下S3则回到初始值P.为紧急情况使用;再按S2键主次车道红灯都亮10秒。4.2 系统调试单片机AT89S52是系统的核心,利用万用表检测单片机电源VCC是否为(40脚)+5V、晶振是否正常工作(可视波器调试,也可用万用表检测,亮引脚电压一般为1.82.3V之间)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),单片机能工作了,再结合电路图,检测故障就容易了。4.3 交通灯运行图交通灯运行实拍图见附录4.4设计体会本次设计中,因为本人单片机基础学到不少很好,所以费了很大的时间,在硬件方面,一直都不是很顺利,出现虚焊的情况很多,在检查板子的时候由于焊孔太多遇到很大的困难,甚至想放弃,但最后还是坚持下来了,软件设计方面,也不是很会,通过别人的一些帮忙,使我完成了这次的设计,真的很不容易。结束语通过这学期单片机的学习,本人喜欢上了在软件上的编程,虽然学的不是很好,但本人会不断努力,在学习编程技能,为以后进去手机开发设计方面打好基础,本人已经喜欢上了这个行业,相信能在以后有一番作为。致 谢感谢王老师这个学期对我们单片机这门课程学习的严格要求,让我们学到了很多,不尽在学习上,还是做人方面,都起到很大的作用,还要感谢在学习中帮助我的同学,在没有老师的情况下解决了我的疑惑,真的很谢谢你们。参考文献1李朝青.单片机原理及接口技术(第3版).2005年10月 Li Zhaoqing. The SCM theory and Interface Technology ( Third Edition ) .2005 year in October2.蔡朝洋.单片机控制实习与专题制作 Cai Zhaoyang SCM control practice and special topic production3.楼然苗.单片机课程设计指导 building and seedlings. SCM curriculum design guidanceZhao Guanglin4.赵广林.电路设计与制版circuit design and plate making.附录2: PCB顶层图附录3: PCB底层图附录4:元器件分布图附录5: 元器件清单名称数量参数电阻3个1K数码管2个4位一体电阻1个200下载口1个普通插座1个40PIN电阻24个470按键9个三极管9个PNPUSB供电线1根晶振1个12MHz电容2个22pF极性电容1个220F芯片1块AT89S52发光二极管9个六角开关1个表2 元件清单附录6:程序清单/名称:十字路口交通灯控制/作者: /时间: 2013年5月28日/设计要求:上电或按键复位后能自动显示系统提示符“d.1004-16”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。/*/#include#includechar code dis_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xff; char time;char v;char flag=0;/*显示缓冲数组(存放显示信息的字型码的序号)*/ char find_code8;/*/函数名: void DelayX1ms(uint count)/功能: 延时时间为1ms/调用函数:/输入参数:count,1ms计数/输出参数:/说明:总共延时时间为1ms乘以count,crystal=12Mhz/*/#define uchar unsigned char#define uint unsigned intvoid DelayX1ms(uint count) uint j; while(count-!=0) for(j=0;j80;j+); /*显示函数*/void disp() char i,j=0xEF; char k; for(i=0;i=0&v!=2;b-) P3=0X6F; find_code6=b%10; find_code7=b/10; find_code2=b%10; find_code3=b/10; delay1s(); flag=0; void main() while(1) find_code0=11; find_code1=11; find_code2=11; find_code3=11; find_code4=11; find_code5=11; find_code6=11; find_code7=10; disp(); EA=1;EX1=1;IT1=1; v=key(); switch(v) case 0: disp(); break; case 1: while(v!=2) int m,n=60,t=30,a=4; find_code7=11; for(m=60;m=0&v!=2;m-) P3=0xAF; find_code6=m%10; find_code7=m/10; find_code2=n%10; find_code3=n/10; delay1s(); n-; if(flag=1&v!=2) jinji(); for(m=0;m2&v!=2;m+) P3=0XCF; find_code6=a%10; find_code7=a/10;find_code2=n%10; find_code3=n/10; delay1s();n-;a-; if(flag=1&v!=2) jinji(); for(m=0;m=0&v!=2;m-)P3=0X7D; find_code6=m%10; find_code7=m/10;find_code2=t%10; find_code3=t/10; delay1s(); t-; if(flag=1&v!=2) jinji(); for(m=0;m2&v!=2;m+) P3=0X7E; find_code6=a%10; find_code7=a/10; find_code2=t%10; find_co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论