电子毕业论文-交通指示灯自动控制的实现_第1页
电子毕业论文-交通指示灯自动控制的实现_第2页
电子毕业论文-交通指示灯自动控制的实现_第3页
电子毕业论文-交通指示灯自动控制的实现_第4页
电子毕业论文-交通指示灯自动控制的实现_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2013 届本科毕业设计(论文)绪论红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。据统计,我国的单片机年容量已达 13 亿片,且每年以大约 16%的速度增长,但相对于世界市场我国的占有率还不到 1%。特别是沿海地区的电子企业等生产电子产品多数用到单片机,并不断地辐射向内地。所以,单片机的发展在我国是有着广阔前景的。当然对单片机实验装置的研究和开发,在我国以及国外变得越来越重视。然而,对单片机实验装置的研究主要是对单片机的研究,研究和开发功能齐全、功耗低、易于读写操作的单片机系列,把单片机的新型研究成果应用于单片机实验装置的开发和研究,使得单片机实验装置更加完善。现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从 8 位、16 位到 32 位,数不胜数,应有尽有,有与主流 C51 系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。2013 届本科毕业设计(论文)第 1 章 单片机概述当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。本文主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。单片微机(Single-Chip Microcomputer)简称单片机,也有的叫做微处理( Micro-Processor 简写 P)或微控制器(Micro-Controller 简写 C),通常统称 微型处理部件(Micro Controller Unit 简写 MCU)。一般的说,单片机就是在一 块硅片上集成 CPU、 RAM、ROM、定时器/计数器、和多种 I/O 的完整的数字处理系统 。 二十世纪,微电子、IC 集成电路行业发展迅速,其中单片机行业的发展最引人 注目。单片机功能强、价格便宜、使用灵活,在计算机应用领域中发挥着极其重要 的作用。从 INTEL 公司于 1971 年生产第一颗单片机Intel-4004 开始,开创了电子应 用的智能化 新时代。单片机以其高性价比和灵活性,牢固树立了其在嵌入式微 控制系统中的霸主地位,在 PC 机以286、386、Pentium、PIII 高速更新换代的 同时,单片机却始终如一 保持旺盛的生命力。例如,MCS-51 系列单片机已有十 多年的生命期,如今仍保持着上升的态势就充分证明了这一点。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。目前单片机正朝着高性能和多品种方向发展,它们的 CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压低功耗。十字路口交通指示灯是单片机的用途之一。从最早的红、绿两种颜色到红、黄、绿三色还有专用人行道指示。在本设计里用到的 8051 单片机以及它的外部扩展器件都是单片机的基本器件。 单片机现代电子技术应用中的主流技术,特别是在工业和民用的独立电子系统中,单片机起着系统核心的作用。由于单片机系统特有的固件特性,使单片机在 SOC 技术中占有重要的地位。 科技的进步需要技术不断的提升。一块大而复杂的模 拟电路花费了您巨大的精力,繁多的元器件增加了您的成 本。而现在,只需要一块几厘米见方的单片机,写入简单 的程序,就可以使您以前的电路简单很多。相信您在使用 并掌握了单片机技术后,不管在您今后开发或是工作上, 一定会带来意想不到的惊喜。2013 届本科毕业设计(论文)第 2 章 芯片的选择与简介2.1 MCS-51 芯片简介AT89S51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89S51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案8051 单片机的外形采用 40 条引脚双列直插封装(DIP)或 LCC/QFP 封装. DIP 的引脚和逻辑符号如下图所示:1 2 3 4 5 6ABCD654321DCBATitleNumber RevisionSizeBDate: 10-May-2006 Sheet of File: C:PROGRAM FILESDESIGN EXPLORER 99 SEEXAMPLESMyDesign.ddbDrawn By:1234567891011121314151617181920 2122232425262728293031323334353637383940P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7VCCGNDXTAL1XTAL2RD, P3.7RW, P3.6T1, P3.5T0, P3.4INT0, P3.2INT1, P3.3RXD, P3.0TXD, P3.1RESET/VpdEA/VppALE/PROGPSEN80511011121314151617 181920402930319P1P2P08051RXDTXDINT0INT1T0T1WRRDEA/VppRST/VpdALE/PROGPSENVCCGNDXTAL1XTAL2图 21 8051 管脚图2013 届本科毕业设计(论文)2.1.1 主要特性1、与 MCS-51 兼容2、4K 字节可编程闪烁存储器寿命:1000 写/擦循环数据保留时间:10 年3、全静态工作:0Hz-24Hz4、三级程序存储器锁定5、128*8 位内部 RAM6、32 可编程 I/O 线7、两个 16 位定时器/计数器8、5 个中断源9、可编程串行通道10、低功耗的闲置和掉电模式11、片内振荡器和时钟电路 2.1.2 管脚说明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 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)2013 届本科毕业设计(论文)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.1.3 振荡器特性XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.1.4 芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2013 届本科毕业设计(论文)2.1.5 定时器/计数器方式控制寄存器 TMOD特殊功能寄存器 TMOD 用来确定定时器/计数器 0 和 1 的工作方式,其低 4 位用于定时器/计数器 0,高 4 位用于定时器/计数器 1,TMOD 的格式如下。D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 (1)定时器/计数器功能选择位 C/T。C/T=“1”为计数器方式,C/T=“0”为定时器方式。(2)定时器/计数器工作方式选择位 M0,M1 。定时器/计数器 4 种工作方式的选择由 M1,M0 的值决定,见下表所示。表 2-1 定时器/计数器工作方式M1 M0 工作方式0 0 方式 0 13 位定时器/计数器0 1 方式 1 16 位定时器/计数器1 0 方式 2 具有自动重装初值的 8 位定时器/计数器1 0 方式 3 定时器/计数器 0 分为两个 8 位定时器/计数器,定时器/计数器在此无意义。(3)门控制位 GATE如果 GATE=“1”,定时器/计数器 0 的工作受芯片引脚 INT0(P3.2)控制,定时器/计数器 1 的工作受芯片引脚 INT1(P3.3)控制;如果 GATE=“0”,定时器/计数器的工作与引脚 INT0,INT1 无关。复位时 GATE=“0”2.1.6 MCS-51 的寻址方式 (1)立即寻址 操作数直接出现在指令中,它紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器内,可以立即得到并执行,不需要另去寄存器或存储器等处寻找和取数,故称为立即寻址。 如: MOV A , #40H ;(A)40H 该指令的功能是将立即数 40H 传送到累加器 A 中。(2)直接寻址 指令中直接给出操作数所在的存储器地址,以供寻址取数或存数的寻址方式称为直接寻址。 如: MOV A , 3AH ;(A)(3A)该指令的功能是把内部数据存储 RAM 40H 单元内的内容送到累加器 A。(3)寄存器寻址 选定某寄存器,自该寄存器中读取或存放操作数,以完成指令规定的操作,称为寄存器寻址。 如: MOV A , R0 ;(A)(R0)该指令的功能是把工作寄存器 R0 中的内容传送到累加器 A 中。(4)寄存器间接寻址 由指令指出某一个寄存器的内容作为操作数地址的寻址方法,称为寄存器间接寻址方法,如: MOV A , Rn ; (A)(R1) )该指令的功能是将工作寄存器 R1 的内容所指向的片内 RAM 地址单元的数据传送到累加器 A 中去。2013 届本科毕业设计(论文)(5)基址加变址寻址 基址寄存器加变址寄存器间接寻址,简称变址寻址。如: MOVC A , A+DPTR ;(A)(A)+(DPTR) )(6)相对寻址 相对寻址是以当前程序计数器 PC 值加上指令规定的偏移量rel,而构成实际操作数地址的寻址方法,如: SJMP 08H;(7)位寻址 该指令中直接给出位地址,可以对内部数据存储器 RAM 中的128 位和特殊寄存器 SFR 中的 93 位进行寻址,并且位操作指令可对地址的每一位进行传送及逻辑操作。 MOV 20H , C 2.1.7 MCS51 单片机指令系统MCS51 单片机指令系统分为:数据传送类指令,算术运算类指令,逻辑运算及移位类指令,控制类指令和位操作指令 5 大类,共计 111 条指令。1 数据传送类指令2 算术运算类指令表 2-2 单片机指令名称 助记符 操作数与传送方向加法指令 ADD A#data,direct,Ri,Rn带进位加法指令 ADDC A#data,direct,Ri,Rn带借位减法 SUBB A#data,direct,Ri,Rn加 1 INC A,direct,Ri,Rn,DPTR减 1 DEC A,direct,Ri,Rn乘法指令 MUL AB除法指令 DIV A B十进制调整指令 DA A3 逻辑运算及移位类指令4 控制转移类指令5 位操作类指令6 计数初值的计算定时或计数方式下计数初值如何确定,定时器选择不同的工作方式,不同的操作模式其计数值均不相同。若设最大计数值为 M ,各操作模式下的 M 值为: 模式 0 : M=2 13 =8192 模式 1 : M=2 16 =65536 模式 2 : M=2 8 =256 模式 3 : M=256 ,定时器 T0 分成 2 个独立的 8 位计数器,所以 TH0 、 TL0 的 M 均为 256 。 因为 MCS-51 的两个定时器均为加 1 计数器,当初到最大值( 00H 或 0000H )时产生溢出,将 TF 位置 1 ,可发出溢出中断,因此计数器初值 X 的计算式为: X=M- 计数值式中的 M 由操作模式确定,不同的操作模式计数器的长不相同,故 M 值也不相同。而式中的计数值与定时器的工作方式有关。 1 、计数工作方式时2013 届本科毕业设计(论文)计数工作方式时,计数脉冲由外部引入,是对外部冲进行计数,因此计数值根据要求确定。其计数初值: X=M- 计数值例如:某工序要求对外部脉冲信号计 100 次, X=M-100 a) 、定时工作方式时 定时工作方式时,因为计数脉冲由内部供给,是对机器周期进行计数,故计数脉冲频率为 f cont =f osc 1/12 、计数周期 T=1/f cont =12/f osc 定时工作方式的计数初值 X 等于: X=M- 计数值 =M-t/T=M- ( f osc t ) /12 式中: f osc 为振荡器的振荡频率, t 为要求定时的时间。 定时器有两种工作方式 :即定时和计数工作方式。由 TMOD 的 D6 位和 D2 位选择,其中 D6 位选择 T1 的工作方式, D2 位选择 T0 的工作方式。 =0 工作在定时方式, =1 工作在计数方式。并有四种操作模式: 1 、模式 0 : 13 位计数器, TLi 只用低 5 位。 2 、模式 1 : 16 位计数器。 3 、模式 2 : 8 位自动重装计数器, Thi 的值在计数中不变, Tli 出时,Thi 中的值自动装入 Tli 中。4 、模式 3 : T0 分成 2 个独立的 8 位计数器, T1 停止计数。MCS-51 有 5 个中断源,可分为 2 个中断优先级,即高优先级和低优先级,中断自然优先级: 外部中断 0 ;定时器 0 中断; 外部中断 1 ;定时器 1 中断 ;串行口中断 ;定时器 2 中断 ( 1 )同级或高优先级的中断正在进行中;( 2 )现在的机器周期还不是执行指令的最后一上机器周期,即正在执行的指令还没完成前不响应任何中断;( 3 )正在执行的是中断返回指令 RET1 或是访问专用寄存器 IE 或 IP 的指令,换而言之,在 RETI 或者读写 IE 或 IP 之后,不会马上响应中断请求,至少要在执行其它一要指令之扣才会响应。 b) 中断响应条件 CPU 响应中断的条件有:( 1 )有中断源发出中断请求;( 2 )中断总允许位 EA=1 ,即 CPU 开中断;( 3 )申请中断的中断源的中断允许位为 1 ,即没有被屏蔽。2.1.8 51 单片机的串行接口结构8051 串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的 8051 多机系统也可以通过同步方式,使用 TTL 或 CMOS 移位寄存器来扩充 I/O 口。8051 单片机通过引脚 RXD(P3.0,串行数据接收端)和引脚 TXD(P3.1,串行数据发送端)与外界通讯。SBUF 是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被 CPU 读出数据,一个只能被 CPU 写入数据。串行口的控制与状态寄存器 2.11.1.1 串行口控制寄存器 SCON 2013 届本科毕业设计(论文)它用于定义串行口的工作方式及实施接收和发送控制。字节地址为 98H,其各位定义如下。D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1:串行口工作方式选择位,其定义如下。表 2-3 串行口工作方式SM0、SM1 工作方式 功能描述 波特率 0 0 方式 0 8 位移位寄存器 Fosc/12 0 1 方式 1 10 位 UART 可变 1 0 方式 2 11 位 UART Fosc/64 或fosc/32 1 1 方式 3 11 位 UART 可变 其中 fosc 为晶振频率SM2:多机通讯控制位。在方式 0 时,SM2 一定要等于 0。在方式 1 中,当(SM2)=1 则只有接收到有效停止位时,RI 才置 1。在方式 2 或方式 3 当(SM2)=1 且接收到的第九位数据 RB8=0 时,RI 才置 1。REN:接收允许控制位。由软件置位以允许接收,又由软件清 0 来禁止接收。TB8: 是要发送数据的第 9 位。在方式 2 或方式 3 中,要发送的第 9 位数据,根据需要由软件置 1 或清 0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。RB8:接收到的数据的第 9 位。在方式 0 中不使用 RB8。在方式 1 中,若(SM2)=0,RB8 为接收到的停止位。在方式 2 或方式 3 中,RB8 为接收到的第9 位数据。TI: 发送中断标志。在方式 0 中,第 8 位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI 置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI 必须用软件清 0。RI: 接收中断标志位。在方式 0,当接收完第 8 位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于 SM2 的说明)。RI 置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI 也必须用软件清 0。特殊功能寄存器 PCON PCON 是为了在 CHMOS 的 80C51 单片机上实现电源控制而附加的。其中最高位是SMOD。2.1.9 串行口的工作方式 2013 届本科毕业设计(论文)8051 单片机的全双工串行口可编程为 4 种工作方式,现分述如下:方式 0 为移位寄存器输入/输出方式。可外接移位寄存器以扩展 I/O 口,也可以外接同步输入/输出设备。8 位串行数据者是从 RXD 输入或输出,TXD 用来输出同步脉冲。 输出 串行数据从 RXD 引脚输出,TXD 引脚输出移位脉冲。CPU 将数据写入发送寄存器时,立即启动发送,将 8 位数据以 fos/12 的固定波特率从 RXD 输出,低位在前,高位在后。发送完一帧数据后,发送中断标志 TI 由硬件置位。1.2 输入 当串行口以方式 0 接收时,先置位允许接收控制位 REN。此时,RXD 为串行数据输入端,TXD 仍为同步脉冲移位输出端。当(RI)=0 和(REN)=1 同时满足时,开始接收。当接收到第 8 位数据时,将数据移入接收寄存器,并由硬件置位 RI。 下面两图分别是方式 0 扩展输出和输入的接线图。图 2-1 方式 0 扩展输出和输入的接线图方式 1 为波特率可变的 10 位异步通讯接口方式。发送或接收一帧信息,包括 1个起始位 0,8 个数据位和 1 个停止位 1。 输出 当 CPU 执行一条指令将数据写入发送缓冲 SBUF 时,就启动发送。串行数据从 TXD 引脚输出,发送完一帧数据后,就由硬件置位 TI。 输入 在(REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开始位 0,就开始接收一帧数据。只有当(RI)=0 且停止位为 1 或者(SM2)=0 时,停止位才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI;否则信息丢失。所以在方式 1 接收时,应先用软件清零 RI 和 SM2 标志。 方式 2 方式月为固定波特率的 11 位 UART 方式。它比方式 1 增加了一位可程控为 1 或0 的第 9 位数据。输出: 发送的串行数据由 TXD 端输出一帧信息为 11 位,附加的第 9 位来自SCON 寄存器的 TB8 位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当 CPU 执行一条数据写入 SUBF 的指令时,就启动发送器发送。发送一帧信息后,置位中断标志 TI。 输入: 在(REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开始位 0,就开始接收一帧数据。在接收到附加的第 9 位数据后,当(RI)=0 或者(SM2)=0 时,第 9 位数据才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI;否则信息丢失。且不置位 RI。再过一位时间2013 届本科毕业设计(论文)后,不管上述条件时否满足,接收电路即行复位,并重新检测 RXD 上从 1 到 0的跳变。 工作方式 3 方式 3 为波特率可变的 11 位 UART 方式。除波特率外,其余与方式 2 相同。2.1.10 波特率选择 如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在 8051 串行口的四种工作方式中,方式 0 和 2 的波特率是固定的,而方式 1和 3 的波特率是可变的,由定时器 T1 的溢出率控制。3.4.1 方式 0 方式 0 的波特率固定为主振频率的 1/12。3.4.2 方式 2 方式 2 的波特率由 PCON 中的选择位SMOD 来决定,可由下式表示:波特率=2 的 SMOD 次方除以 64 再乘一个 fosc,也就是当 SMOD=1 时,波特率为 1/32fosc,当 SMOD=0 时,波特率为1/64fosc3.4.3方式 1 和方式 3 定时器 T1 作为波特率发生器,其公式如下:波特率= 定时器 T1 溢出率 T1 溢出率= T1 计数率/产生溢出所需的周期数式中 T1 计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1 计数率为 fosc/12;当工作于计数器状态时,T1 计数率为外部输入频率,此频率应小于 fosc/24。产生溢出所需周期与定时器 T1 的工作方式、T1的预置值有关。定时器 T1 工作于方式 0:溢出所需周期数=8192-x 定时器 T1工作于方式 1:溢出所需周期数=65536-x 定时器 T1 工作于方式 2:溢出所需周期数=256-x 因为方式 2 为自动重装入初值的 8 位定时器/计数器模式,所以用它来做波特率发生器最恰当。当时钟频率选用 11.0592MHZ 时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。下表列出了定时器 T1 工作于方式 2 常用波特率及初值。表 2-4 定时器 T1 工作于方式 2 常用波特率及初值常用波特率 Fosc(MHZ) SMOD TH1 初值19200 11.0592 1 FDH9600 11.0592 0 FDH4800 11.0592 0 FAH2400 11.0592 0 F4h1200 11.0592 0 E8h2.2 8255 芯片简介8255 可编程并行接口芯片简介:8255 可编程并行接口芯片有三个输入输出端口,即 A 口、B 口和 C 口,对应于引脚 PA7PA0、PB7PB0 和 PC7PC0。其内部还有一个控制寄存器,即2013 届本科毕业设计(论文)控制口。通常 A 口、B 口作为输入输出的数据端口。C 口作为控制或状态信息的端口,它在方式字的控制下,可以分成 4 位的端口,每个端口包含一个 4 位锁存器。它们分别与端口 A配合使用,可以用作控制信号输出或作为状态信号输入。8255 可编程并行接口芯片工作方式说明:(1)方式 0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。(2)方式 1:选通输入输出方式。这时 A 口或 B 口的 8 位外设线用作输入或输出,C 口的 4 条线中三条用作数据传输的联络信号和中断请求信号。(3) 方式 2 :双向总线方式。只有 A 口具备双向总线方式,8 位外设线用作输入或输出,此时 C 口的 5 条线用作通讯联络信号和中断请求信号。2.3 其他器件数共阴极的七段数码管。图 2-2 七段数码管VT 为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时晶闸管关断,该支路指示灯灭。图 2-3 双向晶闸管2013 届本科毕业设计(论文)第 3 章 控制器硬件系统设计3.1 交通管理的方案论证A、 B 两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B 两干道的公共停车时间。设 A 道比 B 道的车流量大,指示灯燃亮的方案如表。表 3-1 指示灯燃亮的方案此表 1 说明:(1)当为黄灯时 A、B 两道同时为黄灯;以提示行人或车辆下一个灯色即将到来 时间 3 秒。 (2)当 A 道为红灯,A 道车辆禁止通行,A 道行人可通过;B 道为绿灯, B 道车车辆可通行; B 道行人禁止通行. (3)当 A 道绿灯,A 道车辆通行;B 道为红灯,B 道车辆禁止通过,行人通行。时间为 80 秒。 A 道车流大, 通行时间长 .(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表可根据车流量动态设定本设计要求熟练掌握单片机的接口特性以及交通指示灯电路设计,学会使用常用的单片机以及外围电路芯片。如 74LS373、EPRROM2373 以及发光二极3 60 3 80 3 60 A 道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 B 道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 2013 届本科毕业设计(论文)管等。掌握 8031 单片机汇编语言编程技术,以及连接、调试方法。要对单片机的应用有一个系统的认识,从各个方面系统全面的认识单片机。3.2 系统硬件设计3.2.1 8051 并行口的扩展8051 虽然有 4 个 8 位 I/O 端口,但真正能提供借用的只有 P1 口,因为 P2和 P0 口通常用于传送外部传送地址和数据,P3 口也有它的第二功能。因此,8031 通常需要扩展。由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个 I/O 端口,显然 8031 的端口是不够,需要扩展。扩展的方法有两种:(1)借用外部 RAM 地址来扩展 I/O 端口;(2)采用 I/O 接口新片来扩充。 , 我们用 8255 并行接口信片来扩展 I/O 端口。322 系统工作原理(1)开关键盘输入交通灯初始时间,通过 8051 单片机 P1 输入到系统(2) 由 8051 单片机的定时器每秒钟通过 P0 口向 8255 的数据口送信息,由 8255的 PC 口显示红、绿、黄灯的燃亮情况;由 8255 的 PA、P B 口显示每个灯的燃亮时间。(3)8051 通过 设置 各个信号等的燃亮时间、通过 8051 设置,黄、绿、红时间依次为 3 秒、60 秒、3 秒、80 秒、3 秒循环由 8051 的 P0 口向 8255 的数据口输出。(4) 通过 8051 单片机的 P3.0 位来控制系统是工作或设置初值,当.牌位 0 就对系统进行初始化,为 1 系统就开始工作。(5)8255 A 口用于输出时间的个位, B 口用于输出时间的十位,由 747S07驱动芯片驱动;而C 口用于输出各个灯的情况,它的末段连接双向晶闸管采用 220V 交流电压驱动。(6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输入到 MAX692 看门狗芯片的 WDI 引角引起 RESET 复位信号复位系统3.2.3 8255 与 8051 的连接用 8051 的 P0 口的 p0.7 连接 8255 的片选信号 cs 我们用 8031 的地址采用全译码方式,当 p0.7 =0 时片选有效, 其他无效, p0.1 p0.1 用于选择 8255 端口P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0A7 A6 A5 A4 A3 A2 A1 A01 X X X X X 0 0 00H 为 8255 的 PA 口1 X X X X X 0 1 01H 为 8255 的 PB 口1 X X X X X 1 0 02H 为 8255 的 PC 口1 X X X X X 1 1 03H 为 8255 的控制口由于 8051 是分时对 8255 和储存器进行访问所以 8051 的 P0 口不会发生冲突2013 届本科毕业设计(论文)3.3 交通灯的控制线路 图 3-1 交通灯的控制线路2013 届本科毕业设计(论文)第 4 章 控制器的软件设计4.1 每秒钟的设定延时方法可以有两种一种是利用 MCS-51 内部定时器产生溢出中断来确定 1秒的时间,另一种是采用软延时的方法。(1)设置秒的方法我们采用在主程序中设定一个初值为 20 的软件计数器和使 T0 定时 50 毫秒这样每当 T0 到 50 毫秒时 CPU 就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU 先使软件计数器减,然后判断它是否为零。为零表示秒已到可以返回到输出时间显示程序。(2)延时的方法通过软件延时和定时器延时两种方式来完成。软件延时可先编写一段延时一秒钟的字程序,然后主程序中以及复用以实现以 60 秒钟和 2 秒钟的延时,并送出信号去控制相应的交通灯。定时器延时可通过单片机内部定时器 T0 产生中断来实现计时。T0 工作在定时器工作方式 1,每 100 秒产生一次中断,然后在中断服务程序实现 60 秒和 2 秒的延时,并送出信号去控制相应的交通灯指示信号。紧急切换可采用中断或查询按钮两种方式实现。4.2 计数器硬件延时相应程序代码()主程序定时器需定时 50 毫秒,故 工作于方式。初值:TCMT T 计数 2 50ms/1us=15536=3CBOHORG 1000HSTART: MOV TMOD, #01H ; 令 T0 为定时器方式MOV TH0, #3CH ;装入定时器初值MOV TL0, #BOHMOV IE,#82H ;开 T0 中断SEBT TR0;启动 T0 计数器MOV RO,#14H;软件计数器赋初值LOOP:SJMP $;等待中断()中断服务子程序ORG 00BHAJMPBRTOORG 00BHBRTO:DJNZ R0,NEXTAJMP TIME ;跳转到时间及信号灯显示子程序 DJNZ:MOVR0,14H;恢复 R0 值2013 届本科毕业设计(论文)MOV TH0, #3CH ;重装入定时器初值MOV TL0, #BOH;MOV IE,#82H RET1END4.3 软件延时MCS-51 的工作频率为 2-12MHZ,我们选用的 8051 单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1 秒的时间。 具体的延时程序分析:DELAY: MOV R4,#08H ;延时 1 秒子程序DE2: LCALL DELAY1 DJNZ R4,DE2RETDELAY1: MOV R6,#0 ;延时 125ms 子程序MOV R5,#0DE1: DJNZ R5,$DJNZ R6,DE1RETMOV RN,#DATA ;字节数数为 2 机器周期数为 1所以此指令的执行时间为 2ms DELAY1 为一个双重循坏 循环次数为 256*256=65536 所以延时时间=65536*2=131072us 约为 125us DELAY R4 设置的初值为 8 主延时程序循环 8 次,所以 125us*8= 1 秒由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4.4 时间及信号灯的显示4.4.1 显示原理当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。4.4.2 8255 输出信号的放大要使行人能看见信号灯的情况,必须把 8255 输出的信号进行放大,这里我们用 VT 为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时关断,该支路指示灯灭。我们用连接 7 段数码管的方法来连接晶闸管 2013 届本科毕业设计(论文)其中 PA0PB0-a,PA1PB1-b, PA2PB2-c,PA3PB3-d,PA4PB4-e, PA5PB5-f,PA6PB6-gPA7PB7 -SP 接地表 4-1 驱动代码表显示数值 dop g f e d c b a 驱动代码(16 进制)0 0 0 1 1 1 1 1 1 3FH1 0 0 0 0 0 1 1 0 06H2 0 1 0 1 1 0 1 1 5BH3 0 1 0 0 1 1 1 1 4FH4 0 1 1 0 0 1 1 0 66H5 0 1 1 0 1 1 0 0 6DH6 0 1 1 1 1 1 0 0 7DH7 0 0 0 0 0 1 1 1 07H8 0 1 1 1 1 1 1 1 7FH2013 届本科毕业设计(论文)第 5 章程序设计5.1 程序流程图 5 程序流程2013 届本科毕业设计(论文)5.2 程序源代码R4 存放黄灯时间 3 03H (此时间可以动态设定)R5 存放红灯时间 60 3CHR6 存放绿灯时间 80 50HPC0 显示黄灯信号PC1 显示红灯信号PC2 显示黄灯信号 8255 工作于方式 08255 PA、PB、 PC 口输出 PC 控制字为 10000000B (80H)ORG 0000HLJMP MAINORG 0100HMAIN: MOV R1,#03H ;初始化 8255MOV A,#80HMOVX R1,AAGAIN: MOV P3,#80H ; 设置初值MOV A,P3JB ACC.7, NEXT0AGAIN1: MOV P3,#40HMOV A,P3JB ACC.6, REDMOV P3,#0FHMOV A,P3ANL A,#0FHMOV R3,AAJMP AGAIN1RED: MOV P3,#0FHMOV A,P3ANL A,#0FHMOV R2,AAJMP AGAINNEXT0: MOV R1,#03H NEXT1: MOV DPTR,#TAB ;显示黄灯个位MOV A,R1MOVC A,A+DPTRMOV R1,#00HMOVX R1, AMOV R1,#OMOV DPTR,#TAB ;显示黄灯十位MOV A,R02013 届本科毕业设计(论文)MOVC A,A+DPTRMOV R1,#01HMOVX R1,AMOV DPTR,#0C62H ; 显示黄灯信号MOV A,#00HLCALL 0F4E0HACALL DELAY ;延时 1 秒DJNZ R0,NEXT1MOV A,R3MOV R0,A NEXT2: MOV DPTR,#TAB ; 显示红灯个位MOV A,R0MOVC A,A+DPTRMOV R1,#00HMOVX R1,A MOV DPTR,#TAB; 显示红灯十位MOV A,R0MOVC A,A+DPTRMOV R1,#01HMOV A,R0MOVX R1,R0MOV R1,#02H ;显示红灯信号MOV A,#02HMOVX R1,AACALL DELAY ;延时 1 秒DJNZ R0,NEXT2MOV A,R2MOV R0,A NEXT3 :MOV DPTR,#TAB ; 显示绿灯个位MOV A,R0MOVC A,A+DPTRMOV R1,#00HMOVX R1,R0MOV DPTR,#TAB ; 显示绿灯十位MOV A,R0MOVC A,A+DPTRMOV R1,#01HMOV A,R0MOVX R1,R0MOV R1,#02H ; 显示绿灯信号MOV A,#02HMOVX R1,AACALL DELAY ; 延时 1 秒DJNZ R0,NEXT32013 届本科毕业设计(论文)AJMP NEXT0DELAY: MOV R4,#08H ; 延时 1 秒子程序DE2 LCALL DELAY1 DJNZ R4,DE2RETDELAY1: MOV R6,#0 MOV R5,#0DE1: DJNZ R5,$DJNZ R6,DE1RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H驱动代码表END5.3 实验

温馨提示

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

评论

0/150

提交评论