交通灯及时间显示控制

上传人:zou****hua 文档编号:180526461 上传时间:2023-01-06 格式:DOCX 页数:47 大小:732.18KB
收藏 版权申诉 举报 下载
交通灯及时间显示控制_第1页
第1页 / 共47页
交通灯及时间显示控制_第2页
第2页 / 共47页
交通灯及时间显示控制_第3页
第3页 / 共47页
资源描述:

《交通灯及时间显示控制》由会员分享,可在线阅读,更多相关《交通灯及时间显示控制(47页珍藏版)》请在装配图网上搜索。

1、引言交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。对于复杂的 城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一 定的规律变化,以便于车辆行人能顺利地通过十字路口。考虑到单片机具有物美价廉、 功能强、使用方便灵活、可靠性高等特点,拟采用MCS - 51 系列的单片机来实现十字路 口交通信号灯的控制。 正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下, 如有救护车或警车到来时,应优先让其通过。 在本文中,用发光二极管来模拟信号灯, 救护车的优先通过请求信号由外部中断技术来模拟。要求使用 8051定时器/ 计数器0作 为定时器,假设南北和东西的通车时

2、间都为30 s ,外部中断的延时为10 s ,要求对通 行时间进行倒计时,从P1 口输出,在LED上显示并进行递减。以此来实现十字路口交通 灯的指示功能。交通灯在安全行车过程中起着十分重要的作用, 现在交通灯一般设在十字路口, 在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车, 对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 1两车道让车轮流放行时间相同且固定, 在十字路口, 经常一个 车道为主干道,车辆较多, 放行时间应该长些; 另一车道为副干道, 车辆较少,放行时 间短些。 2 没有考虑紧急车通过时, 两

3、车道应采取的措施, 譬如, 有消防车通过执行紧 急任务时, 两车道的车都应停止, 让紧急车通过。根据行车过程中出现的实际情况, 如 何全面有效地利用交通灯指示交通情况, 本人尝试用单片机来控制交通灯, 在软、硬件 方面采取一些改进措施, 使交通灯在控制中灵活而有效。传统的交通灯控制系统, 采用的基本上是3种控制方式。手按: 交警在岗亭值守, 人为进行红绿灯改变; 黄闪: 夜间无人值守时, 用每秒1次的黄灯闪亮, 提醒司机安全 驾驶;程控:以60s作为一个时间单位。某一方面(例南北方向)红黄绿三灯的工作程 序分别是:红灯先亮30s,然后绿灯亮28s,再绿灯闪亮3s (每秒1次),最后黄灯亮2s。

4、 此时,另一方向(东西方向)红黄绿三灯的工作顺序相应为:绿灯亮25s,绿灯闪亮3s (每秒1次),黄灯亮2s,最后红灯亮30s。此后以60s作为时间单位进行上述的反复循 环, 较为合理地解决了十字路口的交通调度问题。但红绿灯的工作顺序及时间都是固定 的, 缺乏灵活性。采用该3种方式能解决一般岗亭的交通灯控制。但重点岗亭仍需要有2 人以上同时值班, 保证有事要处理时, 仍能保留一名交警负责对交通灯的控制。而此时 若想采用程控方式, 交警将无法对交通灯再人为地加以管理。难以再科学地指挥车辆的 通行, 有效地解决交通堵塞问题。例如当南北方向车流量很大时, 程控方式下的南北方 向绿灯无法保证开放更长的

5、时间, 以缓解交通拥挤的问题。当前,交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等 各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、 非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据 单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用MCS-51 单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通 指挥自动化提供了一种新的廉价手段,具有一定的推广意义。一 交通信号灯硬件电路的设计1.1交通信号灯的作用及工作原理:一般情况下,红绿灯设在十字路口,或在多干道的叉口上,目的是为了

6、调整叉口的 交通秩序使各干道来往车辆能够有条不紊地行驶,否则将造成意想不到的严重后果。当 然在叉口设置合理的红绿灯后,也可大大减少交通管理部门的人力、物力。叉口交通信号等的基本作用:红灯亮表示车辆、行人禁止通行,绿灯亮表示车辆、 行人可以通行,绿灯转换成红灯前几秒,可用黄灯亮来暗示驾驶员或行人即将禁止通行。 该系统的屏幕时间显示用倒计时方式表示红绿灯的切换时间,时间显示器的作用是协助 红绿灯工作,跟随红、绿灯反复地进行切换。目的是为了使驾驶员和行人能够看见红绿 等亮的时间还剩几秒以便停车线以内的驾驶员和行人能够更清楚地知道此时该继续通 行或减速,才不会使驾驶员盲目地加速或减速停车而阻碍另一干道

