交通信号灯模拟控制系统设计报告书

设置在单片机中,每次以一定周期交替变化。够交通灯和按键使用。口控制采用低电平灌电流方式,这样便会有足够电流驱动数码管显示;此种方案既不需要再扩展I/O口,直接用单片机控制数码管显示和交通灯的亮灭,电路较为简单。模值和计数器工作方式有关。片机的重要性,要想学好智能化单片机一定要熟练。

人、车、路之间关系的协调已成为交通管理部门需要解决的重要问题之一。 城市交通控制系统是用于城市交通数据监控、交通信号灯控制和交通诱导的综合计算机管理系统。 它是现代城市交通监控指挥系统最重要的组成部分。 因此,如何采用适当的控制方法,最大限度地利用耗巨资修建的城市快速路,缓解主干道和匝道、城区及周边地区的交通拥堵,已成为交通管理和城市规划日益紧迫的问题。部门。 主要问题。 在大中城市,路口的红绿灯是交通规则的无声命令,是驾驶员和行人的行为准则。 路口交通灯控制是保证交通安全、道路畅通的关键。 目前,我国大部分城市都采用“自动”交通灯,有固定的“红灯-绿灯”转换间隔,自动切换。 它们一般由“通行和禁止时间控制显示器、红、黄、绿三色信号灯和方向指示灯”三部分组成。 在交通信号灯通行和禁止时间控制显示中,通常根据交通规则设置红、绿、黄信号灯的时间,时间控制是固定的。 交通信号灯的时间控制显示是在单片机中预先设定固定的时间值,每次以一定的周期交替变化。 (二)课程设计的性质和目的本课程设计的主要目的是通过电子技术和单片机原理的学习,全面掌握电子电路综合设计的流程、设计要求和具体设计方法。

通过设计更好的模拟电子学、数字电子学和单片机的复习和理解等课程内容,理论与实践相结合,强化学生的动手能力和查阅相关资料解决实际问题的能力,培养学生的整体概念。从事设计工作。 二、设计任务 1、完成交通信号灯的变换规则,即一个路口在东西、南北两个方向,四个路口各有红、黄、绿三个信号灯和两个LED数码管管。 交通灯通电后,进入初始状态,即东、西、北、南红灯亮。 5秒后转为状态1:南北绿灯亮,通行,东西红灯亮,禁止通行,持续30秒; 30秒后变为状态2:南北绿灯灭,随后黄灯闪烁,延时5秒,东、西红灯仍亮。 ; 5秒后转为状态3:东、西绿灯亮通车,南北灯变红,持续30秒; 30秒后转为状态4:东、西绿灯熄灭转为黄灯,延时5秒,南北灯仍为红灯。 最后循环到状态1。 2、用8个LED数码管(每个方向两个,分别表示个位和十位)显示倒计时。 倒计时用于在信号灯发生变化时提醒驾驶员或行人,以便他们在“停车”和“走”之间做出适当的选择。 3、紧急状态下,通过K1键手动设置,将所有路口灯变为红灯; 再按该键进入状态1,然后依次循环。 ?OO红绿黄红绿黄红绿?00?0O?OO红绿黄红绿黄红绿?00?0O红绿黄状态3 状态3:南北红灯,东西绿灯 状态4:南北红光,东西黄光 oeo 红绿黄00? 红绿黄 状态 1:南北绿灯,东西红灯 状态 2:南北黄灯,东西红灯 图 1 状态图 3. 方案介绍 查阅后网上查阅资料,最终确定了以下方案:(1)方案一采用74HC573锁存器控制数码管显示,采用动态扫描方式控制数码管位选、段选的通断,使数字电子管依次显示相应数值; 红绿灯可以通过单片机端口的I/O直接控制其关闭; 按钮可以通过查询外部中断标志位来控制紧急情况下的相应动作。

本方案框图如下: 单锁单锁数码码存储装置 控制数码管的显示; 根据要求,显示部分为两位数,故数码管可分为四组:南北个位、南北十位、东西方、东西十位。 CD4511输入四位数字,输出七位数字。 因此需要16个I/O口来控制四组数码管,然后用4个I/O口来控制数码管的公共极。 剩余的 I/O 端口足以用于交通灯和按钮。 本方案整体框图如下: 红绿灯(发光二极管)按钮单片机 红绿灯(发光二极管)按钮单片机 图3 方案二框图(3) 方案三在基础上进一步简化了电路方案一、二,采用静态数码管显示方式,并将其分组减少为两组,十位为一组,个位为一组,采用共阴极数码管,将所有数码管频闪端子接地,我们只需要给出十位和个位,将不同的段选择信号一起发送即可。 I/O口控制采用低电平吸电流方式,这样就有足够的电流驱动数码管显示。 该方案不需要扩展I/O口,直接使用单片机。 控制数码管显示和交通信号灯的电路比较简单。 该方案的框图如下: 方案比较 以上三种方案各有优缺点,但综合考虑,方案三电路相对简单,使用的元件少,成本低,可以完成所有的工作。由于功能满足设计要求,所以性价比较高,因此最终选择方案三进行设计。

