毕业设计(论文)城市交道口交通灯控制系统.doc

上传人:文库蛋蛋多 文档编号:4252198 上传时间:2023-04-12 格式:DOC 页数:30 大小:3.21MB
返回 下载 相关 举报
毕业设计(论文)城市交道口交通灯控制系统.doc_第1页
第1页 / 共30页
毕业设计(论文)城市交道口交通灯控制系统.doc_第2页
第2页 / 共30页
毕业设计(论文)城市交道口交通灯控制系统.doc_第3页
第3页 / 共30页
毕业设计(论文)城市交道口交通灯控制系统.doc_第4页
第4页 / 共30页
毕业设计(论文)城市交道口交通灯控制系统.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《毕业设计(论文)城市交道口交通灯控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)城市交道口交通灯控制系统.doc(30页珍藏版)》请在三一办公上搜索。

1、主要研究内容目标特色此设计主要是通过单片机系统的I/O输出控制交通信号红绿灯的亮暗。由52内已经烧入的程序编排各个I/O口的输出。使信号灯按一定规则编排亮暗。由集成减法计数器芯片和BCD7段数码管译码芯片实现路口倒计时功能。若交道口出现紧急情况,可以通过单片机键盘产生中断,从而进入另外的设定程序。并通过键盘手动控制各方向信号灯。考虑到现代社会越来越强调对残疾人的关爱,本设计中设计了盲道蜂鸣器提示器,用于提示盲人过马路。一、 开展本课题的意义及工作内容:当代社会, 红绿灯安装在各个道口上, 已经成为疏导交通车辆最常见和最有效的手段, 这一技术早在19世纪就已经出现。1858年, 在英国伦敦主要街

2、头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯, 用以指挥马车通行, 这是世界上最早的交通信号灯。从那以后经过不断地发展, 逐渐演变成现在的交通信号灯控制系统, 红灯亮表示“停止”, 绿灯亮表示“通行”, 黄灯是警告信号。信号灯的出现, 使交通得以有效管制, 对于疏导交通流量、提高道路通行能力减少交通事故有明显效果。现在有许多方法可以实现交通信号灯控制, 本文采用51系列单片机AT89S52为中心器件来设计交通灯控制系统, 下面就设计过程及关键技术作详细介绍。二、文献综述由于8051单片机的极大普遍性以及本人的熟悉程度,我选择8051单片机,并且选用ATMEL公司AT89S52。如图4.

3、4:8051单片机最早由Intel公司推出,其后,多家公司购买了8051的内核,使得以8051为内核的MCU系列单片机在世界上产量最大,应用也最广泛。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位输

4、入输出口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止10。 图4.4 单片机管脚图各管脚功能说明如下:VCC:电源。GND:地。P0口:P0口是一个8 位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据

5、存储器时,P0口也被作为低8 位地址/数据复用。在这种模式下P0具有内部上拉电阻。在flash 编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P

6、1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2 的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2 的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(简单作一个假设:当执行MOVXDP

7、TR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI )访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。引脚号第二功

8、能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器写选通)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在

9、flash 编程时,此引脚(PROG )也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52 从外部程序存储器执行外部代码时,PSEN在每个机器周

10、期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPPL:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA 也接收12 伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。特殊功能寄存器并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0

11、”。存储器结构MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。掉电和空闲方式下的WDT在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。这就意味着WDT应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进

12、入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。空闲模式在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式

13、被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。掉电模式掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR的值,但不改变片上RAM的值。在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理

14、布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。 城市交道口交通灯控制系统【摘要】本设计采用单片机控制城市交道口红绿灯,按照所要求的时序进行红绿切换,并制作了交道口模型安装交通灯。针对基本要求,该系统完成了按照所规定的时序进行红绿灯切换。并且考虑到为残疾人提供盲道提示音,设计了用不同频率声音提示不同通行状态的蜂鸣器提示系统。针对发挥部分要求,设计了与红绿灯切换同步的倒计时系统。另

15、外设计了两种特殊状态:手动控制与特种车辆控制。一、引言3二、系统设计 321 设计要求 3211 基本要求 32. 1. 2发挥要求 422 总体设计4221 设计思路4222 方案论证比较4三、硬件系统设计与实现53.1 主要元器件选择53. 1. 1 HD7279简介53.1.2 8155简介 63. 2 电路设计 7四、软件系统设计与实现84. 1系统软件设计结构84. 2子模块设计结构84. 2. 1主循环模块 84. 2. 2正常运行模块 94. 2. 3非正常运行模块 94. 2. 4 Int0中断模块 104. 2. 5 T0中断模块 104. 2. 6 Int1中断模块 114

