交通信号灯.docx
- 文档编号:28448790
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:8
- 大小:67.95KB
交通信号灯.docx
《交通信号灯.docx》由会员分享,可在线阅读,更多相关《交通信号灯.docx(8页珍藏版)》请在冰豆网上搜索。
交通信号灯
单片机原理及接口技术
课程设计报告
题目:
乡间小路口交通信号灯
学院:
信息工程学院
专业:
自动化
班级:
姓名:
学号:
07001125
日期:
2010年6月
一、设计要求
在主道路上某一处有一乡间小路与之相交,路口处有有交通信号灯,乡间小路无车时,直到计时到且检测到小路有车;然后主道路黄灯一直亮,乡间小道红灯亮,持续5秒,然后主道路红灯一直亮,乡间小道绿灯亮,直到计时到或不再检测到小路有车;然后主道路红灯一直亮,乡间小道黄灯亮,持续4秒,之后回到主道路绿灯一直亮,乡间小道红灯亮且循环倒计时25秒。
二、器件选型
单片机AT89S51,其P0、P1口连接数码管,P2口连接8个低电平有效的LED灯,P3-6口连接低点平有效的按钮。
三、设计原理
按钮按下时,P3-6变为低电平,认为此时乡间小路有车,通过程序设计中P3-6=0这一条件的成立来执行相应操作;同理,若P3-6高电平,认为小路一直没有车,通过程序设计中P3-6≠0这一条件的成立来执行相应操作。
四、电路原理图
五、程序流程图
N
Y
N
Y
六、源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchartemp=0x19,tt=0x00,aa=0x00;//初始化
voiddisp(uchartemp)
{P1=tab[temp/10];//数码管显示设置
P0=tab[temp%10];
}
voidmain()
{TMOD=0x11;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;//中断开
while
(1)//无限循环
{
if((P3_6==1)&&(tt==0x00))//判断小路是否有车且时间到
{P2=0xf3;//设置要亮的灯
ET0=1;//设置定时器与相应中断,计时器0工作
TR0=1;
ET1=0;
TR1=0;
disp(temp);
if(temp==0x00)
temp=0x19;
}
if(P3_6==0)//小路无车
{
while(temp!
=0x00)
disp(temp);
ET0=0;
TR0=0;
ET1=1;//计时器1工作且开中断
TR1=1;
if(tt<0x05)//5秒计时
{
disp(tt);
P2=0xf5;
}
if((tt>=0x05)&&(tt<=0x19))//20秒计时
{
P2=0xde;
disp(tt-5);
}
if(tt>0x19)
tt=0x05;
}
if((P3_6==1)||(tt!
=0))//小路无车或时间到
{
P2=0xee;
ET0=0;
TR0=0;
ET1=1;
TR1=1;
disp(aa);
if(aa>0x04)
{
tt=0;
aa=0;
}
}
}
}
voidtimer0()interrupt1//设置定时器0
{
staticn;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
n++;
if(n==20)
{
n=0;
temp--;
}
}
voidtimer1()interrupt3//设置定时器1
{
staticm;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
m++;
if(m==20)
{
m=0;
tt++;
if(P3_6==1)
aa++;
}
}
七、设计总结
学习单片机已经一个学期了,但从未真正动手操作过实际的单片机,也从未通过实践检验自己平时编写的简易程序是否正确,经过这次的课程设计,真正的动手操作了单片机,同时也将自己平时写的认为对的程序付诸实践,这时才发现,尽管已经学了较长时间的理论了,但当真正将自己所谓的理论成果用来实现时,自己还有很多的细节没有注意到,可谓是错误百出,经过一次又一次的修改才最终成功实现。
通过本次课程设计,我们在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
使用MCS-51单片机及KEIL作为我们的设计工具,很好地锻炼自己的语言编程能力,养成良好的语言编程风格。
不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。
完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。
当然,我们还存在着很多不足,设计中有很多还完善的地方,在设计中,老师给了我们很大的帮助,在这里表示感谢
参考文献
【1】《单片机原理与接口技术》--牛昱光、李晓林等编著,电子工业出版社
【2】《51单片机实验指导书》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 信号灯