首页 交通信号灯设计报告(含程序)

交通信号灯设计报告(含程序)

举报
开通vip

交通信号灯设计报告(含程序)武汉纺织大学 电子设计竞赛 ——交通信号灯自动控制系统设计报告 学院:电子与电气工程学院 班级:电子093班 成员: 2011年5月1日 目 录 交通信号灯自动控制系统设计概要……………………………………………1 第一部分:系统方案…………………………………………………1 第二部分:电路与程序设计 …………………………………………4 第三部分:测试方案与测试结果 ……………………………………6 参考文献………………………………………………………………6 附...

交通信号灯设计报告(含程序)
武汉纺织大学 电子设计竞赛 ——交通信号灯自动控制系统设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 学院:电子与电气工程学院 班级:电子093班 成员: 2011年5月1日 目 录 交通信号灯自动控制系统设计概要……………………………………………1 第一部分:系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 …………………………………………………1 第二部分:电路与程序设计 …………………………………………4 第三部分:测试方案与测试结果 ……………………………………6 参考文献………………………………………………………………6 附录一 主程序流程图 ………………………………………………7 附录二 元器件清单 ……………………………………………………8 附录三 程序清单……………………………………………………9 附录四 仿真电路图……………………………………………… 交通信号灯自动控制系统设计概要 一、设计要求要求 1.系统基本功能要求 (1)以秒为计时单位,两位数码管以十进制递减计数形式作定时显示,在递减计数回零瞬间完成换灯操作。 (2)通过键盘红、黄、绿三色信号灯所亮时间在0~99秒内任意设定。 (3)十字路口的通行起始状态可人工设定,运行中可通过人工干预使十字路口通行状况固定于任何一种工作模式。 (4)具有时间控制功能,交通信号灯工作时间:05:00~23:00;其余时间两个干道上的黄色信号灯闪烁显示; (4)绿色信号灯倒计时最后3秒和黄色信号灯显示时闪烁显示。(闪烁频率:1Hz); 二、设计思路 为了完成本题目的设计要求,即倒计时及时间控制功能,采用单片机内部定时器进行时间的控制,为了实现调整工作倒计时时间、系统工作时间及工作状态,采用5个键盘分别对上面内容进行设置。交通信号采用发光二极管,排布参照下面布局,数码管显示倒计时时间及系统时间。 第一部分 系统方案 一、       总体电路构成 本系统由主控制器STC89c52单片机芯片、基本复位电路、时钟 振荡电路、电源、按键扫描电路、七段数码管驱动及显示电路、发光二极管控制显示电路组成。 二、      各单元电路设计 1.复位电路 复位电路的作用:在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。 基本的复位方式:单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位 (1)手动按钮复位 手动按钮复位需要人为在复位输入端RST上加入高电平(图2)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 (2)上电复位 AT89C51的上电复位电路如图3所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。 通过以上 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 可知手动按键复位要比上电复位方便,所以电路采用手动按键复位。                      图2               图3  通过以上分析在此次交通信号灯设计时由于其可操作性和灵活性,我们选择的是按键复位方式.,这样可以及时的控制单片机,使其CPU及系统各部件处于确定的初始状态,并从初态开始工作。 2.时钟振荡电路 由于AT89C52单片机内部有一个用于构成振荡器的高增益反向放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路,该电路采用的是内部方式,如图4所示: 图4 在XTAL1和XTAL2的两端接石英晶体振荡器,与内部反向器构成稳定的自激振荡器,发出的时钟脉冲直接进入片内定时定时控制部件。用以提供交通灯时钟信号。 3.电源 单片机及其他芯片所需要的电源电压为5V,可以采用直流稳压电源给该系统供电。 4.数码管驱动及显示电路 电路采用4个两位的共阳极7段数码管(如图5)动态扫面显示, 为了使数码管显示较亮,采用两个锁存器进行驱动。 图3 5.按键扫描电路 6.发光二极管控制显示电路 采用普通的反光二极管(红、黄、绿)利用单片机p1口进行控制显示。 7.锁存器 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。 第二部分 电路与程序设计 1. 复位电路 采用手动按键复位电路,实际电路及其参数为电解电容10uf,电阻为10k(图中电源为+5v): 2. 时钟振荡电路 采用12MHz晶振,30~33pf电容即可。在此设计中我们选用30pf的电容。 3. 电源 如下图所示,为串联式直流稳压电源 输出电压范围为4V~15V该电源为模电课程设计时制作,在这里可直接用作5V电源。 4.数码管驱动及显示电路 数码管用来显示交通灯倒计时,小时、分钟、秒的显示,以及倒计时与时间的调节。 5.按键扫描电路 电路采用了5个按键k0~k4,k0、k1、k2用来对倒计时总时间的调节,k4、k1、k2用于对系统时间的调节,k3用于对工作状态的调节。 K0每按下一次,con加1,当con=3时,使con=0,重新判断k0是否按下, 如果con=1,k1键实现对倒计时总时间加1,k2键实现对倒计时总时间减1,当con=2时,k1键实现对黄灯显示时间加1,k2键实现对黄灯显示时间减1。 K4每按下一次,对con2加1,当con2=4时,使con2=0,重新判断k4键是否按下,当con2=1时,显示系统时间,当con2=2时,k0、k1实现对小时的加减,当con2=3时,k0、k1实现对分钟的加减。 通过K3按下的次数使电路工作在不同的5个状态。 6.发光二极管控制显示电路 发光二极管由单片机通过p0口进行控制显示。先对p0口的值进行编码,再将编码按要求赋给p0口。 7.锁存器 我们使用的是两个SN74hC573AN型号的锁存器,由单片机的p1和p3端口通过锁存器来控制数码管的动态显示。 第三部分 调试与仿真 1、软件调试:程序编好以后,先自己检查是否有逻辑错误,保证正确后利用伟福仿真软件对所编写的程序进行编译,检查是否有语法错误,出现错误时伟福系统会自动提示有错误产生,并会指定错误的语句,这时我们需要认真检查程序,修改编译中出现的错误。程序修改无误后,利用仿真软件,我们可以监视程序PC指针、P0、P1、P2口的变化、以及存储单元的值的变化来检查程序是否运行正常,是否能够实现预定的控制功能。 2、硬件调试:按照已经设计好的电路设计图,在proteus中进行调试与仿真,确保电路无误,在万能印刷电路板上焊接各个元件。电路板制作完成以后,利用万用表检查硬件是否焊接正常以及是否出现短路和断路的情况,并修改焊接中的错误,直到硬件电路可以正常工作为止。在第一次进行检测时发现显示管不会显示数据,经过进一步检查才发现是电源线没有焊接。如此反复操作,直到硬件可以正常运行。 参考文献 1. 谢维成.单片机原理与应用及C51程序设计(第二版).北京:清华大学出版社.2011 2. 阎石.数字电子技术基础(第五版).北京:高等教育出版社.2010 3.童诗白.模拟电子技术基础(第四版)北京:高等教育出版社.2010. 附录一 主程序软件流程图 附录二 原器件清单 制作交通信号灯所需元件清单 名称 数量 元件说明 单片机 (底座) 1 STC89C52型号 电路板 1 单面 两位数码管 4 共阳极 LED灯 12 红黄绿各四个 锁存器 (底座) 2 SN74HC573AN型号 按键开关 6 四个脚 石英晶体振荡器 1 12M振荡频率 电阻 13 1K1个,上拉1K6个,10K5个,200欧1个 电容 3 30Pf 2个,10Uf1个 铜柱 4 普通 焊锡导线 若干 普通 制作5V直流电源所需器件 名称 数量 元件说明 整流二极管 4 1n4001 电解电容 2 1000u/25V 三极管 5 9013 大功率三极管 1 3A/50V 红色发光二极管 1 普通 大电阻 1 2.7Ω/1W 1/4W电阻 6 510Ω,1.5K,2K ,5.6K,10K, 12K 瓷片电容 2 0.01μ 变压器 1 15V/220V 5W 电路板 1 80×100mm2 二芯带插头电源线 1 普通 开关 1 普通 导线焊锡 若干 普通 附件三 程序清单 #include #define uchar unsigned char char code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0xff,0xbf};//数码管位选 char code scan_con[8]={0x40,0x80,0x10,0x20,0x04,0x08,0x01,0x02};//数码管段选 char data dis[8]={0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00};//显示缓冲区,时、分、秒 uchar time=30,timedata=60,timedata1=30,timeo=5, flagkey3=0,flagkey0,flagkey4=0,tt=0,a,con=0,con1=0,con2=0; uchar timeclk[3]={0x00,0x01,0x05};//时间初始值 sbit key0=P2^0; sbit key1=P2^1; sbit key2=P2^2; sbit key3=P2^3; sbit key4=P2^4; delay1ms(int t)//延时一秒函数 {int i,j; for(i=0;i=10&&tt<20) {P0=0x48; displayt(); } displayt(); P0=0x00; } if(con1==6)//退出设定 { con1=0; flagkey3=0; timedata1=time; timedata=2*time; } if(key4==0)//用于显示调整系统时间 { delay1ms(10); while(key4==0); flagkey4=1; con2++; } if(con2==1) { displayt(); } if(con2==2) { display(timeclk[2]); if(key1==0) {delay1ms(10); while(key1==0); timeclk[2]++; if(timeclk[2]==24) { timeclk[2]=0; } } if(key2==0) { delay1ms(10); while(key2==0); timeclk[2]--; if(timeclk[2]==0) { timeclk[2]=24; } } } if(con2==3) { display(timeclk[1]); if(key1==0) {delay1ms(10); while(key1==0); ++timeclk[1]; if(timeclk[1]==60) { timeo=0; } } if(key2==0) { delay1ms(10); while(key2==0); --timeclk[1]; if(timeclk[1]==0) { timeclk[1]=59; timeclk[2]--; } } } if(con2==4)//退出时间调整 { con2=0; flagkey3=0; flagkey0=0; flagkey4=0; } } led()//l二极管显示程序 { if(timedata<=2*time&&timedata>time+timeo+3) { P0=0x84; } if(time+timeo=10&&tt<20) { P0=0x84; display(timedata1); } P0=0x04; } if(timedata<=timeo+time&&timedata>time) { while(tt>=10&&tt<20) {P0=0x44; display(timedata1);} P0=0x04; } if(timedata<=time&&timedata>=(timeo+3)) { P0=0x30; } if(timedata<(timeo+3)&&timedata>timeo) { while(tt>=10&&tt<20) {P0=0x30; display(timedata1);} P0=0x20; } if(timedata<=timeo) { while(tt>=10&&tt<20) {P0=0x28; display(timedata1);} P0=0x20; } } void main() { TMOD=0x01; TH0=0x3c;TL0=0xb0; TR0=1;ET0=1; EA=1; P0=0x00; P3=0X00; P2=0xff; while(1) { while((timeclk[2]>=23&&timeclk[1]>0)||(timeclk[2]<5&&timeclk[1]<60)) { while(tt>=10&&tt<20) {P0=0x48; key();} P0=0x00; key(); }} if(flagkey3==0&&flagkey0==0&&flagkey4==0){led();} if(flagkey4==0) { if(flagkey0==0&&flagkey3==0){display(timedata1);} else { } } else{displayt();} key(); } } void time0() interrupt 1//定时器T0中断 { ET0=0; TH0=0x3c; TL0=0xb0; tt++; if(tt==20) {tt=0; timedata--; timedata1--; timeclk[0]++; if(timedata1==0) { timedata1=time; } if(timedata==0) { timedata=2*time; } if(timeclk[0]==60) { timeclk[0]=0; timeclk[1]++; if(timeclk[1]==60) { timeclk[1]=0; timeclk[2]++; if(timeclk[2]==24) {timeclk[2]=0;} } } } ET0=1; } 附录四 仿真电路图 主 控 制 器 STC89C52单片 机芯片 发光二极管控制显示电路 Y 时间是否在5点到23点之间 给定系统初始时间5:01:00 开始 图一 总体电路框图 七段数码管驱动及显示电路 时钟振荡电路 按键扫描电路 复位电路 电源 黄灯闪烁显示,时间显示 N 调用键盘显示程序 判断是否有键按下? 调用key()根据按键情况进行显示 用led(),display(uchar x )进行显示 Y N f e d c b a a b c d e f a b c d e f d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 w 1 w 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 w 3 w 2 d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 w 5 d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 w 7 w 6 k1 k2 k3 k4 w 4 k0 d1 d2 d3 d4 d5 d6 d7 d8 w0 w1 w2 w3 w4 w5 w6 w7 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 X1 CRYSTAL C1 33p C2 33p +5v C3 1u R1 10k R2 1k R3 1k R4 1k R5 1k R6 1k R7 1k +5V D1 LED-GREEN D2 LED-BLUE D3 LED-RED D4 LED-GREEN D5 LED-BLUE D6 LED-RED D7 LED-GREEN D8 LED-BLUE D9 LED-RED D10 LED-GREEN D11 LED-BLUE D12 LED-RED R8 10k R9 10k R10 10k R11 10k R12 10k D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U4 74HC573 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U2 74HC573 PAGE 16- -
本文档为【交通信号灯设计报告(含程序)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_226564
暂无简介~
格式:doc
大小:388KB
软件:Word
页数:28
分类:互联网
上传时间:2011-11-30
浏览量:52