基于89C51单片机交通灯设计(附设计程序)

单片机课程设计课程名称:微机原理与应用设计题目:基于STC89C51单片机的交通灯设计专业班级:信息工程12-1班姓名:汪菲田宣宣侯宁博李琪陈震宇日期:2014-11-14设计题目:基于STC89C51单片机的交通灯设计1)设计目的在该设计中通过自主地设计和调试某一简单实际系统,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,熟练掌握单片机仿真系统的使用方法,达到提高综合应用相关知识的能力,掌握单片机系统设计全部设计过程的目的。

2)设计要求2.1.1基本要求(1)采用STC89C51单片机控制交通信号灯并用数码管显示时间,LED指示通行。

(2)以南北方向的交通灯为例,结合实际情况,控制红、黄、绿交通灯的亮和灭;(3)红、黄、绿交通灯的亮和灭的时间可调节。

2.1.2提高要求(1)采用LED数码管显示红或绿交通信号灯亮的剩余时间;(2)可由拨盘开关强制设置为东西红,南北绿//东西绿,南北红//东西南北都为红;(3)控制东西方向和南北方向的红黄绿交通灯的亮和灭;(4)添加蜂鸣器,当绿灯要变成红灯时中间有5秒的黄灯时间,这期间蜂鸣器鸣响,提醒大家绿灯即将变红;(5)1602液晶用于显当下交通灯的功能。

摘要:近年来随着科技的飞速发展,一个以微电子技术、计算机技术和通信技术为先导的信息革命正在蓬勃发展。

单片机作为计算机技术的一个分支,正在不断的应用到实际生活中,在实时检测和自动控制的应用系统中,针对具体应用对象的特点,配以其它器件来加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊靠的是交通信号灯的自动指挥系统,来实现交通的井然有序。

本系统采用STC89C52单片机以及单片机最小系统和三极管驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。

设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。

本系统实用性强、操作简单、扩展功能强。

设计通过STC89C52单片机以及单片机最小系统和74hc245驱动数码管(数码管更亮,白天看的很清楚)以及外围的按键和数码管显示等部件,数码管倒计时显示时间。

设计基本框图总体电路的工作原理南北路处于禁止通行的状态,东西路处于允许通行的状态。

南北路亮红灯时,东西路亮绿灯;南北路亮绿灯时,东西路亮红灯。

南北路亮红灯时,东西路亮绿灯,当绿灯时间减完之后,东西路换为黄灯同时蜂鸣器报警,南北路仍为红灯。

这样东西路与南北路的时间同时减完。

减完之后,东西路换为红灯,南北路换为绿灯,再经过一个绿灯时间,南北路换为黄灯,东西路仍为红灯。

这时东西路与南北路时间相同,同时减完。

减完后,南北路为红灯,东西路为绿灯。

如此循环下去。

利用89c52单片机控制交通灯系统工作。

其中P0口接数据输出口,与外部数码管连接,P2口与数码馆的COM 口连接,用于选择数据输出的地址,这样就可以实现时问的动态显示,并且节省了端口数。