16、. 2. 7 T1中断模块11五、系统测试 125. 1测试仪器与设备 125. 2系统测试方案 125. 2. 1发送指定控制字125. 2. 2基本功能逻辑状态检验125. 2. 3附加功能逻辑状态检验1253 系统测试结果125. 3. 1发送指定控制字测试结果 125. 3. 2基本功能逻辑状态检验测试结果 135. 3. 3附加功能逻辑状态检验测试结果 13六、结束语13致谢 13参考文献 13附录A、系统元器件清单15附录B、系统使用文档16附录C、程序清单17一、引言当代社会, 红绿灯安装在各个道口上, 已经成为疏导交通车辆最常见和最有效的手段, 这一技术早在19世纪就已经出现。

17、1858年, 在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯, 用以指挥马车通行, 这是世界上最早的交通信号灯。从那以后经过不断地发展, 逐渐演变成现在的交通信号灯控制系统, 红灯亮表示“停止”, 绿灯亮表示“通行”, 黄灯是警告信号。信号灯的出现, 使交通得以有效管制, 对于疏导交通流量、提高道路通行能力减少交通事故有明显效果。现在有许多方法可以实现交通信号灯控制,本文采用51系列单片机AT89S52为中心器件来设计交通灯控制系统1。二、系统设计21 设计要求设计并制作一个城市交道口交通灯控制系统。211 基本要求1. 在板上制作交道口模型,装上交通灯。交道口模型如图1

18、.1.1所示。图1.1.1 交通灯控制系统模型图2. 交通灯控制规则如下:1)每个街口有左拐、右拐、直行及行人四种指示灯。每个灯有红、绿两种颜色。自行车与汽车共用左拐、右拐和直行灯。2)共有四种通行方式: 车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。 南北向左拐、各路右拐,行人禁行。通行时间为1分钟。 东西向直行、各路右拐,东西向行人通行。东西向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。 东西向左拐、各路右拐。行人禁行。通行时间为1分钟。3)在通行结束前10秒钟,绿灯闪烁直至结束。3. 不必自制电源。212 发挥要求1. 有倒计时时间

19、显示。2. 若交道口出现紧急情况,交警可将系统设置成手动:全路口车辆禁行、行人通行。紧急情况结束后再转成自动状态。3. 当有119、120等特种车辆通过时,糸统自动转为特种车放行,其它车辆禁止状态。特种车辆通过15秒钟后,糸统自动恢复,用模型车演示。4. 其它自选措施。22 总体设计此设计主要是通过单片机系统的I/O输出控制交通信号红绿灯的亮暗。由52内已经烧入的程序编排各个I/O口的输出。使信号灯按一定规则编排亮暗。由集成减法计数器芯片和BCD7段数码管译码芯片实现路口倒计时功能。若交道口出现紧急情况,可以通过单片机键盘产生中断,从而进入另外的设定程序。并通过键盘手动控制各方向信号灯。另外考

20、虑到现代社会越来越强调对残疾人的关爱,本设计中设计了盲道蜂鸣器提示器,用于提示盲人过马路3。221 设计思路由上可知,单片机可以控制交通灯的亮暗和倒计时功能,但所需要IO口数较多。故设计时必须有所取舍。考虑到红绿灯部分用较少IO口势必增加其控制逻辑的复杂度,使得控制逻辑的优化和升级变得非常困难,而倒计时功能基本不需要作修改,故采用集成电路控制倒计时,IO口控制红绿灯的方案。222 方案论证比较1 红绿灯部分(1) 使用单色发光二极管红绿灯需要红色发光二极管和绿色发光二极管。其优点是原理简单易懂,电路设计简单,显示效果明显。缺点是焊接工作量比较大。(2) 使用一管两色发光二极管一管两色发光二极管

21、实际上是由一只红色发光二极管和一只绿色发光二极管反向并接而得。其控制逻辑如下表:表1.2.1 一管两色发光二极管发光规则正端(以红灯为参考)负端红灯绿灯11暗暗10亮暗01暗亮00暗暗因此,可通过IO口控制该二极管两端的电平来实现对其的亮暗控制。但该二极管亮度比较差,且不符合日常生活中使用的红绿灯系统,故不采用该方案。2 倒计时计数器部分(1) 采用单片机软件计数器单片机可实现比较精确的延时,通过IO口发送数据,经过锁存器锁存后输出到7段数码管进行显示。其优点在于电路比较简单,且单片机控制比较灵活,便于对紧急情况进行处理。缺点是占用IO口过多。由于交通灯部分已经占用了较多IO口,故不采用该方案