7、车辆或行人的通行, 从而可以提高叉口车辆及行人的流通率,当然也可以减少事故的发生,为交通安全提供 保障。交通信号灯的工作原理:如图1示,当A、B组红灯亮绿灯灭;则C、D组绿灯亮红 灯灭。对A、B组或C、D组而言,每当绿灯亮转换成红灯亮前几秒(具体多长时间视实 际情况而定)黄灯亮,当绿灯灭时黄灯也灭。A时间显示绿黄红时 间 显 示红黄绿绿黄红时 间 显 示红黄绿时间显示B图1 叉口示意图1.2设计要求首先,要了解实际交通灯的变化规律. 假设一个十字路口为东西南北走向.初始状 态0东西方向绿灯通车,南北方向红灯,延时30 s.转状态1 ,东西方向黄灯亮,南北方向 红灯按1HZ的频率闪烁,延时5s

8、.再转状态2冻西方向红灯亮,南北方向绿灯通车,延时 20 s.转状态3,东西方向红灯按1HZ的频率闪烁,南北方向黄灯亮,延时5 s .最后循 环至状态0. 这里的延时采用定时器0延时.其次,当有紧急救护车出现时,应使东西南北四个方向全亮红灯,并延时10 s ,以便 急救车通过,同时对通行时间进行倒计时,从P1 口及P3口输出在发光二极管,使用8051 定时器/ 计数器0作为定时器实现子程序延时.技术上可用外部中断0发出一单脉冲向 CPU申请中断.再次,一般交通信号灯控制程序中使用软件延时,软件延时是靠执行一个循环程序 以进行时间延迟. 软件定时的特点是时间精确,且不需外加硬件电路. 但软件定时

9、要占 用CPU,增加CPU开销,因此软件定时的时间不宜太长本程序使用定时器/计数器0来定 时,定时电路已经集成在芯片中,这种由硬件电路完成,不占CPU时间.它通过对系统时 钟脉冲的计数来实现,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器 加1.计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便. 1.3 设计方法选用 MCS-51 单片机来实现,根据设计要求,交通信号灯控制器的外部输出信号 为主、副车道红、黄、绿灯共12 个驱动信号;编程使相应位复/置位来实现信号灯的亮 /灭控制,使得十字路口的红、绿灯交替点亮;在灯色交换时,黄灯闪烁提醒。设计要求有紧急车辆通

10、过时,十字路口均显示红灯。可以通过软件中断来完成紧 急任务,定义 T0 为计数中断并为下降沿触发,编写对应中断向量子程序和中断服务程 序,完成中断处理。设计还对定时控制有所要求。对于精确定时,应该用计数器加以控制,硬件实现 复杂度增加。考虑到该设计对时间精度要求不高,所以采用软件定时可以大大简化电路。 先计算出程序单部执行的时间,设置循环参数,利用if语句按设计要求完成定时控制。 二 系统组成2.1 控制要求主、支干道交替通行,主干道每次放行30秒,支干道每次放行20秒;绿灯亮时表示可以通行,红灯亮时表示禁止通行;每次绿灯变红灯时,黄灯先亮5秒(此时另一干道上的红灯不变);十字路口要求有数字显

11、示,作为时间提示,以便人们更直观地把握时间,具体 要求主、支干道通行时间及黄灯亮的时间均以秒为单位做减数器; 在黄灯亮时,原红灯按 1HZ 的频率闪烁; 当有急救车到达时,路口的信号灯全部变红,让急救车通过。假定急救车通过 时间为10s,急救车通过后,交通灯恢复先前状态。2.2 硬件控制线路图JT+5C1GNDSW -PBGNDR1J210K2丄 100CON2 GNDR64. 7KR7+5330123456789+5 D1 ”DDDDDDDLR3+5100T LECW-PB.D13-GNDGND3 0p*2MhZ Y1LLEDC330P LED+5RESET104PFP10P00P11P01

12、P12P02P13P03P14P04P15P05P16P06P17P07INT1P20INT0P21P22T1P23T0P24AT89S51P25EA/VPP26P27X1X2RESETRXDTXDRDALE/PGNDCP18_A1210” 301918345P16-P1TT5_10K39 S138 S237 S33 6 S435 S534 S633 S732 S821 P2022 P2123 P2224 P2325 P2426 P2527 P262P27+5;J33456789123456789J4P24FP23-2P27-3P22PP26-5S16LED87 S4E P209P25T0 S

13、3TT S2T2 P21U21 1P2牟7 S8P2卫dl a8P20P23f9P25P20dp10 S7P2f51 1 S6S5 6St12 P21LLEDR4LED8R5 二100100+5+5JP1123456710HEADER 5X2IGNDGND图 2 原理图2.3 工作原理采用单片机的I/O口Pl口和P3直接和交通灯连接,控制程序放在MCS- 51单片机如 8051的ROM中,在十字路口的四组红、黄、绿交通灯中,受单片机P1.0P1.7和P3.0、 P3.1、 P3.3、 P3.7 控制, 由于交通灯为发光二极管且阳极通过限流电阻和电源正极连 接,因此I/O口输出低电平时,与之相连