4.详细设计说明 本程序采用AT89S51单片机。 P0、P1口控制数码管的段选择,采用静态显示方式; P2和P3端口的各个位用于控制交通灯(发光二极管)的打开和关闭; 定时采用Timer 0模式一,外接12MHz晶振; 将按钮连接到INT0/P3.2(外部中断0),并将其设置为高优先级中断。 中断方式为电平中断。 一旦发生紧急情况,按按钮中断,中断子程序是使所有路口的红灯亮起,断开按钮,进入状态1。 (1)显示子程序数码管显示0~9的数字。可以采用查表的方式显示对应的数字,并将编辑好的数字显示代码存储在表格中。 代码显示内容对应其在表格中的位置({0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}),将表格中对应位置的代码发送到数码管段选择控制I/O口(P0、P1)使数码管显示相应的数字。 。 (2)定时子程序定时采用定时器0方法1,连接外部12MHZ晶振,通过计算将合适的初值加载到定时器中。 为了方便计算,可以将定时器中断设置为50ms,这样20个中断就等于1s,然后每隔5s或30s执行相应的动作。 (3)总体程序流程(框图参见“七、软件原理”) 图 4 总体程序流程图 5、器件列表及主要器件说明 表 1 Wu 器件列表 名称 规格 数量 单片机 AT89S511 电阻 1KQ8 电阻 470 Q8 晶振振荡器 12MHz1 LED GREEN 触发电流 10mA4 LED RED (触发电流 10mA4 LED YELLO (触发电流 10mA4 数码管共阴 8 个电阻 2K1 按键 1 个电解电容 22uF1 电容 30pF2 电源 +5V 解码器 74hc5732(1)AT89S51 单片机 1) 本次设计主要使用 I/O 端口 P0、P1、P2 和 A3E3736353332.252C272310> .7/A07P2.O^0P2.1W9 P2.2^10 P2.3W11 P2.J/A12P2.5W13P2.SW14P2.7ZA15P3.0/RXD PS .IfTXDP3.2/1NTOP3.3/1NTTP3.4XT^L1XTAL2RSTPEMALE EAFO.D/ADOFC.VAJJ1PO.2/AD2FC.3/AD3PO.il/AD4P0.5/AD6P0.E7AD6P0.7/A07P2.O^0P2.1W9 P2 .2^10 P2.3W11 P2.J/A12P2.5W13P2.SW14P2 .7ZA15P3.0/RXD PS.IfTXDP3.2/1NTOP3.3/1NTTP3.40){P0=表[num/10];P1=表[ num];nu m__;} else{PO=表[O]; Prentable[O];num=5;flag=2;} (3) 调度中断处理定时器的基本原理是给出一个初始值,让它继续加1,直到减为模值。 该初始值被发送到TH和TL。