22、。(2) 采用74系列集成电路计数器利用集成电路设计一个六进制计数器和一个十进制计数器并级联,形成一个六十进制计数器进行计数。技术结果通过BCD7段数码管译码集成电路驱动数码管显示。只要占用一个IO口给计数器送脉冲信号即可。另外若有需要可用一IO口控制其复位。实际设计中采用该方案。3 盲道指示部分(1) 采用蜂鸣器进行提示蜂鸣器的优点是结构比较简单,使用方便。缺点在于频率单一,只能通过响与不响提示盲人。由于该设计中只需体现其思想即可,故采用该方案。(2) 采用喇叭进行提示喇叭的优点在于可以实现语音提示,显得更人性化。并且可以通过发出不同声音来指导盲人行动。缺点在于需要预先存储数据进行播放,耗费

23、系统资源,而且由于对相关的盲道提示约定不熟悉,故不予采用。4 特种车辆检测(1) 红外检测法特种车辆发射红外,在路口安装红外接收装置,并连接到单片机最小系统的中断口响应。其优点是红外感应距离比较远。缺点是感应接收的稳定性不好,而且特种车辆需要做电路,比较复杂。本设计中不采用该方案5。(2) 霍尔传感器检测法霍尔传感器是将磁性信号转化为电信号的传感器。特种车辆携带磁性物质,路口的霍尔元件检测到磁性物质后,使单片机最小系统的中断口响应。其优点是电路比较简单,而且由于霍尔元件是集电极开路器件,可以在同一路口安装多个霍尔元件,以线与的方式搜集磁信号;特种车辆的模拟也只需以磁钢即可。其缺点是感应距离很小

24、,大约为几个厘米。考虑到该设计中模型尺寸比较小,故采用该方案4。三、硬件系统设计与实现3.1 主要元器件选择3.1.1. HD72791、HD7279(A)是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片机即可完成LED显示、键盘接口的全部功能。HD7279A芯片内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279(A)还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口,如图2.1所示。HD7

25、279具有的特点:1、串行接口,无需外围元件可直接驱动LED。2、各位独立控制译码不译码及消隐和闪烁属性。3、左移和右移指令。4、具有短寻址指令,方便控制独立LED。5、64键键盘控制器,内含去抖电路。6、有DIP和SOIC两种封装形式供选择。 图3.1HD72792、HD7279A的引脚说明10 3、 HD7279的读键盘数据指令D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0 该指令从HD7279A读出当前的按键代码。与其它指令不同,此命令的前一个字节0001010B为微控制器传送到HD7279A的指令,而后一个字节d0-d7

26、则为HD7279A返回的按键代码,其范围是0-3FH(无键按下时为0XFF),此指令的前半段,HD7279A的DADT引脚处于高阻态输入状态,以接受来自微处理器的指令;在指令的后半段,DATA引脚从输入状态转为输出状态,输出键盘代码的值。当HD7279A的DATA检测到有效的按键时,KEY引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果HD7279A接收到读键盘数据指令,则输出当前按键的键盘代码;如果在收到读键盘指令时没有有效按键,HD7279A将输出FFH(1111111B)6。3.1.2 8155简介8155用于并行扩展单片机的I/O口,有p0的8个位变为22个口(PA、PB、

27、PC)单片机要访问一个芯片就必须要通过地址信号。地址信号一般包括了片选信号和功能信号,但一个芯片如果内部还有寄存器存储单元(这些单元本身是有地址的即孤立 的地址选择信号),因此单片机要访问一个芯片提供的地址信号首先要满足能够找到具有特定功能的芯片,然后又要能在该芯片内找到想要访问的单元。因此,对于单片机外部的设备,单片机要想对其读/写就必须要定义该外部设备的地址,这个地址就包括了外部地址和内部地址的组合称为一个单片机可以控制访问的单元地址。即使芯片称为单片机系统中的一部分了。而对于芯片本身而言的,内部寄存器地址是不变的,如8155中命令寄存器地址为*000B。而如何形成单片机可以访问的地址呢?

