桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书《嵌入式系统开发与应用》实训报告专业:电子信息工程学生姓名:张赛哲学号:1052100501指导教师:肖勇军,张锟,赵志鹏2013-10-21——2013-11-8桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书交通灯1性能、指标、要求1.1设计要求基本要求:(1)按照题目要求独立设计系统所需电路,并完成电路的实际制作。(2)在十字交叉路口,东南西北各方向都设置红、黄、绿色信号灯,红灯亮表示禁止通行,绿灯亮表示可以通行,红灯灭之前3秒钟黄灯开始闪烁直到绿灯亮起后黄灯熄灭。其中东西方向为主干道,南北方向为次干道,各个方向分别设置两位数码管,用来显示红灯和绿灯倒计时间,东西方向时间一致,南北方向时间一致。(3)开机时主干道为10秒倒计时,次干道为10秒倒计时。(4)单独设计人行道指示灯标志,当禁止行走时为红灯,当可以横穿马路时,绿灯亮起,在禁止通行之前3秒钟绿灯开始闪烁(以警示行人),最终红灯亮起绿灯熄灭。1.1.1设计任务利用arm9实验箱扩展口控制各个路口红绿灯及时间显示,设计一个交通灯控制系统。1.1.2性能指标设计一个十字路口的交通灯,它的红灯,绿灯,黄灯的闪烁必须符合交通规则,再用一个数码管来显示倒计时的时间,此时,灯的闪烁必须与数码管上的时间相对应,并与试验箱上的时间相一致。1.2整机实现的基本原理单片机与ARM9实验箱通过串口相连,从而可以在它们之间进行通信,利用桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书ARM程序发送I/O口的状态数据让单片机实现不同的状态功能,单片机通过接收到I/P口数据就可以控制灯的亮灭和数码管的倒计时,从而实现交通灯的功能。2方案设计2.1程序设计析构函数:ShiWidget::~ShiWidget(){myCom-setBaudRate(BAUD115200);deleteui;}显示函数:voidShiWidget::display(){chartemp[2]={0,0};if(sec!=0){sec--;}else{sec=9;rightOn=!rightOn;}ui-lcd-display(sec);temp[0]='z';myCom-write(temp);sprintf(temp,%d,rightOn);myCom-write(temp);sprintf(temp,%d,sec%10);myCom-write(temp);update();}开始函数:voidShiWidget::start(){s1-start(1000);}桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书结束函数:voidShiWidget::stop(){s1-stop();}画图函数:voidShiWidget::paintEvent(QPaintEvent*){QPainterpainter(this);painter.setPen(Qt::black);if(rightOn)painter.setBrush(Qt::red);elsepainter.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);painter.drawEllipse(185,70,20,20);painter.drawEllipse(185,160,20,20);}if(!rightOn)painter.setBrush(Qt::green);elsepainter.setBrush(Qt::white);painter.drawEllipse(140,70,20,20);painter.drawEllipse(140,160,20,20);if(!rightOn)painter.setBrush(Qt::red);elsepainter.setBrush(Qt::white);painter.drawEllipse(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);桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书}else{painter.setBrush(Qt::white);painter.drawEllipse(100,120,20,20);painter.drawEllipse(260,120,20,20);}if(rightOn)painter.setBrush(Qt::green);elsepainter.setBrush(Qt::white);painter.drawEllipse(100,150,20,20);painter.drawEllipse(260,150,20,20);if(!rightOn)painter.setBrush(Qt::red);elsepainter.setBrush(Qt::green);painter.drawEllipse(80,50,20,20);if(rightOn)painter.setBrush(Qt::red);elsepainter.setBrush(Qt::green);painter.drawEllipse(280,200,20,20);}2.2原理图、PCB图电路原理图:桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书电路PCB图:3制作与调试过程桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书通过平时所学知识、查找资料,利用QT软件画图,然后编写程序实现交通灯的交替闪烁,最后进行程序、板子与试验箱的同步。4实训结论本次实训我们是和上一次实训相联系的,由于上次做好了,所以这次不用纠结焊接问题,只要看看板子是不是还能用。很幸运的是当插上电源后,数码管正常显示,所以这次主要是利用QT实现界面的设计。在老师的帮助下程序不是特别难的就完成了,只是读程序花了不少时间,我以为这样就可以了,没想到最难的是QT程序和板子、试验箱的结合,一开始一直报错,自己检查了半天没查出来,找了同学帮忙才发现,原来是自己的程序缺少头文件才会一直这样,当加上头文件后程序编译正确,新的问题又出现了,同步一直困扰了我好久,但是在同学的帮助下,终于解决了,通过这次实训,我觉得任何事都不能只看表面,原本觉得这次很容易,没想到这次是最麻烦的,画图、同步以及程序的调试,每一步都必须认真对待,不然就不能顺利进行。参考文献[1]谭浩强编著.C程序设计(第三版)北京:清华大学出版社.2006[2]黄智伟等编著.ARM9嵌入式系统设计基础教程北京:北京航空航天大学出版社.2008.[3]喻宗泉等编著.单片机原理与应用技术西安:西安电子科技大学出版社.2008.[4]清源计算机工作室编著.Protel99SE原理图与PCB及仿真北京:机械工业出版社.2009桂林电子科技大学信息科技学院2010级嵌入式系统开发与应用实训任务书附录元件明细表单片机(带座)AT89S511下载接口1晶振11.0592M1电容105422pf210uf1复位按键1电平转换MAX2321排阻10K1电阻460122001三芯线1米1DB9(母)2DB9座(公,90度)1共阴数码管小个的1发光二极管黄小6红小6绿小6铜板20*151砂纸1