14、的相应指示灯会亮,I/O口输出高电平时,相应 指示灯会灭。紧急车请求通过的信号由人工控制, 以中断方式输入单片机, 无紧急车通 过时,中断引脚INT0通过电阻和电源正极连接为高电平,不产生中断请求,单片机执 行主程序, 有紧急车通过时, 中断引脚采用人工方法接地为低电平, 产生中断请求, 单片机执行中断服务程序, 让紧急车通过, 紧急车通过后, 中断引脚变为高电平, 返 回主程序。由于倒计时显示装置已普遍采用, 因此本文未引入探讨。2.4 器件和原理23 42.4.1.什么是单片机单片机是将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM或EPROM)、 定时器芯片和一些输入/输

15、出 接口 电路集成在一个芯片上的微控制器 ( Microcontroller)。中央处理器包括运算器、控制器和寄存器3个主要部分,是单片机的核心。存储器按工作方式可以分为两大类:随机存储器RAM和只读存储器ROM。RAM可被 CUP随机地读写,断电后存储的内容消失;ROM中的信息只能被读取,一般用于存放固 定的程序。ROM中的内容只能用编程器专用设备写入。输入/输出接口(I/O接口)是单片机的重要组成部分。程序、数据以及现场信息需要通过输入设备送到单片机,计算结果需要通过输出设备输出到外设。常用的输入有 按键、键盘、A/D等,输出设备一般有LED、电机等。为了方便理解,我们可以将单片机和 PC

16、 机进行一个比较。一台能够工作的计算机 要由CPU、RAM、ROM、输入/输出设备等几个部分组成。在PC机上这些部分被分成若干D/A 等。一个标块芯片,安装在主板上。而单片机相当于集成了以上所有芯片的一块集成电路芯片。有 一些单片机中除了上述1基本的功能,还2集成了其他部分3 功能,如 A/D4Title准的89C51单片机的引脚功能图如图3所示。NumberSMG图3 89C51单片机及其引脚SizeB1 dAT 89C512单片机性能介绍File:C:Client98Sheet_1.SchAT89C51 是一种带14K 字节闪烁2 可编程可擦除3只读存储器( 4Sheet of Drawn

17、 By:FPEROMFalshU?P10P00P11P01P12P02P13P03P14P04P15P05P16P06P17P07INT1P20INTOP21P22T1P23TOP24一P25EA/VPP26P27XIX2RESETRXDTXD-RDALE/PWRPSEN3115141918101130O29363534333217 G16_C39384-Ao13 C12_O222324272845&斗OTTProgrammable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器, 俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造

18、技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片 中, ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性 高且价廉的方案。2主要特性:1.与 MCS-51 兼容2.4K 字节可编程闪烁存储器3. 寿命:1000 写/擦循环4. 数据保留时间: 10年5全静态工作:0Hz-24Hz6. 三级程序存储器锁定7.128*8 位内部 RAM8.32 可编程 I/O 线9.两个 16 位定时器/计数器10.5 个中断源11. 可编程串行通道12. 低功耗的闲置和掉电模式13. 片内振荡器和时钟电路3管脚说明

19、:VCC :供电电压。GND:接地。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它 可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接 收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部 下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和

20、校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收, 输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的 高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进 行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八 位地址信号和控制信号。P3 口: P3 口管脚是8个带内部上

21、拉电阻的双向I/O 口,可接收输出4个TTL 门电流。当P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由 于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下表2-1所示:口管脚备选功能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2/INT0 (外部中断0)P3.3/INT1 (外部中断1)P3.4T0 (记时器0外部输入)P3.5T1 (记时器1外部输入)P3.6/WR (外部数据存储器写选通)P3.7/RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信

22、号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电 平时间.ALE/PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频 率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲 或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。 如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX, MOVC指令 是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止, 置位无效。/

23、PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出 现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH), 不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保 持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电 源(VPP)。XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。2.4.2 什么是单片机系统单片机系统的基本结构框图如图 4 所

24、示。从图中可以看出,对于一个典型的单片机 系统而言,主要由单片机、晶振和复位电路、输入控制电路、输出显示电路以及外围功 能器件 5 个部分组成。除了上文中介绍过的单片机外,单片机系统中的其他 4 个部分的主要作用和器件如 下。晶振和复位电路:单片机系统的必要组成部分,控制单片机的机器周期和功能复 位。输入控制:是指在一定要求下,采取何种形式的控制方式来实现单片机不同功能 的转换,以及控制指令以何种方式传送到单片机。常用的输入控制方法有按键、矩阵键 盘、串行通信等方式。图 4 单片机系统的基本组成输出显示:是指单片机将需要显示的数据发送到LED、液晶等显示模块,并控制 LED 等显示模块按照一定

25、的格式显示的功能。此外,输出对象还有电机、传感器等特殊 的功能器件。外围功能器件:单片机只是控制器件,对应与一定的设计要求,需要加入特定功 能的器件。例如外部存储器,单片机通过对外部存储器的读写操作,完成对数据的存储 器的读写操作,完成对数据的存储和读取,从而扩展单片机的存储单元和数据。此外, 常用的外围器件还有 A/D、 D/A、 74LS07 门电路以及特定功能的传感器等。单片机的最简单系统是指单片机能正常工作所必须的外围元件,主要由单片机、晶 振电路和复位电路构成。而输入/输出部分则通过单片机的I/O 口实现。2.4.3 单片机系统的应用单片机的应用十分广泛,在工业控制领域、家电产品、智