采用加法计数,从全1到全0时可以自动产生溢出中断请求。 因此,我们可以将计数器填入需要达到零的计数值,即将需要的计数值设置为C。模值与计数器的工作模式有关。 模式0时,M为8192; 模式1时,M值为65536; 在模式2和模式3中,为256。由此可以计算出各种方法的最大延迟。 例如,单片机的主脉冲频率为12MHZ。 除以12后,如果使用模式0,最大延迟仅为8.129毫秒,如果使用模式1,最大延迟仅为65.536毫秒。 这就是扫描周期为50ms的原因。 图10 定时中断流程图。 本设计中我选择定时器0的模式1进行计时。 根据计算,我在中断3中设置初始值X=15536​​D=03CB0Hvoid exter0(){{TH1=(65536-50000)/256;TL1=(65536-50000)%256;tt++;if(tt=20 ){tt=0;JJJJJJ}} 紧急中断处理程序 根据设计要求,系统在特殊情况下,可以按下紧急开关K1,使各个红绿灯发出红光。 再次按下紧急开关K1,进入状态1,然后依次循环。 为了实现该功能,可以利用外部中断使系统及时响应。 当紧急开关连接到低电位时,产生的负跳变会导致 INT0 中断。

进入中断程序后,执行相应的紧急状态代码。 void Interrupt0_handler() 中断 0{EA=0;delay(200);flag1=~flag1;EA=1;if(flag1==1){TR1=0;P0=table[0];P1=table[0] ;P2=0xb6;led2=0;flag=7;} else{flag=1;num=30;TR1=1;}}延迟程序 void delay(uint z){uint x,y;for(x=z; x>0;x–)for(y=110;y>0;y–);} 8.设计经验 这学期我们学习了单片机的课程。 这两周我们设计了单片机的课程。 本课程设计的课题是“交通灯模拟控制系统”。 这次的设计任务并不算太难。 硬件电路的设计主要依靠绘图软件的使用。 我以前自学过protel。 虽然我技术不太熟练,但是硬件设计还是比较容易上手的。 软件方面,之前也学习过keil的使用。 ,有基本的C语言编程能力,但这次还是花了大部分时间来调整程序。 各部分的程序写起来很容易,但整合在一起却很难。 其实学习也是如此。 将你在各个学科中学到的知识结合起来需要付出很大的努力。

同时,这个设计也再次印证了学好单片机的重要性。 想要学好智能单片机,就必须要精通。 总而言之,虽然这门课程设计很短,但对我来说还是收获很多。 感谢老师给我们提供了这个机会,让我们认识自己,加强学习,培养我们的动手实践能力。 9. 参考文献1. 9. 参考文献1. 张一刚,彭希元,彭宇2. 赵建灵,薛媛媛3. 周景润,张丽娜大学出版社2006.52009.1 北京航天微控制器原理与应用》高等教育出版社2011.1251 单片机开发《应用技术详解》电子工业出版社《基于PROTEU的电路和单片机系统的设计与仿真》十、附录附录一:程序列表#include#define uchar unsigned char#define uint unsigned int uint num;uchar tt,flag ,i ;uchar码表[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f};sbit led1=P3A0;sbit led2=P3A1;sbit led3=P3A4;sbit led4=P3A5 ;sbit key=P3A2; sbit led_yellow1=P2A1; sbit led_yellow2=P2A7; sbit led_yellow3=P2A4; sbit flag1=P3A6;/* 延迟子程序*/void delay(uint z){uint x,y; for(x=z; x>0;x–) for(y=110;y>0;y–);}/* 状态 1 */void state1(void)led1=0;led2=0;led3=1;led4=1 ;P2=0xf3;}/* 状态 2 */void state2(void){led1=1;led2=0;led3=1;led4=1;P2=0x75;}/* 状态 3 */void state3(void) {led1=1;led2=1;led3=1;led4=0;P2=0x9e;}/* 状态 4 */void state4(void){led1=1;led2=1;led3=0;led4=1; P2=0xae;}/* 程序初始化*/void init(){flag=0;flag1=0;num=5;tt=0;P0=0x00;P1=0x00;TMOD=0x10;TH1=(65536-50000 )/256;TL1=(65536-50000)%256;EA=1;ET1=1;TR1=1;EX0=1;IT0=1;}/* 主程序*/void main(){init(); while(1) ;}/* 使用独立键盘按键触发外部中断0并设置紧急状态*/ void Interrupt0_handler() Interrupt0{EA=0; 延迟(200); flag1=~flag1;EA=1;if(flag1= =1){TR1=0;P0=表[0];P1=表[0];P2=0xb6;led2=0;flag=7;}else{标志=1; num=30;TR1=1;} }void exter0() 中断 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;tt++;switch(flag){case 0:{if( tt==20){tt=0 ;if(num>0){P0=表[num/10];P1=表[num];P2=0xb6;led2=0;num–;}else{P0=表[0];P1=表[0];num=30;flag=1;}}}break;情况1:{state1();if(tt==20){tt=0; if(num>0) { P0=表[num/10]; P1=表[编号]; num–;}else{P0=表[0];P1=表[0]; num=5;flag=2;}}}break;情况 2:{state2() ;if(tt>=10) { tt=0;led_yellow1=~led_yellow1;led_yellow2=~led_yellow2;i++;if(i== 2)i=0;if(num>0){P0=表[num/10];P1=表[num];num–;}else{P0=表[0];P1=表[0]; 数量=30; 标志=3; i=0;}}}}break;情况 3 :{state3();if(tt==20){tt=0;if(num>0){

单片机

单片机有这么大的作用,其基本功能有哪些?

2024-1-27 17:02:16

单片机

单片机最小系统的工作原理和基本组成包括哪些?

2024-1-27 18:03:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索