嵌入式实训报告--交通灯_第1页
嵌入式实训报告--交通灯_第2页
嵌入式实训报告--交通灯_第3页
嵌入式实训报告--交通灯_第4页
嵌入式实训报告--交通灯_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书嵌入式系统开发与应用实训报告专 业: 电子信息工程 学生姓名: 张赛哲 学 号: 1052100501 指导教师: 肖勇军,张锟,赵志鹏2013-10-21 2013-11-8交通灯 1 性能、指标、要求1.1 设计要求 基本要求: (1) 按照题目要求独立设计系统所需电路,并完成电路的实际制作。 (2)在十字交叉路口,东南西北各方向都设置红、黄、绿色信号灯,红灯亮表示禁止通行,绿灯亮表示可以通行,红灯灭之前3秒钟黄灯开始闪烁直到绿灯亮起后黄灯熄灭。其中东西方向为主干道,南北方向为次干道,各个方向分别设置两位数码管,用来显示红

2、灯和绿灯倒计时间,东西方向时间一致,南北方向时间一致。 (3)开机时主干道为10秒倒计时,次干道为10秒倒计时。 (4)单独设计人行道指示灯标志,当禁止行走时为红灯,当可以横穿马路时,绿灯亮起,在禁止通行之前3秒钟绿灯开始闪烁(以警示行人),最终红灯亮起绿灯熄灭。1.1.1设计任务 利用arm9实验箱扩展口控制各个路口红绿灯及时间显示,设计一个交通灯控制系统。 1.1.2性能指标设计一个十字路口的交通灯,它的红灯,绿灯,黄灯的闪烁必须符合交通规则,再用一个数码管来显示倒计时的时间,此时,灯的闪烁必须与数码管上的时间相对应,并与试验箱上的时间相一致。1.2 整机实现的基本原理 单片机与ARM9实

3、验箱通过串口相连,从而可以在它们之间进行通信,利用ARM程序发送I/O口的状态数据让单片机实现不同的状态功能,单片机通过接收到I/P口数据就可以控制灯的亮灭和数码管的倒计时,从而实现交通灯的功能。2 方案设计 2.1 程序设计析构函数:ShiWidget:ShiWidget() myCom-setBaudRate(BAUD115200);delete ui;显示函数:void ShiWidget:display() char temp2=0,0; if (sec != 0) sec-; else sec=9; rightOn = !rightOn; ui-lcd-display(sec); t

4、emp0=z; myCom-write(temp); sprintf(temp,%d,rightOn); myCom-write(temp); sprintf(temp,%d,sec%10); myCom-write(temp); update();开始函数:void ShiWidget:start() s1-start(1000);结束函数:void ShiWidget:stop() s1-stop();画图函数:void ShiWidget:paintEvent(QPaintEvent *) QPainter painter(this); painter.setPen(Qt:black);

5、 if (rightOn) painter.setBrush(Qt:red); else painter.setBrush(Qt:white); painter.drawEllipse(230,70,20,20); painter.drawEllipse(230,160,20,20); if (sec=4)&(sec%2!=0) painter.setBrush(Qt:yellow); painter.drawEllipse(185,70,20,20); painter.drawEllipse(185,160,20,20); else painter.setBrush(Qt:white); p

6、ainter.drawEllipse(185,70,20,20); painter.drawEllipse(185,160,20,20); if (!rightOn) painter.setBrush(Qt:green); else painter.setBrush(Qt:white); painter.drawEllipse(140,70,20,20); painter.drawEllipse(140,160,20,20); if (!rightOn) painter.setBrush(Qt:red); else painter.setBrush(Qt:white); painter.dra

7、wEllipse(100,90,20,20); painter.drawEllipse(260,90,20,20); if (sec=4)&(sec%2!=0) painter.setBrush(Qt:yellow); painter.drawEllipse(100,120,20,20); painter.drawEllipse(260,120,20,20); else painter.setBrush(Qt:white); painter.drawEllipse(100,120,20,20); painter.drawEllipse(260,120,20,20); if (rightOn)

8、painter.setBrush(Qt:green); else painter.setBrush(Qt:white); painter.drawEllipse(100,150,20,20); painter.drawEllipse(260,150,20,20); if (!rightOn) painter.setBrush(Qt:red); else painter.setBrush(Qt:green); painter.drawEllipse(80,50,20,20); if (rightOn) painter.setBrush(Qt:red); else painter.setBrush

9、(Qt:green); painter.drawEllipse(280,200,20,20); 2.2 原理图、PCB图 电路原理图:电路PCB图: 3 制作与调试过程 通过平时所学知识、查找资料,利用QT软件画图,然后编写程序实现交通灯的交替闪烁,最后进行程序、板子与试验箱的同步。4 实训结论 本次实训我们是和上一次实训相联系的,由于上次做好了,所以这次不用纠结焊接问题,只要看看板子是不是还能用。很幸运的是当插上电源后,数码管正常显示,所以这次主要是利用QT实现界面的设计。在老师的帮助下程序不是特别难的就完成了,只是读程序花了不少时间,我以为这样就可以了,没想到最难的是QT程序和板子、试验箱

10、的结合,一开始一直报错,自己检查了半天没查出来,找了同学帮忙才发现,原来是自己的程序缺少头文件才会一直这样,当加上头文件后程序编译正确,新的问题又出现了,同步一直困扰了我好久,但是在同学的帮助下,终于解决了,通过这次实训,我觉得任何事都不能只看表面,原本觉得这次很容易,没想到这次是最麻烦的,画图、同步以及程序的调试,每一步都必须认真对待,不然就不能顺利进行。参考文献 1 谭浩强编著.C程序设计(第三版) 北京:清华大学出版社.20062 黄智伟等编著.ARM9嵌入式系统设计基础教程 北京:北京航空航天大学出版社.2008.3 喻宗泉等编著.单片机原理与应用技术 西安:西安电子科技大学出版社.2008.4 清源计算机工作室编著.Protel 99 SE原理图与PCB及仿真 北京:机械工业出版社.2009附 录 元件明细表单片机(带座) AT89S5

温馨提示

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

评论

0/150

提交评论