26、能化仪器仪表、计算机外 部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。 显示:通过单片机控制发光二极管或是液晶,显示特定的图形和字符。 机电控制:用单片机控制机电产品做定时或定向的动作。 检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生。 通信:通过RS-232串行通信或者是USB通信,传输数据和信号。 科学计算:用来实现简单的算法。那么单片机是不是解决上述应用的惟一选择呢?当然不是!目前,在自动控制中,一般有3种选择,分别是嵌入式微机、DSP和单片机,他们的性能比较如表2-2所示。表2-2嵌入式微机、DSP、单片机性能比较指标嵌入式微机DSP

27、单片机运算速度一般快慢信息处理量大大小体积和重量大小小系统集成度高一般低开发成本适中高低典型器件SUPERDX型嵌入式模块DSP-56800TMS320C54XMCS-51MCS-98单片机最明显的优点是价格便宜,从几元人民币到几十元人民币。这是因为这类芯 片的生产量很大,技术也很成熟。其次,单片机的体积也远小于其他两种方案。单片机本身一般用 40 脚封装,当然 功能多一些的单片机也有引脚比较多的,如 68 引脚,功能少的只有 10 多个或 20 多个 引脚,有的甚至只有 8 只引脚。当然,单片机无论在速度还是容量方面都远小于其他两种方案,但是实际上工作中 并不是任何需要计算机的场合都要求计算

28、机有很高的性能。例如,控制电冰箱温度的控 制器就不需要使用嵌入式系统,用一片 51 就可以轻松实现。所以应用的关键是看是否 够用,是否有很好的性能价格比。51 系列的单片机已经面世十多年,依然没有被淘汰, 还在不断的发展中,这就说明是它有广阔的应用前景。2.5 部分电路功能2.5.1 晶振电路简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单 片机就无法工作。单片机工作时,是一条一条地从ROM中取指令,然后一步一步地执行。单片机访问 一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括 12 个时钟周期。如果一个单片机选择了 12MHz晶振,它的时钟周

29、期是l/12us,它的一个机 器周期是12* (1/12) us,也就是1us。MCS-51 单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有 一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量 指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条 指令的时间。例如,当需要计算 DJNZ 指令完成所需要的时间时,首先必须要知道晶振的频率, 设所用晶振为12MHZ,则一个机器周期就是1us。而DJNZ指令是双周期指令,所以执行 一次要2us。如果该指令需要执行500次,正好1000us,也就是1ms。机器周期不仅对于指令执行有着

30、重要的意义,而且机器周期也是单片机定时器和计 数器的时间基准。例如一个单片机选择了 12MHz晶振,那么当定时器的数值加1时,实 际经过的时间就是1us,这就是单片机的定时原理。1、晶振的选择晶振一般分为晶体振荡器和晶体谐振器。在单片机系统中,晶体振荡器将外围的电 容集成到振荡器的内部,无需再设计晶振电路,只需要将电源加载到晶振上,晶振就可 以起振,并通过两个引脚输出到单片机的晶振引脚上。一般的,由于晶体振荡器的体积较大,价格较贵,在实际使用中,还可以选择晶体 谐振器,也就是常说的立式晶振。该晶振需要外部的晶振电路才可以起振,但是由于该 电路非常简单,并且使用灵活,在单片机系统中也有广泛地应用

31、。2、通用的晶振电路单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两种。内部 时钟方式的电路如图 4 所示。内部始终的晶振频率一般都选择在4MHz12MHz之间,外接两个谐振电容。该电容 的典型值为30PF,但是在实际应用时,需要根据实际起振情况选择。如果单片机的时钟必须使用某一个外接的时钟信号,就不要外接晶振。由于此时的 外接晶振引脚上没有晶振信号输入,内部的时钟电路将停振。这种方式称为外部时钟方 式。图 5给出了两种外部时钟的电路,可以根据不同的单片机型号选择不同的电路。图 5 单片机的外部晶振电路3、振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该

32、反向放大器可以配置为片内振 荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有 余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要 求,但必须保证脉冲的高低电平要求的宽度。2.5.2 复位电路 简单地说,单片机的复位就和计算机的重起一样的概念。任何单片机在工作之前都 要有个复位的过程,复位对单片机来说,是程序还没有开始执行,是在做准备工作。一 般的复位只需要5ms的时间。复位引脚 RST/Vpd 通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相 连,施密特触发器的输出,在每个机器周期的 S5P2 有复位电路采样依次。当振荡电路 工

