收藏 分销(赏)

交通灯控制系统.doc

上传人:仙人****88 文档编号:9410647 上传时间:2025-03-25 格式:DOC 页数:28 大小:381KB
下载 相关 举报
交通灯控制系统.doc_第1页
第1页 / 共28页
交通灯控制系统.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述
职 业 技 术 学 院 毕业设计报告 交通灯控制系统 学生姓名 所 在 系 电子工程系 班 级 电08微电1班 专 业 微电子技术 指导教师 2010年11月X日 - 3 - 目录 摘要 3 第一章 绪论 4 1.1设计原因 4 1.2交通灯颜色的选取机理 4 1.3现代交通灯的控制技术 4 第二章 设计方案 5 2.1.设计要求 5 2.2选题依据 5 2.3.单片机的特点 5 2.4AT89S52 6 2.5 AT89S52的组成 8 2.6 时钟震荡电路 9 2.7 复位电路 9 第三章、交通灯的电路设计 11 3.1数码管分类 11 3.2 CD4511 12 3.3 指示灯电路设计 13 第四章 软件程序设计 15 4.1 指示灯的算法设计和端口连接 15 4.2显示电路设计算法和接口 17 4.3延时程序 17 4.4 中断 19 4.5交通灯总体设计流程 20 总结 21 附录1:交通灯控制系统仿真全图 22 附录2 :交通灯控制系统源程序 23 参考文献 28 摘要 摘要摘要放在目录的前面,并且页脚用罗马数字 为了克服交通工具的迅速发展,给城市交通带来的一系列的问题。在交通管理、交通控制系统方面采用了计算机自动化等新技术。本篇论文就是为了有序管理交通而设计的,此设计是基于单片机来完成对交通灯的控制,达到准确、高效的控制目的。现代科技最重要的是自动化,自动化的目的就是为了提高效率减少人力资源的耗散。本设计采用了单片机为设计方法,基于keil和proteus为设计工具,运用数字电路和模拟电路的方法来完成设计。论文主要分为四大章节,分别从交通灯的基本形式,设计方法,电路的设计和程序设计的等几个方向来进行。 本设计并非实际运用中的成品,考虑到成本和功能的限制,做出的产品是小型原理的实物实验品,运用的信号指示等是发光二极管,计数屏为七段数码显示管由于知识水平的局限性,其中可能有很多不足之处,还望读者多多提点,以求改进。 关键词:交通灯、单片机 13 第一章 第一章 绪论第一章开始,页脚编码用阿拉伯数字1,2.。。 1.1设计原因 近年来在快速城市化进程和经济发展的影响下城市交通迅速增长,交通问题成为了困扰许多城市发展的通病交通拥挤成为制约城市经济和社会发展的“瓶颈”而且随着机动车数量的增加而日趋严重,由于我国道路设施不足,路网设计不合理,道路建设空间受制约,城市车辆数量急速增加。交通供应不能满足机动车迅速增长的需要。出现上下班高峰期堵车塞车,交通事故频发等事件。为了改善交通形式,减小管理负担,运用自动化的交通灯控制系统成为了必要的交通控制手段。 1.2交通灯颜色的选取机理 运用红、绿、黄三色来作交通讯号是和人的视觉机能结构和心理反应有关。我们的视网膜含有杆状和三种锥状感光细胞。杆状细胞对黄色的光特别敏感,三种锥状细胞则分别对红光、绿光及蓝光敏感。由于这种视觉结构,人最容易分辨红色与绿色。虽然黄色与蓝色也容易分辨,但因为眼球,对蓝光敏感的感光细胞较少,所以分辨颜色,还是以红、绿色为佳。所以通常的交通灯都采用红、绿、黄三色信号灯来指挥交通,此外用红色来作为禁行的原因是红色光的穿透力很强,就算是在大雾天气也能够看见,而黄色的穿透力在红色后面所以用黄色来作为警惕信号,绿色则作为通行讯号。 1.3现代交通灯的控制技术 如今,在太阳能,风能,核能等新能源开发,集成电路的迅猛发展的前提下,交通控制系统已经呈现低能耗,高性能的发展。比如在我国部分城市已经出现了太阳能的交通控制信号灯。而且交通控制系统不只运用于城市道路等方面,现在某些高端汽车基本装有智能速度传感器、智能控速系统和车距测量系统,和自动驾驶系统等这些系统都是为城市交通安全服务的,而这些系统的运用,都离不开自动控制这一技术。单片机就是比较好自动控制方式,由此本文将以单片机为主要方向讲述交通灯控制系统的开发过程。 第二章 第二章 设计方案 2.1.设计要求 自动开关合上,东西绿灯亮4秒,闪2秒灭,黄灯亮2秒灭,红灯亮8秒,绿灯亮4秒,闪2秒灭,黄灯亮2秒灭,红灯亮8秒循环。对应东西绿灯黄灯亮时,南北红灯亮8秒,接着绿灯亮4秒闪2秒灭,黄灯亮2秒后,红灯又亮8秒循环。 2.2选题依据 选择交通灯控制系统作为毕业设计的目的是因为其一:能够和即将学习的单片机知识挂钩,能够促进对于新事物的专研程度。其二:交通灯控制系统可以从硬件和软件两方面的方向出发,能够对以前所学的知识达到综合的运用。其三:运用单片机来做来做其成本比较低廉,电路简单,而且单片机还有非常多的优点。再加上能够运用proteus和keil两个软件来进行设计过程中的仿真,proteus的仿真功能非常强大,不仅可以对单片机内部进行仿真还可以对其外围电路进行仿真,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 2.3.单片机的特点 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统,单片机的芯片作为作为控制系统的核心部件,除了具有通用微机CPU的数值计算功能外,还具有灵活的、强大的控制功能,以便完成对外部系统控制输入量检测,并控制输出量。实现自动控制。由于单片机是面向工业控制的,工作环境恶劣,单片机具有抗干扰能力强,工作温度范围宽。可靠性高,控制功能很强,数值运算能力较差,指令系统比通用微机系统简单,更新换代速度比通用微处理器慢的多等优点。 2.4AT89S52 AT89S52 是一种低功耗、高性能CMOS 8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。   P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器T2的外部计数输入(P1.0/T2)和定时器/计数器T2 的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。    图3-1单片机引脚封装图 这是第二章,编号应该为图2—1,仔细看你所有的图,是否编号正确 RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。  PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态,如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1.外接时钟震荡输入口XTAL2.外接时钟震荡输出口。 2.5 AT89S52的组成 图3-2 单片机组成框图 单片机AT89S52由时钟电路,内存储ROM,外存储RAM,定时器,并行口,串行口,CPU和中断系统等几大部分构成。 CPU由运算器和控制器构成,其中运算器由算术逻辑单元ALU、累加A、暂存1、暂存2、程序状态字PSW寄存器、B寄存器构成。 ALU:可以在控制器的信号下进行算术和逻辑运算。 累加A:最常用的专用寄存器,可存放操作数和操作结果。 程序状态字PSW:PSW程序状态字寄存器是一个8位特殊功能寄存器,用于存放指令执行后结果的状态信息。 B寄存器:B寄存器是8位特殊寄存器和累加A协同作用,完成乘除法运算。在不做乘除法运算时候,可以作为通用寄存器使用。 控制器是单片机的控制和指挥中心,能根据不同的指令产生不同的 操作信号。控制器包括:程序计数器PC、指令寄存器IR、指令译码器ID、振荡器、定时电路和控制电路等。 程序计数器:是一个16位的寄存器,存放的是CPU将要执行的下一条指令。地址,CPU每执行完一条指令,PC就自动加1。 地址寄存器AR:存放将要执行的指令地址、存储单元地址或输入输出设备地址,属于暂存器。 数据寄存器DR:存放正在译码的指令、从数据总线来的操作数、送往存储器的操作数、中间结果、最后结果等,也属于暂存器。 P1、P2、P3、P4几个端口是并行输出输入口。 FLASH:8K可编程闪烁存储器。 RAM:256B的内部存储器。 总线结构:总线信息按传输性质能够分成控制总线、数据总线、地址总线。成为三总线结构。 控制总线:传送CPU发送的控制信号,也可以是其他部件输入到微处理器的信息,对于每一条控制线,其传送方向是固定的。 地址总线:用于传送CPU发送的地址信息,以选择需要访问的存储单元和I/O端口,由于地址总线是单向的因此CPU只能向外传送地址信息。 数据总线:用于CPU、I/O接口之间传送数据,属于双向传输线。 2.6 时钟震荡电路 图3-4 时钟振荡电路 图3-5 外部时钟源接法 XTAL1(19引脚)——接外部晶体的一个引脚,在片内,它是一个反向放大器的输入端,这个放大器构成了片内振荡器.(当采用外部振荡器时:对HMOS单片机来讲,XTAL1脚应接地,);对CHMOS单片机来讲,XTAL1脚作为驱动端. XTAL2(18引脚)——接外部晶体的另一端。在片内,接到上述反向放大器的输出端。(当采用外部振荡器时,对HMOS来讲,XTAL2脚接收振荡器的信号,即把此信号直接接到时钟发生器的输入端);对CHMOS,此引脚悬浮 2.7 复位电路 单片机复位是使得单片机的CPU和其他的功能部件都处在一个确定的初始状态,并从这个状态开始工作。其复位条件是复位引脚加上持续两个机器周期有的高电平 3-3.按键复位电路 3-4.上电复位电路前面好像也有图3-3和图3-4??? 如上图3-3是按键复位,如果要复位,只需按下开关此时电源Vcc经电阻,在RESE端产生一个复位高电平,图3-4是上电复位接电瞬间,RESET端电压和Vcc一样,随着充电电流的减少,RESET端电压下降,只要保证充电时间大于两个机器周期,电路就能正常复位。 第三章 第三章、交通灯的电路设计 3.1数码管分类 数码管引脚封装图 共阴极数码管接法 共阳极数码管接法每一个图都要命名和编号 根据公共端接法的不同,数码管又分为共阴极和共阳极两种结构,分别如图 (b)和图 (c)所示。 共阳极就是将8个LED的阳极连接到一起组成公共端COM,接正极,当相应字段为低电平“0”时,可以点亮该字段;当相应字段为高电平“1”时,该字段不亮。 共阴极就是将8个LED的阴极连接到一起组成公共端COM,接负极,当相应字段为高电平“1”时,可以点亮该字段;当相应字段为低电平“0”时,该字段不亮。 为了节省单片机外接的管脚,本设计中采用了阴极数码管和CD4511共同组成显示电路,电路如图所示。 4-1.数码管和cd4511接线图 3.2 CD4511 CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路,能提供较大的拉电流,可直接驱动LED显示器。 BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态是怎么样的,段数码管都会处于消隐也就是不显示的状态。 LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。 LT:3脚是测试信号的输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮全部显示。它主要用来检测数7段码管是否有物理损坏。 A1、A2、A3、A4、为8421BCD码输入端。 a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。 CD4511的里面有上拉电阻,可直接或者接一个电阻再与七段数码管接口。 4-2. CD4511引脚图 4-3.CD4511封装图 在接阴极数码管显示数字的时候由于CD4511有消隐的功能因此在显示数字6的时候,a段LED不亮。 3.3 指示灯电路设计 指示灯电路分为东西南北四个方向,每个方向各有红、黄、绿指示灯1个,人行横道红绿灯各一个。指示灯均用红、绿、黄三色发光二极管代替。发光二极管的阳极接5v直流电源,作为发光二极管的电源,阴极接AT89S52的P0口。当P0口输出信号为高电平‘1’的时候,发光二极管熄灭,当P0口输出的是低电平‘0’的时候,发光二极管点亮。 发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光 由于发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。限流电阻R可用下式计算: 式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。因为我们所用的是5V电源电压,发光二极管的接法是两个发光二极管串接,由此计算出的限流电阻为100欧姆。二极管正向压降为2V,最大电流为20毫安,再用此公式计算一个二极管的电阻,大概为100欧姆,因此本设计采用两个二极管串联的方式来分压限流。 4-4.交通指示灯布局图 上图所示的是交通灯的指示灯的布局图,中间的12个LED代表的是东西南北四个方向上的红、绿、黄指示灯,图四角的十二个LED是人行横道的红绿灯。 第四章 第四章 软件程序设计 交通信号灯采用的是红、绿、黄三色信号灯,红色代表停止,红灯一亮,所有车辆或行人都应立即止步,不再前行。黄灯代表警示,越过斑马线的车辆或行人允许通过,未过斑马线的行人或车辆,应当禁止前行。绿灯代表允许通行,此时车辆和行人可以随意通行。 4.1交通灯总体设计流程 开始 初始化 东西车道绿灯,人行红灯, 南北车道红灯,人行绿灯 延时4s 东西绿灯闪烁 延时2s 延时4s 延时2s 东西车道黄灯,人行红灯, 南北车道红灯,人行绿灯 东西车道红灯,人行绿灯, 南北车道绿灯,人行红灯 东西绿灯闪烁 东西车道红灯,人行绿灯, 南北车道黄灯,人行红灯 延时2s 中断响应 关中断 保护现场 开中断 显示时间 关中断 延时2s 恢复现场 返回 开中断 4-1 交通灯总设计流程图 27 附录 4.2 指示灯的算法设计和端口连接 交通灯控制系统的原理就是以倒计时方法显示时间,通过对红、绿、黄三色信号灯的不同次序的控制来达到交通控制的目的。由于本设计中要求东西红灯亮8s,绿灯亮4s,闪两秒,黄灯亮2s。同时南北绿灯亮4s,闪2s,黄灯亮2s,红灯亮8s由此我们认为十六秒为一个周期,其亮灯的顺序如下所述: 0-4s时刻 东西路口车行道绿灯,人行道红灯,南北路口车行道红灯,人行道绿灯。 4-6s时刻 东西路口车行道绿灯闪烁,人行道红灯,南北路口车行道红灯,人行道绿灯 6-8s时刻 东西路口车行道黄灯,人行道红灯,南北路口车行道红灯,人行道绿灯。 8-12s时刻 东西路口车行道红灯,人行道绿灯。南北路口车行道绿灯,人行道红灯。 12-14s时刻 东西路口车行道红灯,人行道绿灯。南北路口车行道绿灯闪烁,人行道红灯 14-16s时刻 东西路口车行道红灯,人行道绿灯。南北路口车行道黄灯,人行道红灯。 循环往复的运行,达到了交通有序控制的目的,当然其中的间隔时间可以由不同的路口状况来设定,由于不同的路口有不同的设计方法在此只讲本设计中采用的方法。按照上面的设计方法,因为我们用的是二极管的阴极接的AT89S52的P0口,阳极接高电平。所以只要P0口输出为低电平,则指示灯点亮。为了简化系统的开发,我们将东西和南北两个方向上的指示灯统一的去除一半来作为设计模型,既东西车行道有红、黄、绿三个指示灯,人行道有红绿灯各一个,南北红、绿、黄指示灯各一个,人行横道有红绿灯各一个,一共相加10个灯。由于我们只运用P0口作为指示灯的显示输出口,因此必须简化路灯系统。我们列出了各个时段人行横道上指示灯的亮灯真值表如下表所示: 表4-1 人行道状态时间图看看你所有的表的编号是否正确 时间 东西人行绿灯 东西人行红灯 南北人行绿灯 南北人行红灯 0-4s 1 0 0 1 4-6s 1 0 0 1 6-8s 1 0 0 1 8-12s 0 1 1 0 12-14s 0 1 1 0 14-16s 0 1 1 0 从上表所示可以看出无论什么时候东西绿灯和南北红灯状态一致,东西红灯和南北绿灯状态一致。由此我们将东西绿灯和南北红灯定为人行1,将东西红灯和南北绿灯定为人行2。其随时间变化的真值表如下。 4-2 人行道归纳状态表 时间 人行1 人行2 0-4s 1 0 4-6s 1 0 6-8s 1 0 8-12s 0 1 12-14s 0 1 14-16s 0 1 这样我们就能够将这些二极管指示灯接入P0口了其接入状态如下表所示。 4-3 交通灯路口接法 端口 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 时间 人行1 人行2 东西 车红 东西 车绿 东西 车黄 南北 车红 南北 车绿 南北 车黄 十六 进制 0-4s 1 0 1 0 1 0 1 1 AB 4-6s 1 0 1 0-1 1 0 1 1 --- 6-8s 1 0 1 1 0 0 1 1 B3 8-12s 0 1 0 1 1 1 0 1 5D 12-14s 0 1 0 1 1 1 0-1 1 ---- 14-16s 0 1 0 1 1 1 1 0 5E 如此一来,东西南北四个路口上的所有的灯都接好了下面讨论计数电路接口问题。 4.3显示电路设计算法和接口 显示电路运用P1口输出,外接四个数码管,我将四个方向上的的数码管精简成为两个,一个代表东西方向的计时,另一个代表南北方向的计时。因为要两个数码管直接接入P1口的话,则P1口的端口数不够用,所以选择了用CD4511来驱动两个数码管。这样两个CD4511正好可以接P1口,但是出现的问题是我们的计数器是8位计数的,如何使得在计数的时候不不产生冲突呢?这里采用了SWAP指令来使显示电路的高位和低位的调换来达到共用P1口的目的其程序如下: MOV A,SECOND1 ;南北路口计时寄存器 MOV B,#0FH ANL A,B ;将SECOND1高4位消除 MOV B,A ;将SECOND1变化后的值赋给B MOV A,SECOND2 ;东西路口计时寄存器 SWAP A ;将SECOND2低位和高位互换 ANL A,#0F0H ;将SECOND2的低位消除 ORL A,B ;将东西、南北路计时数合并到P1口输出, 东西路占(p4-p7),南北路占(p0-p3) MOV P1,A ;输出数字显示 其处理的办法是将南北路口计时寄存器中的数送人寄存A,然后给寄存B送数0FH,然后将A和B相与,这样就屏蔽掉了高四位数字,然后再将东西路口计时寄存器中的数送到累加A中,先用SWAP命令让累加A中的高位数和低位数相互调换,然后把累加A中的数和F0H相与,这样就屏蔽掉了东西路口寄存器中的低四位数,然后将累加A中的数和B寄存中的数进行或,最后把得到的数送到P1口。处理好了数字显示问题,下面看看延时的问题。 4.4延时程序 单片机中延时的方法很多,但是最为准确的是用定时器和计数器来达到延时的目的。本设计中采用的是定时器计数的方法,定时计数方式是方式1,为了达到开关效应,使GATE为高电平的做法,下面介绍定时/计数器方式寄存器TMOD和定时/计数器控制寄存器TCON 表4-1 寄存器TMOD的内部参数 TMOD (89H) D7 D6 D5 D4 D3 D2 D1 D0 GATE C/ M1 M0 GATE C/ M1 M0 C/为0时设定为定时器工作方式,为1的时候设定为计数器方式。 GATE为0时软件控制位TR0或TR1置1即可启动定时器/计数器,GATE为1时除了TR0或TR1需要置1外外中断INT0或INT1为1方可以启动定时器。 M1和M0是设定定时器工作方式的量其选择情况如下表所示。 表4-2 M1和M0控制的计数方式 M1 M0 工作方式 功能说明 0 0 方式0 13位定时/计数器 0 1 方式1 16位定时/计数器 1 0 方式2 自动重装8位定时计数器 1 1 方式3 定时器0分成两个8位计数器 因为本设计中采用的是16位定时器,而且要求控制定时器的启动在合上开关后,所以要让计时器TMOD的GATE为高电平‘1’这样TMOD初值为09H计数方式为十六进制计数 TCON是定时/计数器控制寄存器,TCON的作用是控制定时器的启动,停止,标志定时器的溢出和中断情况。格式如下: 表4-3 TCON内部参数 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1/TF0:定时器1和定时器0溢出标志位。计数器为溢出时TF置1。中断允许的情况下可以硬件自动清零,中断不允许时由软件清零。 TR1/TR0:定时/计数器1和定时/计数器0运行控制位,为高电平1时启动定时器。 IE1/IE0:外中断请求标志位。 IT1/IT0:外中断触发方式选择位。 用方式1计数则其计数大小为M=216=65536 时序:时序就是单片机中的定时单位,主要有节拍、状态、机器周期、指令周期。 节拍与状态:震荡脉冲的周期叫节拍。节拍的二分频称为状态。 机器周期:单片机AT89S52中的机器周期为6个状态。因为一个状态为两个拍节,所以一个机器周期就是脉冲震荡的十二分频 指令周期:一条指令执行的周期为指令周期。 因为我们用的单片机的震荡频率为12MHz,一个周期为1us,如果用的是6MHz的话,一个机器周期为2us。因为我们采用的是AT89S52其机器周期为1us,这样我们计数1秒的方法是先计数50000即50ms然后再循环20次,就可以得到1s的延时。 计数初值的计算方法是: 计数初值=最大计数值-基本计数值=65536-50000=15536=3CB0H 所以把3C赋给TH0,把B0赋给TL0。程序如下: START: MOV R0,20; 置1s倒计时初值 MOV TH0,3CH; 将3C赋给定时器高8位 MOV TL0,0B0H; 将B0赋给定时器低8位 SETB TR0; 定时器计数开始 JNB TF0,START; 判断50ms到没,未到继续循环 DJNZ R0,START; 判断1s到没,未到继续循环 在调用过程中在让其分别循环8、4、2次就使红、绿、黄三色灯延时点亮。 4.5 中断 中断就是使CPU在遇到中断请求的情况下,处理完当前操作后,转向中断程序进行紧急事件的处理。中断有以下三个特点: 1. 分时操作:中断可以解决快速的CPU和慢速的外设之间的矛盾,使CPU和外设同时工作。 2. 实时处理:在实时控制中,现场的各种参数信息可以通过向CPU发出中断请求来要求CPU及时处理。 3. 故障处理:针对难以预料的故障可以由外设向CPU发送中断请求使CPU转向故障源进行处理。 本设计中采用了中断程序来显示数码管数字。其设计如下 ORG 0003H ;中断入口 LJMP INT_INT0 ORG 0100H SETB EA ;开总中断 SETB EX0 ;外中断0允许 INT_INT0: PUSH ACC ;保护现场 PUSH PSW CLR EA INT_RETI: LCALL DISPLAY ;显示计时数字 CLR EA ;关总中断 CLR EX0 ;关外中断 POP PSW ;恢复现场 POP ACC RETI ;中断返回 总结 2010年11月,我开始了我的毕业论文写作工作,时至今日,论文已经完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了一个月的奋战,在紧张而又充实的毕业时光中,论文终于落下了帷幕。在这次毕业论文的写作过程中,我拥有了无数难忘的回忆和无尽的收获。 2010年8月初,在老师的推荐和同学的建议,再根据自我的评估和测算,我以“交通灯控制系统”作为我的毕业论文设计题目。当开题报告定下来的时候,我正在富士康工作,所带的书籍中的资料有限,时间紧迫,我只能将其推到十一月中旬返校后才开始毕业设计的研发,在收集资料之前,我先和老师商讨过,决定使用单片机来完成设计,然而单片机的课程是本学期才开设的一门新课,对我来说是一个比较大的挑战。在导师细心的指导和我自己的钻研下,通过与同学交流,我终于有了设计的眉目,由于在一个星期左右的时间里,我对单片机的基础知识狠命啃咬中,掌握了一些基本的原理,这在我以后开发本设计产品时起到了重要的作用,通过资料的查询,我先是设计出一个计时器的雏形,可是到此并不能够使其与我设计的外围指示灯电路相互连。在学习中断以后,我开始将两个模块组合在一起,开发出了简化的电路,然后才正式的将简化电路做成有车行道的交通灯控制系统。由于电路上的改变,原来的程序也发生了巨大的变化,同过十几次的修改完善,终于开发出来了这个能够基本符合要求的交通灯控制系统。 在这个控制系统中,我采用了节省P口的方法,将四个方向上的人行横道红绿灯简化成两个状态,这样更加接近生活中的交通灯控制系统,东西的雏形是做出来了,扩展的功能也基本完成,可是烦恼的是如何来体现设计的新颖呢,我决定将我所有的设计思路都写入这篇论文中,设计中我参考了B语言,微机原理,数字电路,模拟电路,单片机原理及应用等书籍。在这个过程中,做了大量的分析,学到了很多我以前没有学到的东西,对我来说是一件不错的收获。 在此我要特别感谢给予我建议和支持的张艳红和龙舰涵两位老师,在他们的帮助下我的设计才能够如此迅速的成功完成。 附录1:交通灯控制系统仿真全图附录前面还有致谢和参考文献 附录2 :交通灯控制系统源程序 SECOND1 EQU 30H ;A路口计时寄存器低位 SECOND2 EQU 31H ;B路口计时寄存器高位 ORG 0000H LJMP START ORG 0003H LJMP INT_INT0 ORG 0100H START: MOV TMOD,#09H ;置T0为工作方式1,16位计数器 MOV SECOND1,#0FFH MOV SECOND2,#0FFH MOV TH0,#3CH ;3c=60 MOV TL0,#0B0H ;B0=208 置T0定时初值50ms SETB EA ;开总中断 SETB EX0 ;外中断0允许 CLR TF0 ;计时器中断溢出清零 SETB TR0 ;启动T0 MOV A,#0FFH MOV P0,A ;关闭不相关的LED CLR INT0 JNB INT0,START ;************************************* ;************************************* LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s MOV R3,#4 ;A路绿灯亮4s MOV SECOND1,#8 ;A路口计时显示初值8s MOV SECOND2,#6 ;B路口计时显示初值6s LCALL DISPLAY ;显示计时 MOV P0,#0ABH ;状态1 A路绿灯,B路红灯 WAIT1: JNB TF0,WAIT1 ;查询50ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值50ms,3C=60 MOV TL0,#0B0H ;B0=176 DJNZ R2,WAIT1 ;判断1s到否?未到继续状态1 MOV R2,#20 ;置1s计数初值 DEC SECOND1 ;A路口显示时间减1s DEC SECOND2 ;B路口显示时间减1s LCALL DISPLAY ;显示数码管数字 DJNZ R3,WAIT1 ;状态1维持4s ;******************************************* MOV R2,#5 ;置1s计数初值 20 MOV R3,#2 ;A路绿灯闪2s MOV R4,#4 ;闪烁间隔200ms MOV P0,#0ABH ;A绿灯闪烁B路继续红灯 WAIT2: JNB TF0,WAIT2 ;查询50ms到否 CLR TF0 MOV TH0,#3CH ;恢复T0定时初值50ms MOV TL0,#0B0H DJNZ R4,WAIT2 ;判断200ms到否?未到继续状态2 CPL P0.4 ;A绿灯闪 MOV R4,#4 ;闪烁间隔0.5s DJNZ R2,WAIT2 ;判1s到否?未到继续状态2 MOV R2,#5 ;置50ms计数初值 DEC SECOND1 ;A路口显示时间减1s DEC SECOND2 ;B路口显示时间减1s LCALL DISPLAY ;显示数码管数字 DJNZ R3,WAIT2 ;状态2维持2s ;**************************************** MOV R2,#20 ;置1s计数初值 MOV R3,#2 ;A黄灯亮2s,B红灯 MOV SECOND2,#2 ;B路口计时显示初值2s LCALL DISPLAY ;显示数字 WAIT3: MOV
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服