摘要本智能交通灯系统的设计主要是利用单片机和C语言完成共同来完成。首先,系统采用红、黄、绿两组共六个LED发光二极管模拟十字路口东西和南北两个方向的交通信号灯,配有7SEG-MPX6-CC(六位八段共阴极数码管)数码构成倒计时牌,其的控制核心为AT89C51芯片。其次,系统具有处理紧急情况的功能,可以使东西和南北双向红灯,禁止普通车辆通行。最后,系统利用Proteus软件进行了软、硬件的的仿真。关键词:AT89C51单片机倒计时牌中断数码管目录毕业设计任务书...................................................................................................................I中文摘要…………………………………………………………..……….….…………..II1引言……………….………………………………………………….….……………….11.1设计目的及意义……………......................…………….…………….…………..…11.2设计的内容…………........................…………….…………….……………………12设计原理…………….………..….…………………………….………………………..22.1总体设计方案………………………………………………………………………..22.2硬件设计原理…………………………….…………………………...……………..22.2.1硬件原理图………………………….……………………………………...…..22.2.2主要模块电路…………………………………………………………………32.2.2.1控制核心——AT89C51单片机芯片…………………………………………32.2.2.2LED数码管显示……………………………………………………………62.2.2.3六路交通灯的模拟…………………………………………………………82.2.2.4其它电路……………………………………………………………………82.3软件设计原理………………………………………………………………...……92.3.1软件流程图……………………………………….…………………………......92.3.1.1主流程图…………………………………………………………………92.3.1.2主要子程序流程图………………………………………………………102.3.2软件源程序……………………………………………………………………113基于Proteus的仿真调试及排故…………….……..….……………………………113.1Proteus的仿真软件的介绍………………………………………………………113.2主要调试过程…………………………….………………………….………..…113.2.1硬件测试………………………………………………………………………123.2.2软件调试………………………………………………………………………123.2.3连调……………………………………………………………………………123.3调试时出现的问题及解决方法………………………….………………………...124结论……………………………….……………………………...……………………14致谢.………………….……………………..…….…………...………………………15附录………………………………..…………….…..…...…………………….……….16附录1硬件连接图………………………………………………………………………..…………16附录2源程序…………………….……..………………………………………………17附录3共阴极LED数码管字段码表……………………………………………………21参考文献…………………………………………………………………………………221引言1.1设计目的及意义交通是一个城市经济的命脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。所谓说的“路通财通”就是说明了一个良好的交通环境的重要性。而交通灯在这个交通环境中起着一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故。同时,也能为当地人民节省大量出行时间,创造出更多的社会价值。因而,交通灯不仅能为道路交通顺畅提供保障,而且对当地经济也起着不可估量的作用。因而,本次毕业设计选取智能交通灯的设计。1.2设计内容本设计主要是利用单片机和C语言完成对智能交通灯的设计。故论文主要从以下几方面对本次毕业设计做出说明:第一部分为引言,主要分析本设计的意义和目的,并对本论文的基本内容做了简要说明。第二部分为设计原理说明,主要从硬件和软件设计原理两个方面对智能交通灯的设计作了详细说明。第三部分为调试仿真排故部分,利用Proteus完成对硬件电路和软件程序的仿真调试,并对其中出现的问题及解决方法做了详细介绍。第四部分为本文结论,说明了本次设的实现情况以及设计后的一些体会。2设计原理2.1总体设计方案系统的整体设计方案的框图如图2-1所示,其中控制核心为AT89C51。图2-1系统总体方案框图本系统以AT89C51单片机为控制核心,采用7SEG-MPX6-CC(六位八段共阴极数码管)显示倒计时。同时,系统利用AT89C51的P1口直接控制六路交通灯模拟显示。系统通过软件控制程序不仅能实交通灯正确燃亮、倒计时牌的正常显示,并且还完成扩展功能的实现,即当有紧急或特殊情况时,南北和东西双向同时禁止通行,并倒计时显示。2.2硬件设计原理2.2.1硬件原理图智能交通灯系统的硬件原理图如图2-2所示。紧急或特殊情况禁止通行模块AT89C51系统6路交通灯控制部分7段数码管显示(动态显示)控制模块D0a~gD1DPD5紧急键图2-2硬件原理图2.2.2主要模块电路2.2.2.1控制核心——AT89C51单片机芯片AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,其系统内具有:①4K字节闪烁可编程可擦除只读存储器,单片机可反复擦除只读存储器100次;②128B的数据存储器(RAM,可再外扩64KB);③4个可编程并行I/O口(32根I/O口线)和2个全双工异步(UART)串行口;④两个16位定时器/计数器;⑤六个中断源构成的中断系统;⑥具有4.25~5.0V的电压工作范围和0~24MHz的工作频率。该芯片使用ATMEL高密度非易失性存储器技术制造,与工业标准的MCS-51指令集和输出管脚兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其中,AT89C51芯片的管脚如图2-3所示:P1.0P0.0~P0.6P1.1P0.7P1.5P2.0P2.1INT0/P3.2P2.4P2.5LED数码管XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51图2-3AT89C51芯片管脚图(1)AT89C51各管脚的作用功能P0口:P0口是一个8位集电极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1口管脚还具有第二功能,具体功能如表2-1所示。表2-1具有第二功能的P1口引脚端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MOSI(用于ISP编程)P1.7MOSI(用于ISP编程)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2口输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。P3口:是一个具有内部上拉电阻的8位双向I/O口,P3口输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C51特殊功能(第二功能)使用,如表2-2所示。表2-2具有第二功能的P1口引脚管脚第二功能具体功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2INTO外中断0P3.3INT1外中断1P3.4TO定时/计数器0P3.5T1定时/计数器1P3.6WR外部数据存储器写选通P3.7RD外部数据存储器读选通VCC:电源电压GND:地RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG————:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN————程序储存允许(PSEN————)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN————有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN————信号。EA——/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.2.2.2LED数码管显示(1)LED数码管引脚及原理LED数码管为7个发光二极管构成的一个“8”字排列,根据其公共端接法不同可分为共阴极和共阳极两种。本设计采用共阴极接法(将所有发光二极管的阴极接到一起,形成公共阴极的数码管,公共端com接低低平,当某一字段发光二极管的阴极为高电平时,相应的字段就点亮,当某一字段发光二级管的阴极为低电平时,相应的字段就不点亮)。其原理图及管脚图如图2-4所示。共阴极字段码表见附录3。(a)7SEG-MPX6-CA六位八段共阴极数码管管脚图图2-4六位八段共阴极数码管(b)共阴极接法图图2-5七段数码管引脚图(2)LED显