33、作,并且在 RST 引脚加上一个至少保持 2 个机器周期的高电平时,就能使8051 完成 一次复位。按上面所说,时间不少于5ms。为了达到这个要求,需要在外部设计复位电 路。复位电路的实现可以有很多种方法,但是从功能上一般分为两种:一种是电源复位, 即外部的复位电路在系统通上电源之后直接使单片机工作,单片机的起停通过电源控 制;另一种方法是在复位电路中设计按键开关,通过按键开关触发复位电平,控制单片 机的复位。1、通用的复位电路 和晶振电路一样,复位电路也是单片机系统的典型外部电路。基本的复位电路的原 理图如图 6所示。从原理上,一般采用上电复位嗲路。这种复位电路的工作原理是:通电时,电容两

34、端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电 压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。2、改进型的复位电路对于有着丰富电路设计经验的读者而言,可以根据自己的需要,定制满足实际要求 的电路。这里,给出了一种根据实际需要设计的上电复位电路,如图 7 所示。4311321D1R15S9C511431EAAT19V1S10RESET田T1INTOT1TORZDTXDALEZP PSENPOOP01P02P03P04P05P06P07PIO PllP12P13P14P15P16P173029393837363534333223242526272SRD

35、WR22iiF 6GND图 7 改进型的复位电路2.5.3 信号灯控制电路外围器件选择的是发光二极管,发光二极管在其两端的电压差超出其导通压降时开 始工作,发光二极管的导通压降一般为1.7V1.9V。此外,工作电流要满足该二极管的 工作电流。满足电流和电压的要求,发光二极管就可以发光了。单片机系统中往往是数 字信号,不是5V就是0V,所以只要将二极管的正负极和电源对应上就可以了。但还需在发光二极管和单片机连接时加个限流电阻,这个电阻的作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。123 斗J1+5 D1P歸17 S4y17 1?RESETRDWKRXDTXDALE

