- 809.52 KB
- 2022-08-08 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
河廿匕建筑工程学院课程设计报告书课程名称:交通信号灯模拟控制系统学院:电气工程学院专业:电气工程及其自动化班级:电控131学号:2013308113学生姓名:杨鹏指导教师:杜春晖职称:讲师2016年6月25日\n目录一.设计概述31.1课程设计的性质和目的31.2设计任务3二.设计方案及原理3三.设计内容5四.器件介绍及其功能64.1AT89C5174.2LED数码管9五.硬件电路及介绍105.1单片机主电路105・2灯接口电路115.3LED数码管显示电路125.4紧急按键控制电路12六.程序框图及代码136.1显示子程序136.2紧急屮断服务子程序136.3延迟程序146.4总程序框图15七.软件原理15八.设计心得16参考文献16附录一(程序代码)16\n附录二(仿真图)23交通信号灯模拟控制系统设计—・概述1•课程设计的性质和目的本课程设计的主要0的是通过对电子技术及单片机原理的学习,综合掌握电子电路综合设计的过程,设计要求和具体的设计方法。通过设计更好的复习、理解模拟电子、数字电子和单片机等课程内容,使理论和实际相结合,加强学生的动手能力以及查阅相关资料解决实际问题的能力,培养学生从事设计工作的整体观念。2.设计任务(1)完成交通灯的变化规律,即一个十字路口为东西向和南北向,四个路口均冇红黄绿三等和两个LED数码显示管。交通灯上电以后进入初始状态即东西红灯,南北红灯。5s后转状态1:南北绿灯亮通车,东西红灯亮,禁止通行,持续30s;30s后转状态2:南北绿灯灭转黄灯闪亮,延迟5s,东西仍然红灯;5s后转状态3:东西绿灯亮通车,南北转红灯,持续30s;30s后转状态4:东西绿灯灭转亮黃闪灯,延迟5s,南北仍然红灯。最后循环至状态1。(2)用8个LED数码管(各方向均冇两个LED数码管,分别表示个位和十位),显示倒计时。倒计时用于提醒驾驶员或者行人信号灯发生改变的时间,以便他们在“停止”和“通行”两者做出合适的选择。(3)紧急状态下,通过K1键手动设置,将所有路口的灯变为红灯;再次按下此键后进入状态1,然后依次循环。\n二•设计方案及原理通过网上查阅资料,最终确定以下几种方案:\n方案一:该方案使用了CD4511显示译码器和74LS138译码器。通过CD4511将单片机输出的BCD8421码转换成为七段码然后送LED数码管显示;通过74LS138译码器将单片机输出的三位二进制码转换成八位只有一个低电平的代码,从而对LED数码管进行片选。时钟电路和复位电路为单片机提供正常的工作环境。按键电路为在紧急情况下的应急处理系统,作用是使东西南北的等变为红灯。红绿灯电路由单片机I/O口直接驶动。时钟电路复位电路按键电路STC89C52单片机CD45II译码器74LS138译码器LED数码显示红绿灯电路方案一方案二采用74HC573锁存器控制数码管显示,使用动态扫描方法,控制数码管位选和段选的通断来使数码管依次显示相应数值;交通灯则可通过单片机的1/0口来直接控制其关断;按键可通过对外部中断标志位的查询来控制紧急情况的相应动作。此方案框图如下:锁存器数码交通灯(发光二极管)按键方案二\n方案三:直接用单片机的I/O口进行LED数码管字位张动,使用的I/O口比较多,但是成本较低交通灯(发光二极管)P1口单片机PO口P2口数码管P3U方案比较:通过比较三种方案,结合交通灯的实际情况,红绿灯和数码管的东西方向和南北方向一致,所以可以节省10个1/0口,因此此系统仅仅需要19个I/O口就足够了,使用CD4511和74LS138不仅增加了成本,而且也没起到什么太大的作用,采用方案二节省下來的T/0口在该系统中也没冇什么用处,而且在编程的时候也大大增加了编程的难度,电路也相对复杂了。所以综合考虑,我们采用方案三的设计。三•设计内容本方案使用AT89S51单片机,P0口控制数码管的段选,P2口控制数码管的位选,采用动态扫描方式显示;P1口用来控制交通灯(发光二极管)的亮灭;定吋采用定时器0的方式一,外接12MHz的晶振;按键接P3.2,即外部中断0,并设为高优先级中断,屮断方式为电平屮断,一旦冇紧急情况发生,便按下按键进行屮断,屮断了程序便是使所有路口红灯亮,断开按键便可恢复原主程序继续执行。显示子程序:数码管显示数字为0—9,可以利用查表方式显示相应数字,将编辑好的数字显示代码存入表中,代码显示内容与其在表屮位置相对应({0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}),将表中相应位置的代码送进数码管段选控制1/0口(P0)便可使数码管显示相应数字,再通过位选控制來使不同数码管显示不同内容。定时子程序:定时采用定时器0的方式一,外接12MHz的晶振,通过计算给定吋器装入合适初值,为方便计算,可设定时器一次屮断为50ms,这样屮断20次即为1S然后每个5s或30s便执行相应动作。工作原理:由软件设置交通灯的初始时间,南北方向通行35秒,东四方向通行35秒,数码管采用动态显示,\nP0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。采用中断方式实现按键的功能系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的吋间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达Is就要将时间值减1,刷新LED数码管。时间到达一个状态所耍全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值。四.器件介绍及其功能木系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。其中Pl,P2用于送显两片LED数码管,P0用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振吋钟电路,REST引脚接上复位电路,P3口的八条I/O线对数码管进行片选,系统工作原理系统上电或手动复位Z后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达Is就要将时间值减1,刷新LED数码管。吋间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,当然,述要开启两个外部屮断,其一为紧急情况处理中断,一旦信号冇效,即K1键为低电平时进入中断服务了程序,东西南北路口的红灯全亮禁止全部通行,再按一下K1键,中断结束返回。\n元件清单名称型号数量用途单片机AT89C511个核心控制交通灯红黄绿-:色4个红绿灯显示电源Vcc+5V/1A2个提供+5V电源晶振12MHz1个晶振电路电容30pF/10uF2个/I个晶振电路/复位电路排电阻10K1个上拉电阻数码管2位共阴4个显示电路按键2个复位电路电阻IK1个复位电路非门6个反相放大1.AT89C51AT89C51是美国ATMEL公司生产的低电压,高性能CM0S8位单片机,片内含冇4KB的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片'11,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与MCS-51兼容,4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0IIz-241Iz,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源(两个外部中断源和3个内部屮断源),可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。\n12—AT89C51丄RST22—PSENALEEA>XTAL1U1PO.O/ADOPO.1/AD1P0.2/AD2VAD3引脚图I/AD4■-5/AD5P0.6/AD6PO.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1528271011121314151617•引脚与功能:•VCC:电源电压-GND:接地-P0口:P0口是一组8位双向I/O口。P0口即可士±亠4=亠P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INTTP1.4P1.5P1.6P1.7P3.4/TDP3.5EP3.6歴P3.7/RDAT89C51\n作地址/数据总线使用,又可以作为通用的I/O口使用。当CPU访问片外存储器吋,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。在访问期间激活要使用上拉电阻。•P1口:P1是一个带内部上拉电阻的8准位双向I/O口,P1作为通用的I/O口使用。-P2口:P2是一个带有内部上拉电阻的8位准双向I/O口,P2即可作为通用的I/O口使用,也可以作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址。•P3口:P3口是一组带有内部上拉电阻的8位准双向I/O口。P3口除了作为通用的I/O口使用之外,每个引脚还具冇第二功能。•RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。P3口各位第二功能P3.0RXT(串行口输入)P3.1TXD(串行口输出)P3.2/INTO(外部中断0输入)P3.3/INT1(外部中断1输入)P3.4TO(定时器/计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6/WR(片外数据存储器写允许)P3.7/RD(片外数据存储器读允许)P3口的第二功能-ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过-个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)o如有必要,可通过对特殊功能寄存器(SFR)区屮的8EH单元的DO位置位,可禁止ALE操作。该位置位后,只冇一条M0VX和M0VC指令ALE\n才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。-PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)吋,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSE”言号。•EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压Vcc。•XTAL1:振荡器反相放大器及内部时钟发生器的输入端。51系列单片机的中断源:8051有5个中断源,它们是两个外中断INTO(P3.2)和INTI(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内吊行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址。中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外屮断10013H定时/计数器0001BH串行11中断002311中断源的服务程序入口地址\n2.LED数码管LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的2个8数码管字样了。如:显示一个“2”字,那么不同Z分,LED数码管也有0.5寸=1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管出二个或多个发光二极管组成,一•般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、FoLED数码管分为共阴极和共阳极两种,本实验在硬件电路搭建的时候采用的是共阳极LED数码管,这样使用单片机容易驱动,而采用共阴极则不易驱动二极管。而在proteus软件仿真的时候由于采用共阴极数码管时出现乱码,在寻找错误时也没冇发现什么不对的地方,为了方便起见在软件仿真时选用了共阴极LED数码管,这时就需要在P0口驱动的时候加上一个反相器其结果才和硬件电路一样。共阴3,8LBCDEFGDP)<►i><1<>0764219105ADDP共阴极LED数码管它是半导体二极管的一种,可以把电能转化成光能;常简写为LEDo发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的屯子和P区的空穴复合,产生自发辐射的荧光。不同的半导体\n材料屮电子和空穴所处的能量状态不同。当电子和空穴复合吋释放出的能量多少不同,释放出的量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。五•硬件电路及介绍1・单片机主电路如下图所示,单片机的主电路主要包括时钟电路和复位电路,以及5V电压和接地电压等。这几部分保证了单片机可以正常的工作。时钟振荡电路采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。其发出的时钟脉冲直接送入片内定时控制部件。复位电路采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。为保证复位可靠,RC时间常数应大于两个机器周期,电容取10uf,电阻取1000欧。X111.0592帔N30p*TEXT>30pCEXC2129.30_▼/X1r1厂5P0.1/AD1P0.2/AD2XTAL2PO3/AD3P0.4/AD4P0.5/AD5PO6/AD6RSTPO7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11oo4/A4OEAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.1/T2EXP3.1/TXDP1.2DAQP3.2/INT0r7j.oP1.4HJ.J/IIn11P3.4JT0P1.5P3.5/T1P1.6P3.6/WRHl./r*J.//HUU1191839383736芮343332^T89C52单片机主电路C31Op>!RX1"FZJW'JM£P2JUL>SuP2SA'*FZ\n27