28、首先要明白单片机的地址线构成方式,对于51单片机,一般是P0口为8位地址,如果需要十六位,则p2口则提供高8位地址。访问外部芯片就需要由单片机提供能够访问到芯片内部的一个完整地址。记住的是访问内部所需的地址信号是从固定位置输入的,因此具体芯片的地址是多少是由硬件连线决定的。关键是看单片机是以什么方式提供的信号,是只8位还是16位,是仅有p1口还是P1P2口分别提供地址信号的3。 通常P1口提供内部选择信号,P2提供外部选择信号,两者结合形成该芯片的地址了。其余信号按情况可以定位1或者0。由于主控芯片为8051,IO口较少,故选用8155进行IO口扩展。8155可扩展PA口(8位)、PB口(8位

29、)、PC口(6位)。可以使系统的扩展能力大大加强9。3.3 电路设计1 倒计时7段数码管电路设计图2.2.1 倒计时电路2 交通灯电路设计图2.2.2 交通灯电路图3蜂鸣器电路图2.2.3 蜂鸣器电路4霍尔元件检测电路图2.2.4 霍尔元件检测电路四、软件系统设计与实现41 系统软件设计结构 本系统软件在单片机最小系统的基础上进行开发,并采用8051 C语言编程实现。考虑到系统逻辑的复杂性,所有系统要求的功能都设计成子模块的形式,以保证逻辑的正确性与系统维护的便利性。 在系统软件中,共采用了INT0, INT1, T0, T1四种中断方式,其中Int0中断用于键盘控制,Int1中断用于控制特种

30、车辆运行模式,T0用于秒时钟定时,T1用于盲道指示(蜂鸣器频率)控制。此外,系统设置了多种运行标志,用于控制系统运行状态2。u 系统软件结构体如下:图4.1.1 系统软件结构体框图42 子模块设计结构421 主循环模块图4.2.1主循环模块流程图422 正常运行模块图4.2.2 正常运行模块流程图423 非正常运行模块图4.2.3 非正常运行模块424 Int0中断模块7图4.2.4 INT0中断模块流程图425 T0中断模块图4.2.5 T0中断模块流程426 Int1中断模块图4.2.6 INT1中断模块流程图427 T1中断模块 图4.2.7 T1中断模块流程图五、系统测试51 测试仪器

31、与设备此次设计所用到及进行指标测试的仪器主要如下,见表5.1:表5.1、仪器列表序列仪器名称型号数量1示波器XJ4328 20MHz12高精度七路直流稳压电源DF1733-7 220V/50Hz13数字万用表MS8200G152 系统测试方案521 发送指定控制字步骤一: 8155PA口全部置低电平,PB口全部置高电平,如果所有红灯暗,而绿灯皆亮,通过初步测试;步骤二: 顺序置PA口其中一位低电平,其余高电平,置PB为PA状态反相,如果对应红绿灯为一亮一暗关系,则通过测试;步骤三: 置PC3口为高电平,如果蜂鸣器持续鸣响;置PC3口为低电平,如果蜂鸣器停止鸣响,说明蜂鸣器控制正常;522 基本

32、功能逻辑状态检验按设计的时序逻辑运行系统,检测对应逻辑状态是否吻合。时序逻辑表如表5.2.2所示:表5.2.2 时序逻辑表PAPBTime(s) 说明Step10x7d0x82010南北直行Step20x590xa61050南北直行,各路右行Step3(fresh)0x590xa60x005060通行结束前10sStep40x9b0x6460110南北左行,各路右行Step5(fresh)0x9b0x640x00110120通行结束前10sStep60xee0x11120130东西直行Step70xca0x35130170东西直行,各路右行Step8(fresh)0xca0x350x00170

33、180通行结束前10sStep90xd30x2c180230东西左行,各路右行Step10(fresh)0xd30x2c0x00230240通行结束前10sError0xfc0x03车辆禁行,行人通行Special0xff0x00所有通行禁止523 附加功能逻辑状态检验1、手动控制运行测试: 第一次按0号键进入手控运行状态,之后按16号键将产生对应step1,step2,step4,step6,step7,step9的逻辑状态;2、特种车辆通过测试(霍尔元件替代): 用磁钢放置在霍尔元件上方时,系统进入Special对应的逻辑状态,且开始倒计时15秒,之后系统恢复原来的状态继续运行。5.3系统

