单片机课程设计-交通信号灯模拟控制系统_第1页
单片机课程设计-交通信号灯模拟控制系统_第2页
单片机课程设计-交通信号灯模拟控制系统_第3页
单片机课程设计-交通信号灯模拟控制系统_第4页
单片机课程设计-交通信号灯模拟控制系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北建筑工程学院课程设计报告书课程名称交通信号灯模拟控制系统学院电气工程学院专业电气工程及其自动化班级电控131学号学生姓名指导教师职称讲师2016年6月25日2目录1设计概述311课程设计的性质和目的312设计任务3二设计方案及原理3三设计内容5四器件介绍及其功能641AT89C51742LED数码管95硬件电路及介绍1051单片机主电路1052灯接口电路1153LED数码管显示电路1254紧急按键控制电路126程序框图及代码1361显示子程序1362紧急中断服务子程序1363延迟程序1464总程序框图15七软件原理15八设计心得16参考文献16附录一(程序代码)16附录二(仿真图)233交通信号灯模拟控制系统设计一概述1课程设计的性质和目的本课程设计的主要目的是通过对电子技术及单片机原理的学习,综合掌握电子电路综合设计的过程,设计要求和具体的设计方法。通过设计更好的复习、理解模拟电子、数字电子和单片机等课程内容,使理论和实际相结合,加强学生的动手能力以及查阅相关资料解决实际问题的能力,培养学生从事设计工作的整体观念。2设计任务(1)完成交通灯的变化规律,即一个十字路口为东西向和南北向,四个路口均有红黄绿三等和两个LED数码显示管。交通灯上电以后进入初始状态即东西红灯,南北红灯。5S后转状态1南北绿灯亮通车,东西红灯亮,禁止通行,持续30S;30S后转状态2南北绿灯灭转黄灯闪亮,延迟5S,东西仍然红灯;5S后转状态3东西绿灯亮通车,南北转红灯,持续30S;30S后转状态4东西绿灯灭转亮黄闪灯,延迟5S,南北仍然红灯。最后循环至状态1。(2)用8个LED数码管(各方向均有两个LED数码管,分别表示个位和十位),显示倒计时。倒计时用于提醒驾驶员或者行人信号灯发生改变的时间,以便他们在“停止”和“通行”两者做出合适的选择。(3)紧急状态下,通过K1键手动设置,将所有路口的灯变为红灯;再次按下此键后进入状态1,然后依次循环。二设计方案及原理通过网上查阅资料,最终确定以下几种方案4方案一该方案使用了CD4511显示译码器和74LS138译码器。通过CD4511将单片机输出的BCD8421码转换成为七段码然后送LED数码管显示;通过74LS138译码器将单片机输出的三位二进制码转换成八位只有一个低电平的代码,从而对LED数码管进行片选。时钟电路和复位电路为单片机提供正常的工作环境。按键电路为在紧急情况下的应急处理系统,作用是使东西南北的等变为红灯。红绿灯电路由单片机I/O口直接驱动。方案一方案二采用74HC573锁存器控制数码管显示,使用动态扫描方法,控制数码管位选和段选的通断来使数码管依次显示相应数值;交通灯则可通过单片机的I/O口来直接控制其关断;按键可通过对外部中断标志位的查询来控制紧急情况的相应动作。此方案框图如下时钟电路复位电路按键电路STC89C52单片机CD4511译码器74LS138译码器LED数码显示红绿灯电路交通灯(发光二极管)单片机按键锁存器数码管方案二5方案三方案三直接用单片机的I/O口进行LED数码管字位驱动,使用的I/O口比较多,但是成本较低方案比较通过比较三种方案,结合交通灯的实际情况,红绿灯和数码管的东西方向和南北方向一致,所以可以节省10个I/O口,因此此系统仅仅需要19个I/O口就足够了,使用CD4511和74LS138不仅增加了成本,而且也没起到什么太大的作用,采用方案二节省下来的I/O口在该系统中也没有什么用处,而且在编程的时候也大大增加了编程的难度,电路也相对复杂了。所以综合考虑,我们采用方案三的设计。三设计内容本方案使用AT89S51单片机,P0口控制数码管的段选,P2口控制数码管的位选,采用动态扫描方式显示;P1口用来控制交通灯(发光二极管)的亮灭;定时采用定时器0的方式一,外接12MHZ的晶振;按键接P32,即外部中断0,并设为高优先级中断,中断方式为电平中断,一旦有紧急情况发生,便按下按键进行中断,中断子程序便是使所有路口红灯亮,断开按键便可恢复原主程序继续执行。显示子程序数码管显示数字为09,可以利用查表方式显示相应数字,将编辑好的数字显示代码存入表中,代码显示内容与其在表中位置相对应(0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F),将表中相应位置的代码送进数码管段选控制I/O口(P0)便可使数码管显示相应数字,再通过位选控制来使不同数码管显示不同内容。定时子程序定时采用定时器0的方式一,外接12MHZ的晶振,通过计算给定单片机P0口数码管交通灯(发光二极管)按键P2口段选位选P1口中断P3口6时器装入合适初值,为方便计算,可设定时器一次中断为50MS,这样中断20次即为1S然后每个5S或30S便执行相应动作。工作原理由软件设置交通灯的初始时间,南北方向通行35秒,东西方向通行35秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。采用中断方式实现按键的功能系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1S就要将时间值减1,刷新LED数码管。时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值。四器件介绍及其功能本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。其中P1,P2用于送显两片LED数码管,P0用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3口的八条I/O线对数码管进行片选,系统工作原理系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1S就要将时间值减1,刷新LED数码管。时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,当然,还要开启两个外部中断,其一为紧急情况处理中断,一旦信号有效,即K键为低电平时进入中断服务子程序,东西南北路口的红灯全亮禁止全部通行,再按一下键,中断结束返回。7元件清单名称型号数量用途单片机AT89C511个核心控制交通灯红黄绿三色4个红绿灯显示电源VCC5V/1A2个提供5V电源晶振12MHZ1个晶振电路电容30PF/10UF2个/1个晶振电路/复位电路排电阻10K1个上拉电阻数码管2位共阴4个显示电路按键2个复位电路电阻1K1个复位电路非门6个反相放大1AT89C51AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与MCS51兼容,4K字节可编程闪烁存储器,寿命1000写/擦循环,数据保留时间10年,全静态工作0HZ24HZ,三级程序存储器锁定,1288位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源(两个外部中断源和3个内部中断源),可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。引脚与功能VCC电源电压AT89C51引脚图8GND接地P0口P0口是一组8位双向I0口。P0口即可作地址数据总线使用,又可以作为通用的I/O口使用。当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。在访问期间激活要使用上拉电阻。P1口PL是一个带内部上拉电阻的8准位双向IO口,P1作为通用的I/O口使用。P2口P2是一个带有内部上拉电阻的8位准双向IO口,P2即可作为通用的I/O口使用,也可以作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址。P3口P3口是一组带有内部上拉电阻的8位准双向I0口。P3口除了作为通用的I/O口使用之外,每个引脚还具有第二功能。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。P3口的第二功能ALEERROR当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输P3口各位第二功能P30RXT(串行口输入)P31TXD(串行口输出)P32/INT0(外部中断0输入)P33/INT1外部中断1输入P34T0(定时器/计数器0的外部输入)P35T1(定时器/计数器1的外部输入)P36/WR(片外数据存储器写允许)P37/RD(片外数据存储器读允许)9出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的16输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。ERROR程序储存允许(ERROR)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次ERROR有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的ERROR信号。ERRORVPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。F1ASH存储器编程时,该引脚加上12V的编程电压VCC。XTAL1振荡器反相放大器及内部时钟发生器的输入端。51系列单片机的中断源8051有5个中断源,它们是两个外中断INT0(P32)和INT1(P33)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址。中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器0001BH串行口中断0023H10中断源的服务程序入口地址2LED数码管LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母A,B,C,D,E,F,G,DP来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的2个8数码管字样了。如显示一个“2”字,那么不同之分,也有05寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为18V左右,电流不超过30MA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。LED数码管分为共阴极和共阳极两种,本实验在硬件电路搭建的时候采用的是共阳极LED数码管,这样使用单片机容易驱动,而采用共阴极则不易驱动二极管。而在PROTEUS软件仿真的时候由于采用共阴极数码管时出现乱码,在寻找错误时也没有发现什么不对的地方,为了方便起见在软件仿真时选用了共阴极LED数码管,这时就需要在P0口驱动的时候加上一个反相器其结果才和硬件电路一样。3光二极管它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分LED数码管共阴极LED数码管11别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。五硬件电路及介绍1单片机主电路如下图所示,单片机的主电路主要包括时钟电路和复位电路,以及5V电压和接地电压等。这几部分保证了单片机可以正常的工作。时钟振荡电路采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。其发出的时钟脉冲直接送入片内定时控制部件。复位电路采用上电按钮电平复位方式,当按下按钮时,RST管脚高电平触发。为保证复位可靠,RC时间常数应大于两个机器周期,电容取10UF,电阻取1000欧。2交通灯接口电路交通灯接口电路如上图所示。硬件电路的发光二级管是共阳极的,采用低电平驱动点亮方式,而在软件中提供的交通灯模块是共阴极的,本汇编程序最初编写是根据硬件电路共阳极二极管采用低电平驱动编写而成,所以在软件仿真的时候需要加一个非门来将P1口输出的低电平变成高电平来驱动交通灯模块发光,经过实验得出其结果和硬件仿真的完全相同。由于是软件仿真,所以不会出现无法驱动的情单片机主电路12况,真实情况下需要考虑其驱动情况。南北和东西的交通灯显示相同,所以本系统仅仅使用了六个I/O口来进行交通灯的控制。3LED数码管显示电路LED数码管显示电路如图所示。该电路采用P0口进行数码管的数字显示,用P2口对数码管进行片选,P2口的2021两个口作为八个数码管的片选信号。交通灯接口电路LED数码管显示电路134紧急按键控制电路本设计设置了有1个键该按键一端接地,另一端接上拉电阻。低电平有效,当按键按下端口接地,单片机捕获到低电平,从而知道相应的输入信息。六程序框图及代码1显示子程序DISMOVP2,0FEHMOVA,30HMOVB,10DIVABMOVCA,ADPTRMOVP0,ALCALLDELAYMOVP2,0FDHMOVA,BMOVCA,ADPTRMOVP0,ALCALLDELAYRET2紧急中断服务子程序URZDPUSHACC紧急按键控制电路14PUSHPSWCLRIE0CLRTR0UR_JJMOVP1,0F6HMOVP0,0FFHMOVP2,00HJBP32,UR_CONAJMPUR_JJUR_CONMOVSP,60HSETBNBFCLRDXFCLRHNB1CLRHNB2CLRHDX1CLRHDX2UR_RPOPPSWPOPACCRETI3延迟程序DELAYMOVR7,10MOVR6,50L1DJNZR6,DJNZR7,L1RETEND154总程序框图系统初始化四个路口红灯亮,延时5秒东西红灯亮,南北绿灯亮30秒东西红灯亮,南北黄灯闪5秒东西绿灯亮,南北红灯亮30秒东西黄灯闪,南北红灯亮5秒开始七仿真软件介绍PROTEUS仿真平台简介PROTEUS是英国LABCENTERELECTRONICS公司开发的EDA工具软件。该软件具有原理布图PCB设计及自动化布线和电路的分析与仿真功能,可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互式仿真。PROTEUS具有功能很强的ISIS智能原理图输入系统,有丰富的操作菜单与工具。在ISIS编辑区中,能方便地完成单片机系统的硬件设计,软件设计,单片机源代码级调试与仿真。PROTEUS有三十多个元器件库,数千种元器件仿真模型,十余种信号激励源,十余种虚拟仪器仪表。特别是有从8位单片机8051系列直至32位单片机ARM7系列的多种单片机类型库。PROTEUS由ISIS和ARES两部分构成,其中ISIS是电子系统仿真平台,ARES是布线编辑软件。16本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是PROTEUS软件,而程序方面,采用的是汇编语言,用KEIL软件将程序写入单片机。八设计心得通过单片机的设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。在这次课程设计中,我还学会了运用PROTUES软件进行仿真,又熟悉了运用KELI软件进行编程,这个过程相当复杂艰难,出现了很多问题,例如输出灯不按规律显示,倒计时数码管显示不正确等。每一个问题都相当棘手,遇到这些问题后,首先检测硬件电路,对硬件电路排查完毕并确定无误后,对软件进行修改及再调试。问题一一被解决后得出所需软件部分,最后终于仿真成功。通过这些经历,为以后的学习奠定了基础。参考文献L张靖武单片机系统的PROTUSE设计和仿真M电子工业出版社2007P32582张毅坤单片微型计算机原理及应用,西安电子科技大学出版社1998P48723余锡存曹国华单片机原理及接口技术M陕西西安电子科技大学出版社,2000P54684张毅刚彭喜元彭宇单片机原理及应用2013年12月第7次印刷P194P2015杨居义杨尧杨晓琴王益斌单片机课程设计指导2009年9月第一版P150P230附录一总程序NBFBIT00H允许南北绿灯标志位DXFBIT01H允许东西绿灯标志位HNB1BIT02H允许南北黄灯标志位17HNB2BIT03H南北黄灯闪烁标志位HDX1BIT04H允许东西黄灯标志位HDX2BIT05H东西黄灯闪烁标志位ORG0000HLJMPMAIN上电转主程序ORG000BH定时中断入口LJMPDSZDORG0003H紧急中断入口LJMPURZDORG0030HMAINACALLINIT调用初始化子程序LOOPACALLDIS循环执行显示子程序AJMPLOOP【初始化程序】INITMOVSP,60HSETBNBFCLRDXFCLRHNB1CLRHNB2CLRHDX1CLRHDX2MOVTMOD,01H初始化定时器MOVTL0,0B0HMOVTH0,3CHSETBEA开总中断SETBET0开定时器0中断SETBTR0启动定时器018SETBPX0设外部中断0为高优先级中断SETBEX0开外部中断0SETBIT0设置外部中断0中断方式为电平触发方式MOVDPTR,TAB数值首地址放入DPTR中MOVR3,20定时器中断20次为1SMOV30H,5时间初始化MOVP1,0F6H初始化时东西南北均红灯,交通灯状态存32HMOV32H,0F6HRET【显示子程序】DISMOVP2,0FEH选中十位数码管MOVA,30H把显示数据送人数码管显示MOVB,10DIVABMOVCA,ADPTRMOVP0,ALCALLDIMSMOVP2,0FDH选中个位数码管MOVA,B送入数码管显示MOVCA,ADPTRMOVP0,ALCALLDIMSRET【定时中断处理程序】DSZDPUSHACC保护现场PUSHPSWMOVTL0,0B0HMOVTH0,3CHDJNZR3,DS_1判断1S时间是否到达19MOVR3,20到达重新赋值DEC30H时间减一MOVA,30H把减一后的时间送入显示存储单元【南北绿灯】DS_1JNZDS_2判断时间剩余是不是0秒JNBNBF,DS_2判断是否允许南北绿灯MOV30H,30MOVA,30HMOVP1,0F5HMOV32H,0F5H把交通灯状态存入存储单元CLRNBFSETBHNB1AJMPDS_R【南北黄灯闪烁程序】DS_2JNZDS_21判断时间剩余是不是0秒JNBHNB1,DS_21判断是否允许南北黄灯闪烁MOV30H,5MOVA,30HMOVP1,0F3HMOV32H,0F3HCLRHNB1SETBHNB2SETBDXFAJMPDS_RDS_21CJNEA,4,DS_22JNBHNB2,DS_22MOVP1,0F7HMOV32H,0F7HAJMPDS_R20DS_22CJNEA,3,DS_23JNBHNB2,DS_23MOVP1,0F3HMOV32H,0F3HAJMPDS_RDS_23CJNEA,2,DS_24JNBHNB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论