欢迎来到天天文库
浏览记录
ID:29176173
大小:59.50 KB
页数:5页
时间:2018-12-17
《单片机交通灯控制器设计报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《交通灯控制器》设计报告设计时间:2012-10-26班级:2011911班小组成员:曾扬武闵菏曹茵茵单片机控制交通灯设计方案一、单片机设计交通灯的设计要求:状态一:南北绿灯亮,东西红灯亮,南北人行道绿灯,东西人行道红灯,南北左拐绿灯,东西左拐红灯。(时间为15S)状态二:南北黄灯亮,东西红灯亮,南北人行道绿灯,东西人行道红灯,南北左拐绿灯,东西左拐红灯。(时间为5S)状态三:南北红灯亮,东西绿灯亮,南北人行道红灯,东西人行道绿灯,南北左拐红灯,东西左拐绿灯。(时间为15S)状态四:南北红灯亮,东西黄灯亮,南北人行道红灯,东西人行道绿灯,南北左拐红灯,
2、东西左拐绿灯。(时间为5S)二、设计原理分析人行道人行道人行道人行道1、首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南西北走向。初始状态0:为东西绿灯亮,南北红灯亮;然后转状态1:东西绿灯亮黄灯亮,南北红灯亮黄灯亮;过后转状态2:东西红灯亮,南北绿灯亮;再转状态3:东西红灯亮黄灯亮,南北绿灯亮黄灯亮。一段时间后,又循环至状态0。中间可通过中断按钮产生中断,跳入中断程序执行中断。2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P
3、1口中的6个引脚即可来控制6个信号灯。3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。5.通过脉冲中断编写中断程序,可实现中断。三、设计的仿真图如下;其接法为:P0接数码管的端选段,P1接数码管的位选端,P2接交通灯,接法如下:P20,P21,P22,分别接南北向的红黄绿灯,P23接南北左拐绿灯,P24,P25,P26,分别接东西向的红黄绿灯,P27接东西左拐红灯东西人行
4、到红绿灯和南北红绿灯接到一起南北人行到红绿灯和东西红绿灯接到一起四、AT89C51的KILL程序#include"reg51.h"#defineucharunsignedchar#defineuintunsignedintucharcodewei[]={0x01,0x02,0x04,0x08};//位码选择ucharcodeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码选择uchartable[4]={0,0,0,0};//四位为选端赋值区间ucharnum=0;uchar
5、ID=1;ucharsec=15;ucharn=0;voidinit(void){P0=0xff;//端口初始化P1=0x00;//端口初始化P2=0x00;//端口初始化TMOD=0x01;//使用定时器0的工作方式EA=1;//开总中断ET0=1;//开定时器0的中断TH0=(65536-10000)/256;//定时10毫秒TL0=(65536-10000)%256;TR0=1;}voidmain(void){init();while(1){switch(ID)//选择函数{case1:P2=0x14;break;//东西红,南北绿,case2:
6、P2=0x12;break;//东西红,南北黄,case3:P2=0x41;break;//东西绿,南北红,case4:P2=0x21;break;//东西黄,南北红,default:break;}}}voidtimer0()interrupt1//对应中断定时器0{TH0=(65536-10000)/256;TL0=(65536-10000)%256;P1=wei[num];//位选端送值P0=duan[table[num]];//端选端送值num++;if(num==4)num=0;table[0]=(sec-1)/10;table[1]=(sec
7、-1)%10;table[2]=(sec-1)/10;table[3]=(sec-1)%10;n++;if(n==100)//10毫秒执行一百次为一秒{n=0;sec--;if(sec==0){ID++;if(ID==5)//ID=1;switch(ID){case1:sec=15;break;//case2:sec=3;break;//case3:sec=15;break;//case4:sec=3;break;//default:break;/*default就是默认情况,这个是用在switch中,意思是若case都不满足,则执行default后面
8、的语句*/}}}}
此文档下载收益归作者所有