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