P1口作为红黄绿灯的控制口,通过上拉电阻将红黄绿灯的正极接高电平,负极接在P1口上,我们可以利用控`制单片机的P1口的输出数据控制红黄绿灯的亮灭。

调时可以利用外部中断INT0l申请中断。

当INT0为低电平时,单片机的PC指向INT0的中断入口地址,从而转向中断服务程序。

此时我们可以通过判断外部开关量的状态来对红黄绿灯的显示时间进行修改。

同时当INT0为低电平时,东西南北方向的都送红灯亮,实现紧急情况下禁止通行。

然后通过判断INT0的状态来决定中断是否返回,当INT0为低电平时,说明开关又一次按下,这是退出中断服务程序,继续执行主程序。

蜂鸣器作用:当绿灯要变成红灯时中间有5秒的黄灯时间,这期间蜂鸣器鸣响,提醒大家绿灯即将变红。

晶振时钟电路复位电路共阴数码管两位八段式数码管其实就是将两个一位八段式数码接相应的电路组合在一起。

并引出两控制端1和2,同过其电平的高低来控制两个数码管的高低位工作。

其中两个数码管的八个端子A,B,C,D,E,F,G,DP为公共所用。

按键控制电路系统总体电路各端口控制作用P1口作为红黄绿灯信号的控制口,即p1.0.,P1.2.,P1.1分别控制南北方向的红黄绿灯信号,P1.4,P1.6,P1.5分别控制东西方向的红黄绿灯信号。

P0口作为驱动电路的输入,P.0,P2.1,P2.2,P2.3作为数码管控选端1,2的输入.P3口中的P3.2,P3.3即外部中断0和外部中断1作为紧急情况和调时开关的信号控制。

P3.5, p3.6,P3.7是紧急情况下的信号控制口。

红灯亮35秒,黄灯亮5秒,绿灯亮30秒。

初始状态为东西红灯,南北绿灯。

35秒后转状态1。

东西红灯,南北黄灯。

35S后转状态2,东西绿灯通车,南北红灯。

经过30秒绿灯和5S黄灯后转状态3,东西绿灯灭,亮黄灯,南北仍然红灯。

整个程序在晶振工作、单片机正常运行的情况下做循环。

可由拨盘开关强制设置为东西红,南北绿//东西绿,南北红//东西南北都为红。

夜间模式:两方向均为黄灯闪烁,不显示秒倒计。

由特殊情形恢复到正常情况后,应当接着切换到特殊情形前的秒倒计和交通灯继续循环。

当系统上电时,实验电路开始工作,七段数码管开始从红灯和绿灯时间倒计时。

计时起始信号由主控电路给出,定时结束信号也输入到主控芯片,由主控芯片启、闭三色信号灯或启动另一计时电路。

在这里正确的程序是核心,应该完成一个时序电路的工作。

其状态表1为:软件设计首先进行交通灯状态的分析:十字路口交通灯如下图所示,将12个交通灯进行编号这12个交通灯共有四个状态:状态1 (S1):东西红灯(4、10)亮,南北绿灯(3、9)亮。

状态2 (S2):南北绿灯(3、9)灭,黄灯(2、8)闪烁,东西仍为红灯(4、10)亮。

状态3 (S3):南北红灯(1、7)亮,东西绿灯(6、12)亮。

状志4 (S4):东西绿灯(6、12)灭,黄灯(5、11)闪烁,南北仍为红灯(1、7)亮。

交通灯综合设计实验小结首先,感谢老师和同学们认真聆听我们的设计答辩,感谢老师和同学们在我们实验设计过程中提供的建议和帮助。

我们组五个人,历时两周时间,从选题,到焊接,再到调试,总结,完成了本次单片机综合设计任务,在这个过程中,我们在巩固、运用所学知识的同时,更多的收获是实验设计过程的挫折与收获。

我们组的题目是交通灯设计,我们选择题目时,就意识到这个题目必须做出自己的创新才有意义。

我们组通过上网查询资料,向老师请教等途径,对交通灯电路进行三次改进与尝试,对普通交通灯进行了加蜂鸣器,加减计时以及用LCD屏显示等改进,形成并实施了三种设计方案,并对方案一、三进行了综合仿真,对方案二进行了实物焊接,均达到了预期的效果。

在本次单片机综合实验中,我们牢记老师的教诲:勇于创新与发挥团队精神。

在改进交通灯过程中,我们五人多次召开小组讨论会,讨论并制定我们要实施三种方案及是否可行,各成员都在讨论中提出自己独特的见解。

制定计划后,我们五人分工协作,汪菲同学负责总体统筹工作,负责本次设计的实验程序编写,侯宁博、田宣宣负责采购元件及实物焊接,陈震宇和李琪主要负责论文的撰写与理论分析,大家在分组工作的同时,不定期分享各分组进展及制定新的计划,在这个过程中,我们虽然有时熬夜凌晨,但收获的知识和经历对我们今后的学习、生活影响甚远。

微机原理课结束了,我们无论怎样,都向老师和自己交出了属于自己满意的答卷。

我们很乐于这种寓教学于实践的教学模式,对于老师的辛勤劳作,我们表示衷心感谢,在今后的学习、生活中,我们会以更加严谨的态度治学和做人,相信,不断努力的我们定会成为未来社会的精英!附录程序changshi3:#include <reg51.h> //头文件#define uchar unsigned char#define uint unsigned int //宏定义void delay(intms) //延时子程序{uintj,k;for(j=0;j<ms;j++) //延时msfor(k=0;k<110;k++); //大约1毫秒的延时}ucharnum;uchar data buf[4]; //秒显示的变量uchar data sec_dx=20; //东西数默认uchar data sec_nb=30; //南北默认值uchar data set_timedx=20; //设置东西方向的时间uchar data set_timenb=30; //设置南北方向的时间int n;uchar data countt0,countt1;//定时器0中断次数uchar code table1[]="yellow led"; //在第一行现实的字符uchar code table2[]="night"; //第二行要显示的字符uchar code table3[]="nanbei yes";uchar code table4[]="dongxi no";uchar code table5[]="nanbei no";uchar code table6[]="dongxi yes";uchar code table7[]="jiaotongdeng";uchar code table8[]="zhengchang";sbitlcden=P2^0; //液晶使能端sbitlcdrs=P3^5; //液晶数据命令选择端/***********写命令子函数*************/voidwrite_com(uchar com){lcdrs=0; //选择些命令模式P1=com; //将要写的命令字符写到数据总线上delay(5); //延时以确定数据稳定lcden=1; //使能端送高脉冲delay(5); //延时lcden=0; //高脉冲结束}/**********写数据子函数**************/voidwrite_data(uchar date){lcdrs=1; //选择写数据模式P1=date; //将要现实的字符数据写到数据总线上delay(5); //延时等到数据稳定lcden=1; //高脉冲delay(5);lcden=0;}/************初始化子函数************/voidinit(){lcden=0;write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加1write_com(0x01);//显示清零,数据指针清零}sbit k6=P3^4; //夜间模式sbit a = P3^1; //P1.0脚定义为asbit b = P2^7; //P1.1脚定义为bsbit c = P3^6; //P1.2脚定义为csbit d = P3^7; //P1.3脚定义为dH鵽sbitRed_nb=P2^6; //南北红灯标志sbitYellow_nb=P2^5; //南北黄灯标志sbitGreen_nb=P2^4; //南北绿灯标志sbitRed_dx=P2^3; //东西红灯标志sbitYellow_dx=P2^2; //东西黄灯标志sbitGreen_dx=P2^1; //东西绿灯标志sbit Buzz=P3^0;bit set=0; //调时方向切换键标志=1时,南北,=0时,东西bit dx_nb=0; //东西南北控制位bit shanruo=0; //闪烁标志位bit yejian=0; //夜间黄灯闪烁标志位uchar code table[11]={ //共阴极字型码0x3f, //--00x06, //--10x5b, //--20x4f, //--30x66, //--40x6d, //--50x7d, //--60x07, //--70x7f, //--80x6f, //--90x00 //--NULL};//函数的声明部分void key(); //按键扫描子程序void display(); //显示子程序void Buzzer();void main(){TMOD=0X11; //定时器设置TH1=0X3C;TL1=0XB0;TH0=0X3C; //定时器0置初值0.05STL0=0XB0;EA=1; //开总中断ET0=1; //定时器0中断开启ET1=1; //定时器1中断开启TR0=1; //启动定时0TR1=0; //关闭定时1EX0=1; //开外部中断0EX1=1; //开外部中断1Green_dx=1;Green_nb=0;Red_nb=1;Red_dx=0;Yellow_dx=0;Yellow_nb=0;sec_nb=sec_dx+5; //默认南北通行时间比东西多5秒init();write_com(0x80);for(num=0;num<13;num++){write_data(table7[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<11;num++){write_data(table8[num]);delay(5);}while(1) //主循环{key(); //调用按键扫描程序display(); //调用显示程序}}//函数的定义部分void key(void) //按键扫描子程序{if(k6!=1) //当K6(夜间模式)按下{display(); //调用显示,用于延时消抖if(k6!=1) //如果确定按下{{init();write_com(0x80); //将数据指针定位到第一行第一个字符处for(num=0;num<11;num++){write_data(table1[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<5;num++){write_data(table2[num]);delay(5);}}TR0=0; //关定时器Green_dx=0;Green_nb=0;Red_nb=0;Red_dx=0;Yellow_dx=0;Yellow_nb=0;TR1=1;sec_dx=00; //四个方向的时间都为00 sec_nb=00;do{display(); //调用显示,用于延时}while(k6!=1); //等待按键释放}}}void display(void) //显示子程序{buf[1]=sec_nb/10; //第1位东西秒十位buf[2]=sec_nb%10; //第2位东西秒个位buf[3]=sec_dx/10; //第3位南北秒十位buf[0]=sec_dx%10; //第4位南北秒个位a=1;b=1;c=1;d=1; // 初始灯为灭的P0=0x00; ////灭显示a=0;b=1;c=1;d=1; //片选LED1P0=table[buf[1]]; //送东西时间十位的数码管编码delay(1); //延时a=1;b=1;c=1;d=1; //关显示P0=0x00; //灭显示a=1;b=0;c=1;d=1; //片选LED2P0=table[buf[2]]; //送东西时间个位的数码管编码delay(1); //延时a=1;b=1;c=1;d=1; //关显示P0=0x00; //关显示a=1;b=1;c=0;d=1; //片选LED3P0=table[buf[3]]; //送南北时间十位的数码管编码delay(1); //延时a=1;b=1;c=1;d=1; //关显示P0=0x00; //关显示a=1;b=1;c=1;d=0; //片选LED4P0=table[buf[0]]; //送南北时间个位的数码管编码delay(1); //延时}void time0(void) interrupt 1 //定时中断子程序{TH0=0X3C; //重赋初值TL0=0XB0; //12m晶振50ms//重赋初值TR0=1; //重新启动定时器countt0++; //软件计数加1if(countt0==10) //加到10也就是半秒{if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //东西黄灯闪{Green_dx=0;Yellow_dx=0;Buzz=0; //蜂鸣器关}if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黄灯闪{Green_nb=0;Yellow_nb=0;Buzz=0; //蜂鸣器关}}if(countt0==20) // 定时器中断次数=20时(即1秒时){ countt0=0; //清零计数器sec_dx--; //东西时间减1sec_nb--; //南北时间减1if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //东西黄灯闪{Green_dx=0;Yellow_dx=1;Buzz=1; //蜂鸣器关}if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黄灯闪{Green_nb=0;Yellow_nb=1;Buzz=1; //蜂鸣器关}if(sec_dx==0&&sec_nb==5) //当东西倒计时到0时,重置5秒,用于黄灯闪烁时间{sec_dx=5;shanruo=1;}if(sec_nb==0&&sec_dx==5) //当南北倒计时到0时,重置5秒,用于黄灯闪烁时间{sec_nb=5;shanruo=1;}if(dx_nb==0&&sec_nb==0) //当黄灯闪烁时间倒计时到0时,{Buzz=1; //蜂鸣器开P2=0x00; //重置东西南背方向的红绿灯Green_nb=1;Red_dx=1;dx_nb=!dx_nb;shanruo=0;sec_nb=set_timenb; //重赋南北方向的起始值sec_dx=set_timenb+5; //重赋东西方向的起始值}if(dx_nb==1&&sec_dx==0) //当黄灯闪烁时间到{P2=0X00; //重置东西南北的红绿灯状态Green_dx=1; //东西绿灯亮Red_nb=1; //南北红灯亮dx_nb=!dx_nb; //取反shanruo=0; //闪烁sec_dx=set_timedx; //重赋东西方向的起始值sec_nb=set_timedx+5; //重赋南北方向的起始值}}}void time1(void) interrupt 3 //定时中断子程序{TH1=0X3C; //重赋初值TL1=0XB0; //12m晶振50ms//重赋初值countt1++; //软件计数加1if(countt1==10) // 定时器中断次数=10时(即0.5秒){Yellow_nb=0; //南北黄灯灭Yellow_dx=0; //东西黄灯灭}if(countt1==20) // 定时器中断次数=20时(即1秒时){ countt1=0; //清零计数器Yellow_nb=1; //南北黄灯亮Yellow_dx=1; //东西黄灯亮}}//外部中断0void int0(void) interrupt 0 //只允许东西通行{ init();write_com(0x80); //将数据指针定位到第一行第一个字符处for(num=0;num<10;num++){write_data(table5[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<10;num++){write_data(table6[num]);delay(5);}TR0=0; //关定时器0TR1=0; //关定时器1sec_nb=00; //四个方向的时间都为00 sec_dx=00;Green_dx=0;Green_nb=0;Red_nb=0;Red_dx=0;Yellow_dx=0;Yellow_nb=0;Green_dx=1; //东西方向置绿灯Red_nb=1; //南北方向为红灯}//外部中断1void int1(void) interrupt 2 //只允许南北通行{ init();write_com(0x80); //将数据指针定位到第一行第一个字符处for(num=0;num<10;num++){write_data(table3[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<10;num++){write_data(table4[num]);delay(5);}TR0=0; //关定时器0TR1=0; //关定时器1sec_nb=00; //四个方向的时间都为00 sec_dx=00;Green_dx=0;Green_nb=0;Red_nb=0;Red_dx=0;Yellow_dx=0;Yellow_nb=0; //灭显示Green_nb=1; //置南北方向为绿灯Red_dx=1; //东西方向为红灯}。

合集下载

基于AT89C51单片机的交通灯系统设计

基于AT89C51单片机的交通灯系统设计

基于AT89C51单片机的交通灯系统设计摘要:本文设计了一种基于AT89C51单片机的交通灯系统。

该系统通过使用AT89C51单片机作为控制核心,结合LED灯、红外传感器等硬件部件,实现了智能交通灯的功能。

利用AT89C51单片机的高性能和可编程性,本文提出了基于状态机的控制算法,实现交通灯的精确控制,以提高交通效率和安全性。

试验结果表明,所设计的交通灯系统稳定可靠,具有一定的应用价值。

关键词:AT89C51、单片机、交通灯、智能控制、状态机1. 引言交通灯作为城市道路交通的重要组成部分,对交通的顺畅和安全起着至关重要的作用。

传统的交通灯系统通常接受定时控制方式,无法依据实际交通状况进行灵活调整,导致交通拥堵和交通事故频发。

因此,设计一种智能交通灯系统,能够依据实时交通状况智能调整交通信号灯的状态,具有重要的现实意义。

2. 系统设计2.1 系统硬件设计本文所设计的交通灯系统接受AT89C51单片机作为控制核心,具有较高的性能和可编程性。

系统硬件部件包括LED灯、红外传感器、电路板等。

其中,LED灯用于表示交通灯的红、黄、绿三种状态;红外传感器用于感知车辆的存在与否。

这些硬件部件通过电路板毗连并与AT89C51单片机进行相应的电路毗连,构成完整的交通灯系统。

2.2 系统软件设计系统软件主要包括控制算法的设计和程序编写。

本文接受了基于状态机的算法,实现交通灯的智能控制。

系统依据红外传感器感知到的车辆状况和交通灯当前的状态来进行裁定,从而确定下一时刻交通灯的状态。

详尽实现过程如下:状态1:红灯状态。

当红灯亮起时,表示该方向的车辆需要停车等待。

系统检测到车辆通过红外传感器时,切换到状态2。

状态2:绿灯状态。

当绿灯亮起时,表示该方向的车辆可以通行。

系统计时一定时间后,切换到状态3。

状态3:黄灯状态。

当黄灯亮起时,表示该方向的车辆应注意停车。

系统计时一定时间后,切换到状态1。

该算法能够依据交通灯的当前状态和车辆的状况进行相应的状态切换,实现智能交通灯的控制。

AT89C51单片机交通灯显示系统设计. Doc1

AT89C51单片机交通灯显示系统设计. Doc1

目录摘要 (1)一单片机简介1.1 单片机的发展历史 (2)1.2 单片机的特点 (3)1.3 单片机的分类 (3)二系统总体方案及硬件设计2.1 芯片的选择及简单介绍 (4)2.2 交通灯的工作原理 (8)2.3 设计功能 (8)2.4 交通灯流程程序设计 (9)2.5 软件设计 (9)三 Proteus仿真附录1 (12)参考文献 (22)摘要随着经济的发展,日常交通越来越繁忙,在交通控制中,交通灯扮演着越来越重要的角色。

在十字路口,交通灯就更加重要了。

本文主要介绍了十字路口交通灯的设计与实现运行,运用AT89C51芯片,实现交通灯显示系统的设计。

关键词:单片机交通灯显示系统AT89C51一单片机简介1.1单片机的发展历史单片机是是微型计算机的一个重要分支,也是非常具有生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称之为微控制器。

在MCS-51系列单片机中,有两个子系列:51子系列和52子系列,每个子系列有若干个型号。

51系列有8051,8751,和8031三个型号,后来经过改进产生了80c51,87c51,80c31三个型号;52系列有5021,8752,8032三个型号,改进后的型号是80c52,87c52,80c32.改进后的型号更加省电。

52系列比对应的51系列增加了定时器T2并将内部存储器增加到8KB。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器,存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可以成为一个单片机控制系统。

单片机经过三代的发展,目前单片机正朝着高性能和多品种的方向发展,它们的CPU功能在不断增强,内部资源增多,引脚的多功能化以及低电压低功耗的特点。

1.2单片机的特点(1)功能强、体积小。

—片单片机一般也只有一块校徽大小。

因此,单片机能方便地嵌入到各种被控制的设备中。

(2)而向控制。

单片机指令系统中有丰富的转移指令、位操作指令、I/O口的逻辑操作等指令,能满足工业、国防等高科技领域的控制要求。

基于AT89C51单片机的交通灯模拟控制系统

基于AT89C51单片机的交通灯模拟控制系统

基于AT89C51单片机的交通灯模拟控制系统一、概述随着城市化进程的加速,交通问题日益凸显,而交通灯作为城市交通的重要组成部分,其控制系统的设计和优化显得尤为重要。

基于AT89C51单片机的交通灯模拟控制系统,作为一种智能化、高效化的解决方案,正逐渐受到广泛关注和应用。

本系统以AT89C51单片机为核心控制器,结合外围电路和编程技术,实现对交通灯信号的有效控制。

AT89C51单片机以其高性能、低功耗、易编程等特点,在交通灯控制领域具有广泛的应用前景。

通过本系统的设计与实现,不仅能够模拟真实交通场景下的交通灯控制过程,还能够为实际交通灯控制系统的优化提供有益的参考和借鉴。

我们简要介绍了基于AT89C51单片机的交通灯模拟控制系统的研究背景和意义,以及系统的主要特点和优势。

本文将详细阐述系统的硬件设计、软件编程、功能实现以及性能优化等方面的内容,以期为相关领域的研究和实践提供有益的参考和启示。

1. 交通灯控制系统的重要性交通灯控制系统在现代城市生活中扮演着至关重要的角色。

随着城市化进程的加速和汽车保有量的不断增加,道路交通压力日益增大,交通拥堵和交通事故频发成为制约城市发展的重要因素。

一个高效、稳定的交通灯控制系统对于提高道路交通效率、减少交通事故发生率具有不可忽视的意义。

交通灯控制系统能够规范交通秩序,确保车辆和行人有序通行。

通过合理设置红绿灯的时长和顺序,交通灯控制系统能够实现对交通流的精确控制,避免车辆和行人之间的冲突,减少交通拥堵和混乱现象的发生。

交通灯控制系统能够提高道路通行能力,缓解交通压力。

通过优化交通灯的控制策略,可以减少车辆在交叉口等待的时间和次数,提高道路的通行效率。

这不仅可以缓解城市交通拥堵问题,还可以减少车辆尾气排放,有利于改善城市环境质量。

交通灯控制系统还具有一定的智能化和自适应能力。

随着物联网、大数据等技术的不断发展,交通灯控制系统可以实现对交通流量的实时监测和预测,并根据实际情况自动调整控制策略,以适应不同时间段和交通状况的需求。

基于AT89C51单片机的交通灯研究设计

基于AT89C51单片机的交通灯研究设计

摘要随着全球城市化进程的加快,机动车的数量大增,各地的交通承受的压力都很大,因而出现的问题也越来越多。

如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道.城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。

本设计采用AT89C51为核心器件来控制交通灯。

Protues软件是英国Labcenter electronics公司出版的EDA工具软件,是做仿真的得力助手。

本交通灯以单片机为核心,以LED灯作为倒计时显示。

有系统简单.实用性强.运行稳定且可靠等优点。

关键词:交通灯;单片机;ProteusAbstractWith the accelerated process of global urbanization, significant increase in the number of motor vehicles, the traffic around the great pressure to bear, so more and more problems. How to use the appropriate control method to maximize the use of a good city to invest in costly high-speed road construction to ease the main road and ramp. City with traffic congestion around the area, has increasingly become a transportation management and urban planning department solved the main problem. With the development of electronic technology, the use of SCM technology for intelligent management of traffic lights, has become widely used method. This design uses AT89C51 as the core component to control the traffic lights. Protues software is published by the British Labcenter electronics companies EDA software tools, simulation of the right hand is doing. The single chip microcomputer as the core of traffic lights to LED lights as the countdown display. A simple system. Practicability. Run stable and reliable.Key words: traffic lights; SCM; Proteus目录上海师范大学本科毕业论文(设计)诚信声明 (I)上海师范大学本科毕业论文(设计)选题登记表 (II)上海师范大学本科毕业论文(设计)指导记录表 (IV)中文摘要及关键词 (V)英文摘要及关键词 (VII)1.单片机概述 (1)1.1单片机的发展 (1)1.2单片机的定义 (2)1.3单片机的特点 (2)1.4单片机的应用领域 (3)2.选题背景 (5)2.1交通灯的简介 (5)2.2AT89C51芯片简介 (6)3. 交通灯的研究思路 (7)3.1概述 (7)3.2需求分析 (7)3.3设计思想 (7)3.4设计要求 (7)4.交通灯的仿真实现 (9)4.1protues仿真软件 (9)4.2实现原理 (9)4.3实现过程 (10)4.3.1 选取元器件 (10)4.3.2 系统连线 (12)4.3.4运行状态 (13)4.4测试 (15)5.总结 (16)参考文献 (17)附录 (18)1.绪论在城市中很明显的能感受到交通的日益拥堵,各种各样的问题都会出现在马路上,像行人穿马路,车辆的行进,都少不了交通灯的指挥,可以说如果没有了交通灯,交通将会瘫痪。

基于单片机AT89C51的交通灯控制器的设计

基于单片机AT89C51的交通灯控制器的设计

摘要本文采用AT89C51单片机芯片为核心控制器件设计的交通灯控制器,该系统主要包括单片机最小系统,按键,数码管显示,交通灯演示系统。

系统主要具有有人行道,交通灯的基本功能,倒计时,紧急情况处理,根据具体情况手动控制等功能。

通过AT89C51并接数码管和发光二极管来实现交通灯的变化规律,P1口设置红,绿灯点亮时间功能的实现;红绿灯循环点亮,倒计时剩余10秒时黄灯闪烁警示。

本系统的研发周期短,可靠性高,实用性,操作简单,维护方便,扩展功能强大。

本系统软硬件相结合,通过Proteus软件仿真,基本实现了交通信号灯的模拟。

关键词:AT89C51;数码管;交通灯控制器ABSTRACTIn this paper, AT89C51 chip as the core control device design traffic light controller, the system includes smallest single-chip system, keyboard, digital display, traffic lights demonstration system. System mainly has a sidewalk, the basic functions of traffic lights, countdown, emergency treatment, according to the specific circumstances of manual control and other functions. And connected via AT89C51 LED digital tube and realized traffic lights change, P1 port settings of red, green lighting time function is implemented; traffic light cycle light, countdown 10 seconds remaining yellow flashing warning. The system development cycle is short, high reliability, practicality, simple operation, easy maintenance, expansion and powerful. This system combines hardware and software, Through the Proteus Software Simulation,the basic realization of traffic lights simulation.Keywords: AT89C51; System; Digital pipe; Traffic light controller目录绪论 (1)1.整体方案设计 (2)1.1 方案分析 (2)1.2 方案确立 (3)2.系统的硬件设计 (3)2.1设计原理及方法 (3)2.2 AT89C51单片机最小系统 (4)2.2.1 复位电路 (4)2.2.2 时钟电路 (5)2.2.2 EA脚的功能及接法 (6)2.3其它硬件模块介绍及连接 (7)2.3.1 倒计时显示模块 (7)2.3.2 交通灯显示模块 (8)2.3.3 按键控制模块 (9)2.3.4 电源模块 (10)3.系统的软件设计 (10)3.1系统相关参数计算 (10)3.1.1 T0的计数初值 (10)3.1.2 倒计时显示的理论分析 (10)3.1.2 交通灯状态显示的理论分析 (11)3.2系统主程序设计 (11)4.系统的Proteus软件仿真 (12)4.1 Proteus仿真图 (12)4.2 Proteus仿真的结果分析 (12)结束语 (14)参考文献 (14)致谢 (15)附录:程序源代码 (16)绪论随着人口的迅速增长,道路资源的有限性和交通工具爆炸性的发展,城市交通正面临着严峻考验,因此造成日益严重的交通问题,每天的交通拥堵成了家常便饭但又不得不忍受。

基于单片机AT89C51交通灯控制器的设计

基于单片机AT89C51交通灯控制器的设计

图4 程序流程图
6.系统的 Proteus软件仿真
6.1 东西通行,南北禁行
6.2东西禁行,南北通行
7.结论
通过Proteus仿真实现东西方向和南北方向的十字路口 的车辆相互交替通过,东西方向每次通行时间设置为60 秒、南北方向通行时间设置为50秒。同时可以实现红灯、 黄灯、绿灯各状态之间的相互转换,黄灯闪烁时间设置 为10秒,数码管可以准确进行倒计时显示。通过按键K0, K1,K2,K3可以实现交通灯工作状态之间相互转化,实 现了课程设计的要求。
谢谢 观赏
3.整体框图
本设计采用模块化 的分层次设计方法, 以单片机AT 89C51 为控制核心,连接 成最小系统,由倒 计时显示模块、交 通灯显示模块、按 键开关控制模块等 组成。系统的总体 框图如图所示。
图2 交通灯控制器框图
4.硬件设计
本系统采用AT89C51单片机及外围器件构成最小控制系统, 12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块, 4个数码管东西南北方向各一个构成倒计时显示模块,通过 四个按键K0、K1、K2、K3模拟控制交通灯东西通行, 南北通行,返回,紧急情况各个交通灯工作情况之间相互转 化。
图3 交通灯控制系统原理图
5.系统软件设计
本系统采用AT89C51单片机实现交通灯的控制, 程序的编写用C语言来完成。系统控制程序可以分为 若干模块:初始化程序,按键开关控制程序,交通 灯转换控制程序,LED数码管显示程序,按键消抖 动程序,延时程序,中断服务子程序等。系统相应 的程序流程如下图所示。
基于AT89C51的交通灯控制器的设计
姓名:张建猛 学号:2010080870 学院:机械与电子工程学院 专业:自动化 指导老师:胡波 刘明
目录

基于AT89C51单片机的交通灯实验报告

/*
*实现基于C51的交通信号灯的控制操作
*使用器件->>
* 1.74HC138用于控制LED的位选码的设定
* 2.T0->>实现一个时间的定时操作(设置为10ms)
* 3.P0->>作为LED现实的断码输出端
* 4.P1->>作为LED交通灯的信号灯的控制端
* 5.P2->>作为74HC138的为选码的控制端
//红灯跳转到绿灯
SN_RED = 0;
SN_YELLOW = 1;
SN_GREEN = 0;
SN_IFGREEN = 1;
}
}
void east_west(){
if(EW_IFGREEN && LEDTIME == 5){
//绿灯跳转到黄灯的变换
EW_RED = 0;
EW_YELLOW = 1;
EW_GREEN = 0;
EW_GREEN = 1;
EW_IFGREEN = 1;
}
}
void led_show(){
int height_LED = LEDTIME/10;//高10位
int litter_LED = LEDTIME%10;//低10位
//南北方向的时间跳变控制
PA = 1;
PB = 1;
PC = 1;
P0 = LED_TABLE[litter_LED];//低10位
//东西方向的交通灯的操作控制
void east_west();
//LED时间显示的操作控制
void led_show();
//复位系统
void reset_SYS() interrupt 0{

基于89c51的智能交通灯设计

目录前言 (1)第1章交通管理方案论证 (3)1.1 设计任务 (3)1.2 方案介绍 (3)第2章单片机概述 (7)2.1 AT89c51芯片 (7)2.2 89系列单片机的优点 (8)2.3 ATMEL89系列单片机的分类 (9)2.4 I/O口的功能 (9)2.5 结构框图 (10)2.6 引脚描述 (11)2.7 中断与定时/计数系统 (13)2.7.1 中断 (13)2.7.2 定时器/计数器的控制寄存器 (14)2.7.3 定时工作方式0 (16)第3章交通灯控制系统硬件设计 (18)3.1系统构成 (18)3.2 芯片选择与介绍 (19)3.2.1 74HC164芯片介绍 (19)3.2.2 max232芯片介绍 (19)3.2.3 数码管介绍 (20)3.2.4 74LS04输出信号与信号灯 (23)3.3 交通灯控制线路图 (24)3.4 串口通信接线图 (25)3.5 RSR232总线 (25)第4章交通灯控制系统软件设计 (28)4.1 程序设计流程图 (28)4.2 MATLAB的运用 (29)4.2.1 MATLAB的语言特点 (30)4.2.2 MAX232实现单片机与PC机之间的通讯 (33)4.2.3串行通讯的几点说明 (33)结论 (37)参考文献 (38)致谢 (39)附录一 (40)附录二 (43)前言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

1914年,电气启动的红绿灯出现在美国。

at89c51单片机_交通灯控制系统(包括源码and仿真图)

设计任务书设计要求和技术指标1、技术指标:设计一个十字路口的交通灯控制电路,每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯表示该道路允许通行。

该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。

2、设计要求(1)要求甲车道和乙车道上的车辆交替运行,每秒通行时间为25秒种;(2)要求黄灯先亮5秒种,才能变换车道;(3)黄灯亮时要求每秒闪亮一次;(4)要求绘出原理图,并用Protel画出印制板图;(5)根据设计要求和技术指标设计好电路,选好元件及参数;(6)拟定测试方案和设计步骤;(7)写出设计性报告。

录` 目一、项目名称................................................................................. 错误!未定义书签。