34、测试结果531 发送指定控制字测试结果步骤一:通过测试步骤二:通过测试步骤三:通过测试532基本功能逻辑状态检验测试结果时序逻辑满足要求,但需要调整红绿灯亮度,实现亮度的一致。533附加功能逻辑状态检验测试结果键盘控制单步运行正常,恢复原来状态正常;霍尔元件中断运行正常,但恢复原来状态有时不稳定。六、结束语本系统以单片机AT89S52芯片为核心,通过计数器、译码器、锁存器等简单数字芯片实现了红绿灯控制和倒计时显示功能。在设计中力求将间洁的电路设计和灵活的软件编程相结合,以此来完成各项要求。其中很多地方还存在一定的缺陷,可以进一步改进,如倒计时显示易受干扰、倒计时与红绿灯时序有时会容易不同步。在

35、此次设计过程中,碰到了很多问题和困难,最终通过仔细分析后均已比较成功地加以解决,基本达到了各项要求。附录A:系统元器件清单 中央控制系统元件清单,如表附录1.1:序列型号数量备注1、ATC89521单片机,本系统核心2、M81C55 1扩展I/O口3、HD7279A1实现单片机与键盘和数码管之间的通讯4、LSD574RFF 1*8共阴八段数码管,显示物体所在位置5、SN74CH5732锁存器6、SN74CH14N2施密特触发反响器7、SN74CH2442三态缓冲器表附录1.1、中央控制系统元件清单倒计时电路系统元件清单,如表附录1.2:序列型号数量备注 174HC1922十进制计数器274HC

36、482BCD7段数码管译码器374HC2442三态缓冲器4LSD574RFF 1*8共阴八段数码管,显示倒计时表附录1.2、倒计时电路系统元件清单霍尔元件电路系统元件清单,如表附录1.3:序列型号数量备注131442霍尔传感器表附录1.3、霍尔元件电路系统元件清单红绿灯元件电路系统元件清单,如表附录1.4:序列型号数量备注174HC5732锁存器2发光二极管若干模拟红绿灯表附录1.4、红绿灯元件电路系统元件清单附录B 系统使用文档 系统正常情况下自动运行,如果要手动控制系统运行,需要在自动运行状态下按下“0”键。当LED显示0时,表示进入手控运行状态,此时: 按键“1”:控制南北直行 按键“2

37、”:控制南北直行,各路右行 按键“3”:南北左行,各路右行 按键“4”:控制东西直行 按键“5”:控制东西直行,各路右行 按键“6”:控制东西左行,各路右行 如果在手控状态下再次按“0”键,则退出手控运行模式,进入自动运行模式。附录C 程序清单#include #include /* 地址定义 *#define HC573 XBYTE0x3FFF#define PCMD XBYTE0x0100#define PA XBYTE0x0101#define PB XBYTE0x0102#define PC XBYTE0x0103#define CMD 0x0F /PA, PB, PC均为输出模式#d

38、efine NSTEPA 0x01#define NSTEPB 0x02#define NSTEPC 0x03#define ESTEPA 0x04#define ESTEPB 0x05#define ESTEPC 0x06#define HAND 0x07#define SPECIAL 0x08#define FRESH 0x09#define STOPNUM 0x10#define NOPNUM 0x11#define RING 0xff#define RINGON 0x08#define RINGOFF 0xf7#define LEDRESET 0xfe#define LEDSTART

39、0x01typedef unsigned char Byte;typedef unsigned int Integer;sbit clk=P11;/ clk 连接于 P1.1sbit dat=P12;/ dat 连接于 P1.2sbit key=P13;/ key 连接于 P1.3sbit cs=P14;/ cs at P1.4/* 函数定义 *void long_delay(void); / 长延时, 50usvoid short_delay(void); / 短暂延时, 30usvoid send_byte(Byte);/ 发送一个字节Byte receive_byte(void);voi

40、d write7279(Byte, Byte);/ 写入到HD7279Byte read7279(Byte);void main_loop(void); /红绿灯主循环void system_restore(void);Byte get_scount(Byte);void led_reset(void);void ring(void);Byte isnormal=1;Byte isinterrupt=0;Byte islight=1;Byte isring=0;Byte ispulse=1;Byte tcount=0;Byte ori_tcount=0;Byte bcount=0;Byte i

41、nt1_count=0;Byte step=NSTEPA;Byte ori_step=NOPNUM;Byte key_number=0;Byte pc_number=1;/Byte counter=0;Integer scount=0;Integer ori_scount=0;/* 主程序 *main() Integer i;for(i=0; i0x2000; i+);send_byte(0xa4);PCMD=CMD;PC=0x01;led_reset();TMOD=0x21;TH1=0x00;TL1=0x00;TR1=1;TH0=0x4c;TL0=0x00;TR0=1;EA=1;ET0=1;ET1=1;EX0=1;EX1=1;while(1) i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号