1、倒计时用于提醒驾驶员或者行人信号灯发生改变的时间,以便他们在“停止”和“通行”两者做出合适的选择。3.紧急状态下,通过K1键手动设置,将所有路口的灯变为红灯。三、设计方案及原理:方案一、采用74LS138译码器和CD4511译码器的交通灯系统图 1 方案一 采用74LS138和CD4511译码器的交通灯系统框图该方案使用了CD4511显示译码器和74LS138译码器。通过CD4511将单片机输出的BCD8421码转换成为七段码然后送LED数码管显示;通过74LS138译码器将单片机输出的三位二进制码转换成八位只有一个低电平的代码,从而对LED数码管进行片选。时钟电路和复位电路为单片机提供正常的
2、工作环境。按键电路为在紧急情况下的应急处理系统,作用是使东西南北的等变为红灯。红绿灯电路由单片机I/O口直接驱动。方案二、直接进行片选和驱动LED数码显示的交通灯系统图 2 方案二 直接进行片选和驱动LED数码显示的交通灯系统 该方案直接采用单片机的I/O口对LED数码管进行数字显示和片选的驱动。方案比较:方案一采用了CD4511译码器和74LS138译码器,理论上为单片机的使用节省了9个I/O口,实际需要29个而采用该方案以后仅仅使用了20个,但是由于使用了两个译码器,所以在成本上增加了花销。方案二直接用单片机的I/O口进行LED数码管字位驱动,使用的I/O口比较多,但是成本较低。通过比较两
3、种方案,结合交通灯的实际情况,红绿灯和数码管的东西方向和南北方向一致,所以可以节省10个I/O口,因此此系统仅仅需要19个I/O口就足够了,使用CD4511和74LS138不仅增加了成本,而且也没起到什么太大的作用,采用方案一节省下来的I/O口在该系统中也没有什么用处,而且在编程的时候也大大增加了编程的难度,电路也相对复杂了。所以综合考虑,我们采用方案二的设计。四、元件清单表 1 元器件清单名 称规 格数 量单片机AT89C521排阻9脚4.7K 19脚330晶振11.0592MHz发光二极管GREEN 4REDYELLOW 数码管 两位共阴 电阻1K 5按键 2电解电容10uF独石电容30p
4、F1.AT89C52单片机AT89C52是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的只读程序存 储器(PEROM)和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度,非易失性存储技术生产, 与标准 MCS-51 指令系统及 8052 产品引脚兼容, 片内置通用 8 位中央处理器 (CPU) Flash 存储单元, 和 功能强大单片机适合于许多较为复杂控制应用场合.图 3 AT89C52单片机AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc
5、52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚
6、定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。本实验硬件电路搭建采用STC89C52单片机,软件仿真的时候采用的是AT89C52单片机,虽然两个单片机电路功能稍有区别,但是在使用及编程的时候引脚通用,编程无影响。所以硬件编程代码同样适用于软件仿真。2.LED数码管LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管
7、特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的2个8数码管字样了。如:显示一个“2”字,那么不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发 图 4 LED数码管光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。LED数码管分为共阴极和共阳极两种,本实验在硬件电路搭
8、建的时候采用的是共阳极LED数码管,这样使用单片机容易驱动,而采用共阴极则不易驱动二极管。而在proteus软件仿真的时候由于采用共阴极数码管时出现乱码,在寻找错误时也没有发现什么不对的地方,为了方便起见在软件仿真时选用了共阴极LED数码管,这时就需要在P0口驱动的时候加上一个反相器其结果才和硬件电路一样。3.发光二级管图 5 发光二级管它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产
9、生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管和数码二极管一样分为共阴极和共阳极两种,本实验在硬件电路搭建的时候采用的是共阳极发光二级管,这样使用单片机容易驱动,而采用共阴极则不易驱动二极管,有时候采用高电平驱动则会产生单片机电压过低而无法点亮二极管致使单片机烧毁的情况。在proteus软件仿真的时候软件给出的发光二级管如图所示,该红绿灯模块为共阴极发光二级管模块,所以仿真时采用的驱动方式是高电平驱动。由于是软件仿真,所以不会出现无法驱动的情况,真实
10、情况下需要考虑其驱动情况。五、硬件电路图1.单片机主电路如右图所示,单片机的主电路主要包括时钟电路和复位电路,以及5V电压和接地电压等。这几部分保证了单片机可以正常的工作。 图 6 单片机主电路时钟振荡电路采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。其发出的时钟脉冲直接送入片内定时控制部件。复位电路采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。为保证复位可靠,RC时间常数应大于两个机器周期,电容取10uf,电阻取1000欧。2.交通灯接口电路图 7 交通等接口电路交通灯接口电路如上图所示。硬件电路的发光二级管是共阳极
11、的,采用低电平驱动点亮方式,而在软件中提供的交通灯模块是共阴极的,本汇编程序最初编写是根据硬件电路共阳极二极管采用低电平驱动编写而成,所以在软件仿真的时候需要加一个非门来将P1口输出的低电平变成高电平来驱动交通灯模块发光,经过实验得出其结果和硬件仿真的完全相同。南北和东西的交通灯显示相同,所以本系统仅仅使用了六个I/O口来进行交通灯的控制。3.LED数码管显示电路图 8 LED数码管显示电路LED数码管显示电路如上图所示。该电路采用P0口进行数码管的数字显示,用P2口对数码管进行片选。实际搭建的硬件电路中,使用的数码管为共阳极数码管,所以采用的驱动方式是低电平驱动,而在软件仿真的时候采用的是共
12、阴极数码管,由于程序在编写的时候是对实际搭建的硬件电路编写的,因此在软件电路仿真连接的时候需要接非门从而使电路由低电平驱动变为高电平驱动。P0口内部没有上拉电阻,所以在使用P0口是需要外接上拉电阻。P2口的2.4、2.5、2.6、2.7四个口作为八个数码管的片选信号,低电平有效,由于南北和东西两个方向的数码管显示相同,所以八个数码管只需要四个片选信号即可,软件程序仿真电路图结果如上图所示。4键盘接口电路图 9 键盘接口电路键盘接口电路如右图所示。该电路比较简单,原理是先将P3口全部置1,然后在延迟代码段中加入检测P3口高低电平的代码,观察P3口是否变化,如果有变化则进入紧急情况的处理代码,在紧
13、急情况处理代码中继续检测P3口状态,如果变回全部为1则跳到初始状态重新开始。由程序代码可得,该电路连至P3任意一口都是可以的。用单片机最小系统和单片机学习模板块搭建的交通等系统如下图所示图 10 交通灯系统实物电路用proteus绘制的整体电路图如下图图 11 交通灯系统电路图六、软件设计1.程序流程图图 12 程序流程图2.主要功能模块设置状态模块 该模块设置程序的状态初始值,分为初始状态,状态1和状态2,代码段主要如下:;设置初始状态;INIT:MOV 42H,#1 ;闪烁标志位 MOV R0,#0 ;R0为状态标志位 MOV SP,#60H ;设置堆栈指针 MOV DPTR,#TABLE ;将TABLE送DPTR MOV P2,#0FFH ;所有计数器片选置1 MOV R7,#0 ;计数器1十位 MOV R6,#5 ;计数器1个位 MOV R5,#60 ;循环次数 MOV R2,#0 ;计数器2十位 MOV R1,#5 ;计数器3个位 MOV P1,#0F6H ;红绿灯状态 LJMP SCAN ;跳计数器扫描段代码循环扫描模块 该模块
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1