二、选题背景 (2)2.1 课题背景 (2)2.2 交通灯的历史 (2)三、单片机简介 (3)3.1 单片机的发展历程 (3)3.2 单片机的特点: (4)3.3 AT89C51单片机简介 (4)四、设计基本要求和步骤 (6)4.1 基本要求 (6)4.2 设计步骤 (7)五、硬件和软件设计 (7)5.1 硬件电路图 (7)5.2 程序流程图 (9)主程序 (9)运行过程 (10)LED显示程序 (11)T0中断 (12)INT0中断 (12)5.3 P0、P1口显示状态编码表 (13)5.4 程序源代码 (13)5.5 程序运行效果图 (18)六、心得体会 (20)七、参考文献 (21)摘要本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。

系统包括人行道、左转、右转、以及基本的交通灯的功能。

系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测以及根据具体情况手动控制等功能。

单片机基于89c51的十字路口交通灯控制系统设计

课程设计报告 题 目 十字路口交通灯控制系统设计课 程 名 称 单片机原理及应用课程设计 院 部 名 称 信息技术学院 专 业 电子信息工程 班 级 学 生 姓 名 X X X 学 号 XXXXXXXXXX 指 导 教 师目录一、设计题目 (2)二、设计目的 (2)三、设计任务 (2)四、设计思路 (3)4.1设计思路 (3)4.2系统总体框图 (3)4.3资源分配 (3)五、硬件原理图和连接图 (9)六、程序流程图 (13)七、设计心得 (14)八、参考文献 (15)九、附录 (15)一、设计题目十字路口交通灯控制系统设计二、设计目的系统功能要求:本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,通行时间调整和紧急处理等功能。

此十字路口交通灯控制系统,分东西道和南北道,设南北道为A道,东西道为B道。

规定:首先,东西路口红灯亮,南北路口绿灯亮,同时开始30s倒计时,以7段数码管显示时间。

25s倒计时结束后开始5s倒计时,南北路口的绿灯闪烁,计时到最后2s时,南北路口黄灯亮。

完成1次这样的循环需要30s。

30s 结束后,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。

若有紧急车辆要求通过时,此系统应能禁止普通车辆,而让紧急车辆通过。

(1)倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。

驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。

倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。

(2)时间的设置本设计中可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。

键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档