基于单片机控制交通灯 毕业论文.doc_第1页
基于单片机控制交通灯 毕业论文.doc_第2页
基于单片机控制交通灯 毕业论文.doc_第3页
基于单片机控制交通灯 毕业论文.doc_第4页
基于单片机控制交通灯 毕业论文.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏农牧科技职业学院 毕业设计(论文) 题目: 基于单片机控制交通灯 姓名: xxxxxxxxx 学号: xxxxxxxxxx 二级院系部: 机电工程系 班级: 应用电子 10 专业: 应用电子技术 指导教师: xxx 职称: 讲师 二 一三 年 五 月 i 【摘要】 随着全球城市化进程的加快,机动车的使用数量也越来越多,造成了城市交通上的各 种问题,如何控制好城市的交通已经成为一个全球化的问题。交通灯的出现使交通得以 有效管制,对于疏导交通流量,提高交通通行能力,减少交通事故有明显效果。本设计利 用单片机8051为核心部件,外加定时器复位电路晶振电路显示电路设计一个比较 符合交通规则的模拟交通灯。设计中通过led七段数码管作为计时显示用,用发光二级管 指示车辆的通行,定时器工作于方式一并定时50ms,配合软件计时器调用中断程序,中断 程序设置20次,从而达到1s的定时,同时调用显示程序,显示倒计时的时间。本交通灯系 统简单实用性强成本低使用维护方便,软件功能强,运行稳定可靠的特点。 【关键词】 单片机;交通灯;定时器 ii abstract as the global urbanization speeding up, the number of motor vehicles more and more, caused the various problems of urban traffic, how to control the urban traffic has become a global problem. the emergence of the traffic light is able to effectively control the traffic, for facilitating traffic flow, improve the traffic capacity, reduce traffic accidents have obvious effect. i pick made traffic lights project, analysis of the problems of modern urban traffic control and management status quo, combined with the actual situation of urban and rural traffic illustrates the working principle of traffic light control system, this design 8051 microcontroller as the core components, plus timer, reset circuit, crystals circuit, display circuit design a simulation traffic light compared with the traffic rules. through the design of led display with seven segment digital tube for timing, using leds indicate vehicle traffic, timer timing 50 ms, along with all the work on ways to cooperate with software timer calls interrupt program, interrupt program set up 20 times, so as to achieve the timing of the 1 s, at the same time call display program, display the countdown time. this traffic light system is simple, strong practicability, low cost, convenient in operation and maintenance, software function is strong, stable running, reliable characteristic. key words single chip microcomputer; the traffic light; the timer iii 目 录 【摘要】 .i 【关键词】 .i key words.ii 绪 论 .1 1.设计任务及方案选定 .2 1.1 设计任务 2 1.2 设计要求 .2 1.3 方案选定 3 2. 系统所用芯片简介 4 2.1 mcs-51 单片机简介 .4 2.1.1 mcs-51 单片机内部结构 .4 2.1.2 mcs-51 的引脚说明 .5 2.2 8255a 并行接口芯片内部结构 8 2.3 74ls373 芯片简介 9 3. 系统硬件设计 .11 3.1 交通灯硬件线路图 .11 3.2 系统工作原理 11 4.软件设计 13 4.1 延时方法的设定 .13 4.2 软件延时 13 4.3 时间及信号灯的显示 14 4.3.1 8255a 并行口的扩展 .14 4.3.2 显示原理 .14 4.3.3 led 灯简介 .14 4.3.4 8255a 输出信号与数码管的连接 .15 4.4 程序设计 16 4.4.1 流程图 .16 4.4.2 程序源代码 .16 设计总结 22 致 谢 .23 参考文献 24 1 绪 论 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。 但这一技术在 19 世纪就已出现了。 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914 年始安装于纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表示“通行” 。 1918 年,又出现了带控制的红绿灯。带控制的红绿灯,一种是把压力探测器安在 地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按 一下嗽叭,就使红灯变为绿灯。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减 少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信 号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯, 除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆 和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停 车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停 车线而不能安全停车时可以进入交叉路口。 交通信号灯控制电路是由振荡电路、三进制计数器、译码电路、显示驱动电路和开 关控制电路等电路组成。在本课程设计中,通过 eda 设计程序使十字路口的工作顺序为 主干道每次通行时间都设为 30 秒、支干道每次通行间为 20 秒,时间可设置修改。在绿 灯转为红灯时,要求黄灯先亮 5 秒钟,才能变换运行车道;后 5 秒黄灯亮,黄灯亮时, 要求每秒闪亮一次。东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮 的时间都用显示器进行显示(采用计时的方法),依次重复。 本设计采用 8051 单片机实现汽车尾灯控制电路,其电路设计比较简单,外围电路 少,易于控制和检查,单片机的应用具有范围广的特点,对各个行业的技术改造和产品 智能化的更新换代起着重要的推动作用。采用单片机来对他们控制,不仅具有控制方便、 简单和灵活性大等特点,而且还可以大幅度提高被控对象的技术指标,从而大大提高控 制器的质量。 2 1.设计任务及方案选定 1.1 设计任务 本系统由单片机系统、键盘、led 显示、交通灯演示系统组成。最后,系统要求实 现如下的交通灯的功能: 1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交 替运行,主干道每次通行时间都设为 30 秒、支干道每次通行间为 20 秒,时间可设置修 改。 2)在绿灯转为红灯时,要求黄灯先亮 5 秒钟,才能变换运行车道。 3)黄灯亮时,要求每秒闪亮一次。 4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用 显示器进行显示(采用计时的方法) 。 5)依次重复。 1.2 设计要求 该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、 微机原理、微机接口技术等课程方面的知识,设计一个采用 8051 单片机控制的交通灯 控制电路。 根据设计功能及要求,我们可得系统的原理框图如图 1-1 所示。 图 1-1 系统的原理框图 根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。 具体设计思路如下:收集并整理资料,硬件设计,软件设计,proteus 仿真,设计体会 3 与总结。 1.3 方案选定 交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在 醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车, 对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情 况, 如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在 软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。 硬件系统是指构成 单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、 输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通 常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对 象等硬件和软件,才能构成一个单片机应用系统。该交通灯拟系统的硬件部分主要由键 盘、显示和运算部分组成。按照题目的设计要求,本课题需要使用 led 数码管显示和扩 展键盘。在该交通灯系统的设计中采用 8051 单片机。 4 2. 系统所用芯片简介 2.1 mcs-51 单片机简介 2.1.1 mcs-51 单片机内部结构 8051 是 mcs-51 系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051 单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、 并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总 线,现在我们分别加以说明,如图 2-1 所示。 图 2-1 8051 内部结构图 中央处理器: 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调的工作,完成运算 和控制输入输出功能等操作。 数据存储器(ram): 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一 编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户 数据,所以,用户能使用的 ram 只有 128 个,可存放读写的数据,运算的中间结果或用 户定义的字型表。 程序存储器(rom): 8051 共有 4096 个 8 位掩膜 rom,用于存放用户程序,原始数据或表格。 定时/计数器: 5 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序 转向。 并行输入输出(i/o)口: 8051 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对外部数据的传输。 全双工串行口: 8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口 既可以用作异步通信收发器,也可以当同步移位器使用。 中断系统: 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中 断,可满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路: 8051 内置最高频率达 12mhz 的时钟电路,用于产生整个单片机运行的脉冲时序, 但 8051 单片机需外置振荡电容。 2.1.2 mcs-51 的引脚说明 chmos 制造工艺的 8051,除采用 40 脚双列直插式封装外,还采用方形的封装方 式。现在我们对这些引脚的功能加以说明,如图 2-2 所示。 图 2-2 8051 引脚示意图 (1)p0 口(3239) 8 位漏极开路型双向 i/o 口。在外接存储器时,p0 口作为低 8 位地址数据总线复用口,通过分时操作,先传送低 8 位地址,利用 ale 信号的下降沿 6 特地址锁存,然后作为 8 位双向数据总线使用,用来传送 8 位数据。在对片内 eprom 编 程时,p0 口接收指令代码;而在内部程序验证时,则输出指令代码,并要求外接上拉 电阻。po 口能以吸收电流的方式驱动 8 个 i0sttl 负载。 (2)p1 口(18) 8 位具有内部上拉电阻的难双向 i/o 口。在片内 eprom 编程及校 验时,它接收低 8 位地址。p1 口能驱动 3 个 lsttl 负载。其中 p10 和 p1.1 还具有第 二变异功能:p1.0(t2)为定时器计数器 2 的外部事件脉冲输入端。p1.1(t2ex)为定时 器计数器 2 的捕捉和重新装入触发脉冲输入端。 (3)p2 口(2128) 8 位具有内部上拉电阻的准双向 i/o 口。在外接存储器时,p2 口作为高 8 位地址总线。atmel 在对片内 eprom 编程、校验时,它接收高位地址。p2u 能驱动 3 个 lsttl 负载。 (4)p3 口(10l7) 8 位带有内部上拉电阻的准双向 i/o 口。特殊功能(或称第二变 异功能)。 p3.0(rxd):串行输入端口。 p31(txd):串行输出端口。 p3.2(int0):外部中断 0 输入端。 p33(1ntl):外部中断 1 输入端。 p34(t0):定时器计数器 0 外部输入端。 p35(t1):定时器计数器 1al 部输入端。 p36(wr):外部数据存储器写选通。 p37(rd):外部数据存储器读选通。 p3 口能驱动 3 个 lsttl 负载。 pin9:reset/vpd复位信号复用脚,当 8051 通电,时钟电路开始工作,在 reset 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 pc 指向 0000h,p0-p3 输出口全部为高电平,堆栈指针写入 07h,其它专用寄存器被清 “0”。reset 由高电平下降为低电平后,系统即从 0000h 地址开始执行程序。然而,初 始复位不改变 ram(包括工作寄存器 r0-r7)的状态,8051 的初始态。8051 的复位方式 可以是自动复位,也可以是手动复位,见下图 2-3。此外,reset/v pd还是一复用脚, vcc掉电其间,此脚可接上备用电源,以保证单片机内部 ram 的数据不丢失。时钟方式 见图 2-4 所示。 7 (a)上电自动复位 (b)手动复位电路 (c)内部时钟方式 (d)外部时钟方式 图 2-3 复位电路 图 2-4 时钟方式 pin30:ale/ 当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位 字节。而访问内部程序存储器时,ale 端将有一个 1/6 时钟频率的正脉冲信号,这个信 号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访 问外部程序存储器,ale 会跳过一个脉冲。 pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,pc 的 16 位地 址数据将出现在 p0 和 p2 口上,外部程序存储器则把指令数据放到 p0 口上,由 cpu 读 入并执行。 pin31:ea/vpp程序存储器的内外部选通线,内置有 4kb 的程序存储器,当 ea 为 高电平并且程序地址小于 4kb 时,读取内部程序存储器指令数据,而超过 4kb 地址则读 取外部指令数据。如 ea 为低电平,则不管地址大小,一律读取外部程序存储器指令。 显然,对内部无程序存储器的 8031,ea 端必须接地。 pin40:vcc 电源+5v 输入。 pin20:vssgnd 接地端。 pin18和 pin19: xtal1和 xtal2 晶振引脚。当使用芯片内部时钟时,此二引脚用 于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 在编程时,ea/v pp脚还需加上12v 的编程电压。 8 2.2 8255a 并行接口芯片内部结构 8255a 的内部结构如图 2-5 所示,由三部分电路组成:与 cpu 的接口电路、内部控 制逻辑电路和与外设连接的输入/输出接口电路。 图 2-5 8255a 内部结构图 (1)与 cpu 的接口电路 与 cpu 的接口电路由数据总线缓冲器和读/写控制逻辑组成。数据总线缓冲器是一 个三态、双向、8位寄存器,8条数据线 d0d7与系统数据总线连接,构成 cpu 与8255a 之间信息传送的通道,cpu 通过执行输出指令向8255a 写入控制命令或往外设传送数据, 通过执行输入指令读取外设输入的数据。 读/写控制逻辑电路用来接收 cpu 系统总线的读信号 ,写信号 ,片选择信号 ,端口选择信号 a1,a0和复位信号 reset,用于控制8255a 内部寄存器的读/写操作 和复位操作。 (2)内部控制逻辑电路 内部控制逻辑包括 a 组控制与 b 组控制两部分。a 组控制寄存器用来控制 a 口 pa7pa0和 c 口的高4位 pc7pc4。b 组控制寄存器用来控制 b 口 pb7pb0和 c 口的低 4位 pc3pc0。 它们接收 cpu 发送来的控制命令,对 a, b, c 3个端口的输入/输出方式进行控制。 9 (3)输入/输出接口电路 8255a 片内有 a, b, c 3个8位并行端口,a 口和 b 口分别有1个8位的数据输出锁存 /缓冲器和1个8位数据输入锁存器,c 口有1个8位数据输出锁存/缓冲器和1个8位数据输 入缓冲器,用于存放 cpu 与外部设备交换的数据。 对于8255a 的3个数据端口和1个控制端口,数据端口既可以写入数据又可以读出数 据,控制端口只能写入命令而不能读出,读/写控制信号( , )和端口选择信号( , a1和 a0)的状态组合可以实现 a, b, c 3个端口和控制端口的读/写操作。8255a 的端口分配及读/写功能见表2-1。 表2-1 8255a 的端口分配及读/写功能 a1 a0 功能 0 0 1 0 0 输入指令 a 口 0 0 1 0 1 输入指令 b 口 0 0 1 1 0 输入指令 c 口 0 0 1 1 1 命令写入控制寄存器 0 1 0 0 0 读出 a 口数据 0 1 0 0 1 读出 b 口数据 0 1 0 1 0 读出 c 口数据 0 1 0 1 1 非法操作 2.3 74ls373 芯片简介 当 74ls373 用作地址锁存器时如图 2-6 所示。应使 0e 为低电平,此时锁存使能端 c 为高电平时,输出 q0q7 状态与输入端 d1d7 状态相同;当 c 发生负的跳变时,输入 端 d0d7 数据锁入 q0q7。51 单片机的 ale 信号可以直接与 74ls373 的 c 连接。在 mcs-51 单片机系统中,常采用 74ls373 作为地址锁存器使用,其连接方法如上图所示。 其中输入端 d0d7 接至单片机的 p0 口,输出端提供的是低 8 位地址,g 端接至单片机 的地址锁存允许信号 ale。输出允许端 e 接地,表示输出三态门一直打开。 图2-6 74ls373内部引脚示意图 10 当三态允许控制端0e 为低电平时,q0q7为正常逻辑状态,可用来驱动负载或总 线。当0e 为高电平时,q0q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存 器内部的逻辑操作不受影响。当锁存允许端 le 为高电平时, q 随数据 d 而变。当 le 为低电平时,d 被锁存在已建立的数据电平。当 le 端施密特触发器的输入滞后作用, 使交流和直流噪声抗扰度被改善 400mv。其真值表如表2-2所示。 表 2-2 74ls373 真值表 dn le oe qn h h l h l h l l x l l q0 x x h 高阻态 11 3. 系统硬件设计 3.1 交通灯硬件线路图 交通灯硬件线路图如图 3-1 所示。 图 3-1 交通灯硬件线路图 3.2 系统工作原理 (1)开关键盘输入交通灯初始时间,通过 8051 单片机 p1 输入到系统。 12 (2)由 8051 单片机的定时器每秒钟通过 p0 口向 8255a 的数据口送信息,由 8255a 的 pa 口显示红、绿、黄灯的燃亮情况;由 8255a 的 pc 口显示每个灯的燃亮时间。 (3)8051 通过设置各个信号等的燃亮时间,绿、红时间分别为 60 秒、80 秒循环由 8255a 的 p0 口向 8255a 的数据口输出。 (4)通过 8051 单片机的 p3.0 位来控制系统是工作或设置初值,当牌位 0 就对系统进 行初始化,为 1 系统就开始工作。 (5)红灯倒计时时间,当时间结束时,黄灯闪烁 5s 后结束。 (6)绿灯时间倒计时完毕,重新循环。 13 4.软件设计 4.1 延时方法的设定 延时方法可以有两种一中是利用 mcs-51 内部定时器才生溢出中断来确定 1 秒的时 间,另一种是采用软延时的方法。本设计采用软件延时的方法。 4.2 软件延时 mcs-51 的工作频率为 2-12mhz,我们选用的 8051 单片机的工作频率为 6mhz。机器 周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*(1/6m) =2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确 定 1 秒的时间。 具体的延时程序分析: delay: mov r4,#08h ;延时 1 秒子程序 de2: lcall delay1 djnz r4,de2 ret delay1: mov r6,#0 ;延时 125us 子程序 mov r5,#0 de1: djnz r5,$ djnz r6,de1 ret mov rn,#data ;字节数数为 2,机器周期数为 1 所以此指令的执行时间为 2us,delay1 为一个双重循坏 循环次数为 256*256=65536 所以延时时间=65536*2=131072us 约为 125ms。 delay r4 设置的初值为 8, 主延时程序循环 8 次,所以 125ms*8= 1 秒,由于单片 机的运行速度很快其他的指令执行时间可以忽略不计。 14 4.3 时间及信号灯的显示 4.3.1 8255a 并行口的扩展 8051 虽然有 4 个 8 位 i/o 端口,但真正能提供借用的只有 p1 口,因为 p2 和 p0 口通 常用于传送外部传送地址和数据,p3 口也有它的第二功能。由于我们用外部输入设定红 绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个 i/0 端口。 扩展的方法有两种:(1)借用外部 ram 地址来扩展 i/o 端口;(2)采用 i/o 接口 新片来扩充。我们用 8255a 并行接口信片来扩展 i/o 端口。 4.3.2 显示原理 当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显 示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显 示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋 初值 ,重新进入循环。 4.3.3 led 灯简介 发光二极管(led 是一种由磷化镓(gap)等半导体材料制成的,能直接将电能转 变成光能的发光显示器件。当其内部有一一电流通过时,它就会发光。7 段数码管一般 由 8 个发光二极管组成,其中由 7 个细长的发光二极管组成数字显示,另外一个圆形的 发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相 应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符 数量也有限,但其控制简单,使有也方便。 常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,如图 4- 1 所示。根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料, 您可以判断使用的是何总接口类型 led 数码管中各段发光二极管的 伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其 正向电流与发光亮度成正比。由于常规的数码管起辉电流只有 12 ma,最大极限电流 也只有 1030 ma,所以它的输入端在 5 v 电源或高于 ttl 高电平(3.5 v)的电路信号 相接时,一定要串加限流电阻,以免损坏器。 15 (a)引脚图 (b) 共阴极 (c) 共阳极 图 4-1 led 数码管引脚图 4.3.4 8255a 输出信号与数码管的连接 led 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而 显示不同的字形如 sp,g,f,e,d,c,b,a 管角上加上 7fh,所以 sp 上为 0 伏,不亮其余 为 ttl 高电平,全亮则显示为 8,如表 4-1 所示。 表 4-1 驱动代码表 显示数值 dop g f e d c b a 驱动代码(16 进制) 0 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 0 1 1 0 06h 2 0 1 0 1 1 0 1 1 5bh 3 0 1 0 0 1 1 1 1 4fh 4 0 1 1 0 0 1 1 0 66h 5 0 1 1 0 1 1 0 0 6dh 6 0 1 1 1 1 1 0 0 7dh 7 0 0 0 0 0 1 1 1 07h 8 0 1 1 1 1 1 1 1 7fh 16 4.4 程序设计 4.4.1 流程图 软件流程图图如图 4-2 所示。 开始 初始化 定初值 红灯倒计时 倒计时完毕 黄灯闪 5s 绿灯倒计时 倒计时完毕 黄灯闪 5s 结束 图 4-2 程序流程图 4.4.2 程序源代码 org 0000h ; 主程序的入口地址 ljmp main ; 跳转到主程序的开始处 org 0003h ; 外部中断 0 的中断程序入口地址 org 000bh ; 定时器 0 的中断程序入口地址 ljmp t0_int ;跳转到中断服务程序处 org 0013h ;外部中断 1 的中断程序入口地址 main : mov sp,#50h mov ie,#8eh ;cpu 开中断,允许 t0 中断,t1 中断和外部中断 1 中断 mov tmod,#51h ;设置 t1 为计数方式,t0 为定时方式,且都工作于模式 1 17 mov th1,#00h ;t1 计数器清零 mov tl1,#00h setb tr1 ;启动 t1 计时器 setb ex1 ;允许 int1 中断 setb it1 ;选择边沿触发方式 mov dptr ,#0003h mov a, #80h ;给 8255a 赋初值,8255a 工作于方式 0 movx dptr, a again: jb p3.1,n0 ; 判断是否要设定东西方向红绿灯时间的初值,若 p3.1 为 1 则跳转 mov a,p1 jb p1.7,red ;判断 p1.7 是否为 1,若为 1 则设定红灯时间,否则设定 绿灯时间 mov r0,#00h ;r0 清零 mov r0,a ;存入东西方向绿灯初始时间 mov r3,a lcall disp1 lcall delay ajmp again red: mov a,p1 anl a,#7fh ; p1.7 置 0 mov r7,#00h ; r7 清零 mov r7,a ;存入东西方向红灯初始时间 mov r3,a lcall disp1 lcall delay ajmp again n0: setb tr0 ;启动 t0 计时器 mov 76h,r7 ; 红灯时间存入 76h n00: mov a,76h ;东西方向禁止,南北方向通行 18 mov r3,a mov dptr,#0000h ;置 8255a 口,东西方向红灯亮,南北方向绿灯亮 mov a,#0ddh movx dptr, a n01: jb p2.0,b0 n02: setb p3.0 cjne r3,#00h,n0 ;比较 r3 中的值是否为 0,不为 0 转到当前指令处执行 n1: setb p3.0 mov r3,#05h mov dptr,#0000h ; 置 8255a 口,东西,南北方向黄灯亮 mov a,#0d4h movx dptr,a n11: mov r4,#00h n12: cjne r4,#7dh, ;黄灯持续亮 0.5 秒 n13: mov dptr,#0000h ; 置 8255a 口,南北方向黄灯灭 mov a,#0ddh movx dptr,a n14: mov r4,#00h cjne r4,#7dh, ;黄灯持续灭 0.5 秒 cjne r3,#00h,n1 ;闪烁时间达 5 秒则退出 n2: mov r7,#00h mov a,r0 ;东西通行,南北禁止 mov r3,a; mov dptr,#0000h ;置 8255a 口,东西方向绿灯亮,南北方向红灯亮 mov a,#0ebh movx dptr,a n21: jb p2.0,t03 n22: cjne r3,#00h,n21 n3: mov r3,#05h mov dptr,#0000h ;置 8255a 口,东西,南北方向黄灯亮 19 mov a,#0e2h movx dptr,a n31: mov r4,#00h cjne r4,#7dh, ;黄灯持续亮 0.5 秒 n32: mov dptr,#0000h ;置 8255a 口,南北方向黄灯灭 mov a,#0ebh movx dptr,a n33: mov r4,#00h cjne r4,#7dh ;黄灯持续灭 0.5 秒 cjne r3,#00h,n3 ;闪烁时间达 5 秒则退出 sjmp n00 n7: reti t0_int:mov tl0,#9ah ;给定时器 t0 送定时 10ms 的初值 mov th0,#0f1h inc r4 inc r5 cjne r5,#0fah,t01 ;判断延时是否够一秒,不够则调用显示子程序 mov r5,#00h ;r5 清零 dec r3;倒计时初值减一 t01: acall disp ;调用显示子程序 reti ;中断返回 disp: jnb p2.4,t02 disp1: mov b,#0ah mov a,r3 ;r3 中值二转十显示转换 div ab mov 79h,a mov 7ah,b dis: mov a,79h ;显示十位 mov dptr,#tab movc a,a+dptr 20 mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0f7h movx dptr,a lcall delay ds2: mov a,7ah ;显示个位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0fbh movx dptr,a ret t03: mov a,r3 subb a,#00h jz n3 jb p2.0,t03 inc r7 cjne r7,#64h,e1 mov r7,#00h ;中断到 100 次则清零 e1: sjmp n22; t02: mov b,#0ah mov a,r7 ;r7 中值二转十显示转换 div ab mov 79h,a mov 7ah,b dis3: mov a,79h ;显示十位 mov dptr,#tab 21 movc a,a+dptr mov dptr,#000

温馨提示

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

评论

0/150

提交评论