36、.PPSEN10 TT301431lyISINTI INTOT1TOXIX2AT89S51P20P21P22P23P24P25P26P275603S373&S435343332S821 P2p| 22 P2(l23 P2224 P2?25 P2426 P2527 P笳28厉7 3P22斗P25 5P2B 2SI 69P2.1(S31;281 P2p12 P21U2LEbs7 SSP24LEbS8 yO 52 2p P1(1S71S612P2图 8 信号灯控制和时间显示电路般二极管的点亮电流为5mA至10mA,在5V驱动时,厂家多采用470欧的限流电 阻,在电路中采用了 1K的电阻,电流也就35

37、mA。当然为了更亮一点,可以减小电阻 值,当然,二极管的电流不要超出单片机的 I/O 最大电流。发光二极管的参数分成三大类:是电参数;二是光参数;三是极限参数。 电参数发光二极管的电参数主要有下列几项。 正向电压Vf。它是指:在给发光二极管加入规定的正向电流时,发光二极管正极 与负极引脚之间的电压降。 发向耐压Vr。它是指:保证发光二极管不出现反向击穿时所允许给发光二极管加 的最大反向电压。 反向漏电流Ir。它是指:在给发光二极管加上规定的反向偏置电压时,流过发光 二极管的反向电流,即从负极流向正极的电流。 结电容Co。它是指:发光二极管PN结的结电容,一般为小于100PF,此结电容 愈小愈好

38、。 光参数 发光二极管的光参数主要有发光峰值波长、半峰宽度和发光强度。其中发光强度是发光二极管的项重要光参数,它表征了发光二极管发光时的亮度。 极限参数发光二极管的极限参数关系到发光二极管的安全使用,在使用过程中若超过极限参 数,发光二极管将会损坏。发光二极管的极限参数主要有两项:一是极限功率Pm;二是极限工作电流Im。在小电流发光二极管中,极限电流一般小于5MA。发光二极管的三种参数中,除光参数是它特有的外,其他两项参数的含义与普通二 极管相同。2.5.4 LED 显示及显示接口单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)和LCD(液晶显示 器)。这两种显示器成本低廉,配置

39、灵活,与单片机接口放便。近年来也开始配置简易 形式的CRT接口,可以较方使池进行图形显示。数码管在该电路中主要是显示单片机的 输出数据、状态等,因而,作为外围典型器件,数码管显示是反映系统输出和操纵输入 的有效器件。数码管具备数字接口,可以很方便地和单片机系统连接;数码管的体积小, 重量轻,并且共好低,是一种理想的显示单片机数据输出内容的期间,在单片机系统中 有着重要的作用。显示电路如图 8 所示。1LED 显示器结构与原理LED 显示块是由发光二极管显示字段的显示器件,在单片机应用系统中通常使用的 是七段LED。这种显示块有共阴极与共阳极两种,如图9所示。共阴极LED显示块的发 光级管阴极共

40、地。如图中(c)所示,当某个发光二极管的阳极为高电平时,发光二极管 点亮;共阳极LED显示块的发光二极管阳极并接。如图中(b)所示。图中(a)为七段码显 示器的实际外观与引脚连接图,另外两只没有标出的引脚是共阴或者共阳引脚,实际连 接中接地(共阴)或者接+5伏(共阳)。(b)共阳极公共阴ttCOMCO共阴极g fed c b uuuu图 9 LED 的管脚和电路原理通常的七段显示器(也有人称为七节显示屏)是由八个发光二极管所组成的,因此 也被叫做八段显示器。其中包括七个细长条形的LED及小数点行的LED,显示器的每一 段或没一划都有其名称,分别是英文小写的a到f,以及小数点dp(DECIMAL

41、 POINT)。 七段显示器可以显示包括小数点的0到9数字与部分的英文字母。在近年来,由于生产 器件的工艺的进步,也出现了十六段码LED显示器和点阵式单色和双色显示器,这些LED 显木器被广泛应用于电梯、大屏幕LED显示器、公共汽车报站器、车站车次显示等领域, 特别是点阵式双色显示器的出现,极大的方便了汉字的显示和图形显示,为其在网民经 济的领域的应用拓宽了道路。以共阳极的七段显示器为例,若想要显示数字1时,就要使b划与c划点亮,在电 路上我们会把共同点接到正电源端(+5V),标示b与c的地方经过限流电阻到地,就可以显示数字1。如果是单个的数码管,七段显示器是直接点亮的,亦即用8位去推动一 个

42、七段显示器。如果有多位数字要显示时,可以用扫描的方式显示,以节省控制脚位。七段显示块与单片机接口非常容易。只要将一个8位并行输出门与显示块的发光 二极管引脚相连即可。8位并行输出门输出不同的字节数据即可获得不同的数字或字符, 其段码如表2-3所示。通常将控制发光二极管的8位字节数据称为段选码。共阳极与共 阴极的段选码义为补数。表2-3七段LED码的显示码理示字符共阴极段选码共阳扱段选码显示字符共阴极段选码共阳极段选码03FHCOHC39HC6H106HF9HD5EHAIH25BHA4HE79H86H34FHB0H-71H8EH406HF9HP73H8CH56DH92HU3EHC1H67DH82

43、HH76H扁日707HF8Hr31HCEH87FH80HY6EH91H96FH90H8.FFHOOHA77H忌H“灭”00HFFHB7CH83H2. LED是如何显示单片机数据的用单片机驱动LED数码管有很多种方法,按显示方式分,有静态显示和动态显示。 首先介绍静态显示方法。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就 不再控制LED,直到下一次显示时再传送一次新的显示数据。静态显示的数据稳定,占 用的CUP时间少。静态显示中,没一个显示器都要占用单独的具有锁存功能的I/O接口, 该接口用于笔划段字形代码。这样单片机只要把显示的字形代码发送到接口电路,该字 段就可以

44、显示发送的字形。要显示新的数据时,单片机再发送新的字形码。另一种方法是动态扫描显示。动态扫描的方法是用其接口电路把所有显示器的8个 笔划段a-h同名端连在一起,而没一个显示器的公共极COM各自独立地受I/O线控制。 CPU向字段输出送出字形码时,所有显示器接接收到相同的字形码,但究竟是哪个 显示器亮,则取决于COM端,而这一端是有I/O控制的,由单片机决定何时显示哪一位 了。动态扫描用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。在 轮流点亮扫描过程中,没位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发 光二极管的余辉效应,给人的印象就是一组稳定的显示数据。3静态显示和动

45、态显示的比较这两种显示方式各有利弊:静态显示虽然数据显示稳定,占用很少的CPU时间,但 每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示需要CPU时 刻对显示器进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但使用的硬件少, 能节省线路板空间。在一般较为简单的系统中,为了降低成本,动态显示方案具备一定的实用性,也是 目前单片机数码管显示中较为常用的一种显示方法。动态显示法是目前各种单片计算机 采用的流行方法。其优点是烟碱简单。“动态”由软件实现。 三、交通信号灯软件的系统编程3.1单片机的C语言程序设计c 语言程序设计是单片机开发、应用的重要趋势之一。目前,支持硬断点的单

46、片机 仿真器已能很好地进行c语言程序调试,为单片机编程使用c语言提供了便利条件。编译型程序设计语言 c 的优点已为大家熟知:既有多种高级语言的特点,又具备汇 编语言的功能:有丰富的库函数、运算速度快、编译效率高、可移植性好,而且可以实 现对系统硬件的直接控制;具有完善的模块程序结构,支持广泛采用的由顶向下结构化 程序设汁,为软件开发中采用模块化设计方法提供了有效支持;可以大大缩短目标系统 软件的开发周期,软件的可读件明显增加,便于改进、扩充,研制规模更大、性能更完 备的系统。3.2 C 语言与 MCS513.2.1 MCS51 酌编程语言支持MCS51单片机编程的语言.除了前面学过的汇编语言外

47、,还有三种:BASIC、 PL/M 和 C。BASIC语言简单易学,适用于对编程效率或运行速度要求不高的场合,8052单片机 片内就固化了 BASIC语言解释器。但是BASIC采用浮点运算,导致程序复杂且执行时间 长,即使BASIC编译器也未能解决这个问题。PL/M可以说是“高级汇编语言”,详细控制着代码的生成。但对MCS-51系列,PL/M 不支持复杂的算术运算和浮点变量,也没有丰富的库函数。用 C 语言进行单片机程序设计,编译器能自动完成变量的存储单元的分配,编程者 可以专过于应用软件的设计大大加快开发速度,可以对单片机常用的接口芯片编制通 用的驱动函数,对常用的功能模块、算法等编制相应的

48、函数,还可以很容易地进行信号 处理算法和程序的移植,有利于产品中单片机的重新选型和软件设计水平的提高、与国 外嵌入式系统的程序设计接轨。与汇编语言相比,C语言程序在开发速度、软件质量、结构严谨、程序可靠性等方 面有明显优势。而代码效率相对较低的缺点,对于片内ROM空间16K/32K字节以上的单 片机而言,已经不很重要。目前,单片机上C语言程序未经人工优化的代码长度,已缩 短到用人工方便地对时间要求比较严格的汇编语言模块和关键代码进行优化。3.2.2 C51 编译器与程序开发过程 已经开发了各种单片机的 C 语言编译器对于并不以快速运算见长的MCS51单片机来说,其C语言编译器(简称C51)的各

49、 项性能指标中,最重要的是开发便利,其次是生成代码紧凑,以及编译速度、是否有浮 点库和足够的算术支持。C51 程序开发过程如图 10所示:图 10 C51 程序开发过程3.2.3 C51 程序结构与一般C语言相似,C51程序的基本单位是函数。函数由函数说明和函数体两部分 组成。一个C源程序至少包含一个(main).也可以是一个主函数和若干其它函数。主函 数是程序的入口;主函数中的所有语句执行完毕,则程序结束。C51 程序的一般格式如下:类型函数名(参数表)参数说明:数据说明部分:执行语句部分:在程序中,函数有三种形态:函数定义、函数调用和函数说明。 函数定义相当于汇编中的一般子程序。函数调用相

50、当于调用子程序的CALL语句,要求有函数名和实参数表。在C中,更 普遍地规定函数调用可以出现在表达式中。函数定义和函数调用不分先后,但若调用在 定义之前,必须在调用前先进行函数说明。函数说明是一个没有函数体的函数定义。C51 中函数分为两大类:库函数和用户定义函数。被调用的函数可以是库函数,也 可以是用户函数。库函数是C51在库文件中已定义的函数,其函数说明在相关的头文件中。用户在编 程时只要用include预处理指令将头文件包含在用户文件中,直接调用即可。用户函数是用自己定义,自己调用的一类函数。C51程序的编制与一胜C语言行序大致相同。3.3利用C51程序编写延时程序为了循序渐进地学习单片

51、机的功能,这里我们即使用了单片机中的定时器,也直接 采用软件的延时程序定时控制发光二极管的亮灭。该延时程序的时间主要是通过计算单 片机执行指令所需的时间来确定的。例如,在前文中介绍过,在选择12MHz晶振时,执行一个简单加法指令的时间为一 个指令周期,需要1/12M (秒)=1 (微秒),所以程序中作1M次加法循环所需要的时间 就是 1 秒钟。当然,这只是一个粗略的算法,需要加上执行其他必须指令所花的时间, 并且考虑程序代码的效率。但是,这不失为一种简单的解决方案。 程序代码void delay10ms(void)unsigned char i,j;/定义延时循环变量for(i=20;i0;i

52、-)for(j=248;j0;j-);/双重循环,延时 10ms3.4 信号灯亮灭的定时功能 单片机之所以在工业控制中有大量的应用,就是在于它有其独特的定时、计数功能。 在本电路中,用定时器来实现灯的闪烁功能。控制单片机I/O端口电平的高低,从而控制发光二极管的亮灭通过对P1 口和P3.0、P3.1、P3.3、P3.7 口的变量置1和置0,控制P1 口和P3 口 的电平高和低。当为高电平时,发光二极管两端压差为零,二极管不导通,灯不亮;当 为低电平时,发光二极管两端压差为5V,二极管导通,灯亮。3.4.1 单片机的定时器MCS-51系列的单片机一般有两个内部的16位定时器/计数器,分别称为T0

53、和T1。 这两个计数器分别是两个8位的RAM单元组成的,即每个计数器都是16位的计数器, 最大的计数量是65536。那么这个定时/计数器是如何产生定时作用的呢?举个例子,如果将时钟定时到 1 分钟,那么秒针计数到 60 次后,始终闹铃就会响。这里有个计数和定时之间的概念转 化,时间表示为秒针的计数值,即秒针每一次走动的时间正好是 1s。 单片机中的定时器和计数器是复用的,计数器是记录外部脉冲的个数,而定时器则 是由单片机提供的一个非常稳定的计数源。定时器是由单片机的晶振经过 12 分频后获 得的一个脉冲源。当单片机的晶振为 12MHz 时,计数值1 代表的时间就是 1us。计数器的容量是 16

54、 位,也就是最大的计数值达到 65536,因此计数计到 65536 就会 产生溢出。当定时器/计数器溢出时,就会使得相关的寄存器标志产生变化,单片机将 由此而产生定时中断,在中断服务程序中处理定时到而需要完成的任务。3.4.2 如何使用 MCS-51 单片机的定时器呢? 使用单片机的定时器/计数器主要和编程有关。编程中需要对两个特殊功能寄存器进行操作。这两个特殊功能寄存器就是TM0D和TC0N,又称为定时器的控制字。首先,介绍定时器/计数器的方式寄存器TMOD。TMOD是一个8位的特殊功能寄存器,对应的地址为89H,不可位寻址。TMOD控制字中可以完成 3个功能: 确定选择定时器,还是计数器。

55、 选择何种工作方式。 是否借用外中断控制定时器和计数器的启停。TMOD的低4位是用于控制T0的字段,高四位用于控制Tl。TMOD的控制字的格式和含义如表 3-1 所示。表 3-lTMOD 的控制字TMOD.7TMOD.6TMOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0GATEC/TM1M0GATEC/TM1M0这里,以TMOD的低4位来说明各位的定义和功能。GATE:分为两种情况,GATE=O,定时器的起停和INT1无关,在这种情况下,定时 器的起停只取决于 TR0。 GATE=l 时,在此种情况下定时器/计数器的开关不仅要由 TR0 来控制,而且还要受到INT1引脚的

56、控制,只有TR1为1,且INT1引脚也是高电平,定 时器才能开始工作。C/T:定时/计数器即可作定时也可用于计数。选择何种功能,由C/T的控制字决定。 如果C/T为0就用作定时器,如果C/T为1就用作计数器。当然,一个定时/计数器同 一时刻要么作定时用,要么作计数用,不能同时用。Ml、M0:用Ml、M0来控制定时/计数器4种工作方式的选择。工作方式0: M0=0, M1=0。13位定时/计数方式,它由TL(1/0)的低5位和TH (0/1 )的8位构成13位的计数器,此时TL(1/0)的高3位未用。工作方式1: M0=0, M1=1。是16位的定时/计数方式,其他特性与工作方式0相 同。工作方

57、式2: M0=1, M1=0,自动重装初值的8位定时器/计数器。初值放在T(0/1) 的高 8 位。在工作方式 2,只有低 8 位参与计数,而高 8 位不参与计数,用作预置数的 存放,计数范围256。每当计数溢出,就会打开T (0/1)的高、低8位之间的开关,计 预置数进入低 8 位,这是由硬件自动完成的,不需要由人工干预。通常这种工作方式用 于波特率发生器,用于这种用途时,定时器就是为了提供一个时间基准。计数溢出后重 新装入预置数,再开始计数,不要任何延迟。工作方式3: MO=1, Ml=l。这种工作方式之下,定时/计数器0被拆成2个独立的 定时/计数器来用。其中,TL0可以构成8位的定时器

58、或计数器的工作方式,而TH0则只 能作为定时器来用。一般情况下,只有在T1以上工作方式2运行(当波特率发生器用) 时,才让T0工作于方式3。接下来,介绍定时器/计数器的控制寄存器 TCON。TCON是一个8位的特殊功能寄存器,对应的地址为88H,可位寻址。TCON中的低4 位用于外部中断的控制,在后文中将加以介绍,此处只对高4位的TO、T1控制字及其 控制原理进行介绍。TCON控制寄存器的格式和含义如表3-2所示。表3-2TCON控制寄存器TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.OTF1TR1TFOTROIE1IT1IEOITOTRO: T

59、O的运行控制位。启动定时器TO没有专门的指令,而是通过位TRO进行控制。 TRO是由软件置位或清零的。当门控位GATE=O时,TO的运行只取决于TRO的0和1;当 门控位GATE=1时,仅当TRO=1,并且外中断O引脚上的输入值为高电平时,TO才开始 计数,这两个条件有一个不满足,则禁止TO计数。TFO: TO的溢出和中断申请标志位。当TO溢出时,硬件置位TFO,表示提出了中断 申请。该标志位可以通过软件查询,也可以用软件清零和置位。在单片机响应中断申请 后,硬件自动清零。TR1: T1 的运行控制位。TF1: T1 的溢出标志位和中断申请标志位。3.4.3 定时器数值的设置应该注意的事项理论

60、上说,定时器的最小计数、定时间隔时间是由晶振的频率决定的,最大的时间 间隔可以是无穷大。然而,在实际应用中,还是有一定的规则需要遵守的。首先还是看 一看定时器的一次最大计数范围吧。工作方式O: 13位定时/计数方式,因此,最多可以计划到2的13次幂,也就是8192 次。工作方式1:16位定时/计数方式,因此,最多可以计划到2的16次幂,也就是65536 次。工作方式 2 和工作方式 3:都是 8 位的定时/计数方式,因此,最多计数值可以达到 2的8次幂,也就是256次。如果想实现一个Is的定时,该12MHz晶振频率下,最长的定时也就是65536us。可 以采用软件计数器的概念。先用定时7计数器0做一个50ms的定时器,定时时间到了以 后并不

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!