1、酒泉职业技术学院 毕 业 设 计 题目 模仿交通灯 系别 机电工程系 专业 机电一体化 班级 09机电(5)班 姓名 毛显鹏 学号 指引教师 李玉军 日期 11月
2、 设计任务书 设计题目: 单片机交通灯控制器 设计规定: 1.在十字路口两个方向上各设一组红绿黄灯,显示顺序为: 其中一种方向是绿灯、黄灯、红灯,另一种方向是红灯、绿灯、黄灯。 2.设立一组数码管,以倒计时方式显示容许通过或禁止通行时间,其中左转灯、绿灯、黄灯、红灯持续时间分别是15S、30S、3S、48S。 3.当各条路上任意一条浮现特殊状况,例如消防车、救护车或其她需要优先放行车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运营状态结束后,控制器恢复本来状态,继续正常运营。 设计进度规定: 第一周:查找资料,初步拟定论文题目;
3、 第二周:与教师商讨; 第三周:拟定论文题目; 第四周:依照论文题目进一步查找材料; 第五周:完毕开提报告及论文大纲交教师批阅; 第六周:根据论文大纲完毕论文一稿交教师批阅; 第七周:.完毕有关论文简介、答辩提纲等; 第八周:定稿打印。 指引教师(签名): 李玉军 摘 要 近年来随着科技飞速发展,单片机应用正在不断地进一步发展,同步带动老式控制检测更新。在实时检测和自动控制单片机应用系统中,单片机往往是作为一种核心部件来使用,仅单片机方面知识是不够,还应当依照详细硬件构造,以及针对详细应用对象特点软件结合,加以完善。 十字路口车辆
4、穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠是交通信号灯自动指挥系统。交通信号灯控制方式诸多。本系统采用AT89C52系列单片机和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能依照实际车流量通过AT89C52芯片P1口设立红、绿灯燃亮时间功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统由于死机而停止工作状况发生;显示时间直接通过8255PA、PB口输出;交通灯信号通过PC口输出;交通灯点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、操作简朴、扩展性强。 核心词:单片机,看门狗MAX6
5、29,交通灯,控制器 目 录 摘 要 II 1 交通灯发展及应用 1 2 控制器系统设计 2 2.1交通管理方案 2 2.2系统设计原理 3 3 芯片选取与简介 6 3.1 AT89C52芯片简介 6 3.2 8255芯片简介 9 3.3 数码管 11 4 控制器软件设计 12 4.1计数器初值计算 12 4.2 软件延时 13 4.3 AT89C52并行口扩展 14 5 程序设计 16 5.1 流程图 16 5.2 程序清单 18 6 看门狗硬件电路 22 6.1软件看门狗 22 6.2硬件看门狗 23 7 系统调试与运营方案 25 7.1
6、实验环节 25 7.2系统内存分派和I/0接口 26 7.3 实验程序原代码 27 8 结 论 30 致 谢 31 参照文献 32 1 交通灯发展及应用 当前红绿灯安装在各个道口上,已经成为疏导交通车辆最常用和最有效手段。但这一技术在19世纪就已浮现了。 1858年,在英国伦敦重要街头安装了以燃煤气为光源红,蓝两色机械扳手式信号灯,用以指挥马车通行。这是世界上最早交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区议会大厦前广场上,安装了世界上最早煤气红绿灯。它由红绿两以旋转式方形玻璃提灯构成,红色表达“停止”,绿色表达“注意”。1869年1月2日,煤气灯爆炸,使警
7、察受伤,遂被取消。 19,电气启动红绿灯出当前美国。这种红绿灯由红绿黄三色圆形投光器构成,安装在纽约市5号大街一座高塔上。红灯亮表达“停止”,绿灯亮表达“通行”。 19,又浮现了带控制红绿灯和红外线红绿灯。带控制红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感路面时,它就能察觉到有人要过马路。红外光束能把信号灯红灯延长一段时间,推迟汽车放行,以免发生交通事故。 信号灯浮现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《
8、道路交通和道路标志信号协定》对各种信号灯含义作了规定。绿灯是通行信号,面对绿灯车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必要让合法地正在路口内行驶车辆和过人行横道行人优先通行。红灯是禁行信号,面对红灯车辆必要在交叉路口停车线后停车。黄灯是警告信号,面对黄灯车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 2 控制器系统设计 2.1交通管理方案 A、B两干道交于一种十字路口,各干道有一组红、黄、绿三色批示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮容许通行。黄灯亮提示人们注意红灯、绿灯状态即将切换,且黄灯燃亮时间为A、B两
9、干道公共停车时间。设A道比B道车流量大,批示灯燃亮方案如表2.1。 表2.1 批示灯状态 3 60 3 80 3 60 …… A道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 …… B道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 …… 从表中可以看出: (1)当为黄灯时 A、B两道同步为黄灯;以提示行人或车辆下一种灯色即将到来,时间 3秒。(2)当A到为红灯,A 道车辆禁止通行,A 道行人可通过;B道为绿灯,B 道车辆通过,行人禁止通行。时间为60秒。 (2)当A道绿灯,A 道车辆通行;B 道为红灯,B 道车辆禁止通过,行
10、人通行。时间为80秒。 A道车流大 通行时间长 (3)这样如上表时间和红、绿、黄浮现顺序依次浮现这样行人和车辆就能安全畅通通行。 (4)此表可依照车流量动态设定 2.2系统设计原理 选用AT89C52单片机一片选用设备:AT89C52单片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极七段数码管两个双向晶闸管若干,7805三端稳压电源一种,红、黄、绿交通灯各两个,开核心盘、连线若干。 系统总框图如图2.1所示. 图2.1 交通灯控制系统总框图
11、 交通灯控制线路图2.2所示. 图2.2交通灯控制线路图 (1)开核心盘输入交通灯初始时间,通过AT89C52单片机P1输入到系统 (2)由AT89C52单片机定期器每秒钟通过P0口向8255数据口送信息,由8255PC 口显示红、绿、黄灯燃亮状况;由8255PA、PB口显示每个灯燃亮时间。 (3)AT89C52通过设立 各个信号等燃亮时间、通过AT89C52设立,黄、绿、红时间依次为3秒、60秒、3秒、80秒、3秒循环由AT89C52 P0口向8255数据口输出。 (4)通过AT89C52单片机P3.0
12、位来控制系统是工作或设立初值,当.牌位0就对系统进行初始化,为1系统就开始工作。 (5)8255PA口用于输出时间个位,PB口用于输出时间十位,由747S07驱动芯片驱动;.而PC口用于输出各个灯状况,它末段连接双向晶闸管采用220V交流电压驱动。 (6)在交通控制程序中加入看门狗指令,当系统浮现异常看门狗将发出溢出中断。通过专用端口输入到MAX692看门狗芯片WDI 引脚引起RESET复位信号复位系统. 3 芯片选取与简介 3.1 AT89C52芯片简介 3.1.1 AT89C52单片机内部构造 8051是AT89C52系列单片机典型产品,AT89C52单片机包括中央解
13、决器、程序存储器(ROM)、数据存储器(RAM)、定期/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,见图3.1,当前阐明如下: 图3.1 总线构造 (1)中央解决器 中央解决器(CPU)是整个单片机核心部件,是8位数据宽度解决器,能解决8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调工作,完毕运算和控制输入输出功能等操作。 (2)数据存储器(RAM) AT89C52内部有128个8位顾客数据存储单元和128个专用寄存器单元,它们是统一编址,专用寄存器只能用于存储控制指令数据,顾客只能访问,而不能用于存储顾客数
14、据,因此,顾客能使用RAM只有128个,可存储读写数据,运算中间成果或顾客定义字型表。 (3)存储器(ROM) AT89C52共有4096个8位掩膜ROM,用于存储顾客程序,原始数据或表格。 (4)定期/计数器(ROM) AT89C52有两个16位可编程定期/计数器,以实现定期或计数产生中断用于控制程序转向。 (5)并行输入输出(I/O)口 AT89C52共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据传播。 (6)全双工串行口 AT89C52内置一种全双工串行通信口,用于与其他设备间串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 (
15、7)中断系统 AT89C52具备较完善中断功能,有两个外中断、两个定期/计数器中断和一种串行中断,可满足不同控制规定,并具备2级优先级别选取。 (8)时钟电路 AT89C52内置最高频率达12MHz时钟电路,用于产生整个单片机运营脉冲时序,但AT89C52单片机需外置振荡电容。 单片机构造有两种类型,一种是程序存储器和数据存储器分开形式,即哈佛(Harvard)构造,另一种是采用通用计算机广泛使用程序存储器与数据存储器合二为一构造,即普林斯顿(Princeton)构造。INTELAT89C52系列单片机采用是哈佛构造形式,而后续产品16位MCS-96系列单片机则采用普林斯顿构造。 3
16、1.2 AT89C52引脚阐明 AT89C52系列单片机中8031、8051及8751均采用40Pin封装双列直接DIP构造,右图是它们引脚配备,40个引脚中,正电源和地线两根,外置石英振荡器时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。引脚如图3.2所示. 图3.2引脚图 RESET/Vpd复位信号复用脚,当AT89C52通电,时钟电路开始工作,在RESET引脚上浮现24个时钟周期以上高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口所有为高电平,堆栈指针写入07H,其他专用寄存器被清“0”。RESET
17、由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不变化RAM(涉及工作寄存器R0-R7)状态,AT89C52初始态。 AT89C52复位方式可以是自动复位,也可以是手动复位,见图3.3。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM数据不丢失。 图3.3 复位电路 ALE/当访问外部程序器时,ALE(地址锁存)输出用于锁存地址低位字节。而访问内部程序存储器时,ALE端将有一种1/6时钟频率正脉冲信号,这个信号可以用于辨认单片机与否工作,也可
18、以当作一种时钟向外输出。更有一种特点,当访问外部程序存储器,ALE会跳过一种脉冲。 如果单片机是EPROM,在编程其间,将用于输入编程脉冲。 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC16位地址数据将出当前P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。 EA/Vpp程序存储器内外部选通线,AT89C52单片机,内置有4kB程序存储器,当EA为高电平并且程序地址不大于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不论地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器AT89C52,EA端必要接
19、地。 在编程时,EA/Vpp脚还需加上21V编程电压。 3.2 8255芯片简介 8255可编程并行接口芯片简介: 8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,相应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部尚有一种控制寄存器,即控制口。普通A口、B口作为输入输出数据端口。C口作为控制或状态信息端口,它在方式字控制下,可以提成4位端口,每个端口包括一种4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。 8255可编程并行接口芯片方式控制字格式阐明: 8255有两种控制命令字;一种是方式选取控制字;另一种是
20、C口按位置位/复位控制字。其中C口按位置位/复位控制字方式使用较为繁难,阐明也较冗长,故在此不作论述,需要时顾客可自行查找关于资料。 方式控制字格式阐明如表3.1: 表3.1 8255方式控制字 D7 D6 D5 D4 D3 D2 D1 D0 D7:设定工作方式标志,1有效。 D6、D5:A口方式选 0 0 —方式0 0 1 —方式1 1 ×—方式2 D4:A口功能 (1=输入,0=输出) D3:C口高4位功能 (1=输入,0=
21、输出) D2:B口方式选取 (0=方式0,1=方式1) D1:B口功能 (1=输入,0=输出) D0:C口低4位功能 (1=输入,0=输出) 8255可编程并行接口芯片工作方式阐明: 方式0:基本输入/输出方式。合用于三个端口中任何一种。每一种端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入/输出方式。这时A口或B口8位外设线用作输入或输出,C口4条线中三条用作数据传播联系信号和中断祈求信号。 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口5条线用作通讯联
22、系信号和中断祈求信号。 3.3 数码管 采用共阴极七段数码管,如图3.4所示. 图3.4 数码管电路 VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路批示灯亮;当门极为低电平时晶闸管关断,该支路批示灯灭。 4 控制器软件设计 延时办法可以有两种一中是运用AT89C52内部定期器才生溢出中断来拟定1秒时间,另一种是采用软延时办法。 4.1计数器初值计算 定期器工作时必要给计数器送计数器初值,这个值是送到TH和TL中。她是以加法记数,并能从全1到全0时自动产生溢出中断祈求。 咱们采用在主
23、程序中设定一种初值为20软件计数器和使T0定期50毫秒.这样每当T0到50毫秒时CPU就响应它溢出中断祈求,进入她中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它与否为零。为零表达1秒已到可以返回到输出时间显示程序。相应程序代码: (1)主程序 定期器需定期50毫秒,故T0工作于方式1。 初值: TC=M-T/T计数=216-50ms/1us=15536=3CBOH ORG 1000H START:MOV TMOD, #01H ;令T0为定期器方式1 MOV TH0, #
24、3CH ;装入定期器初值 MOV TL0, #0B0H ; MOV IE, #82H ;开T0中断 SEBT TR0 ;启动T0计数器 MOV R0, #14H ;软件计数器赋初值 OP: SJMP $ ;等待中断 (2)中断服务子程序 ORG 000BH AJMP BRT0 ORG 00BH BRT0:DJNZ R0,NEXT AJMP
25、 TIME ; 跳转届时间及信号灯显示子程序 DJNZ:MOV R0,#14H ;恢复R0值 MOV TH0, #3CH ;重装入定期器初值 MOV TL0, #0B0H ; MOV IE, #82H RETI END 4.2 软件延时 AT89C52工作频率为2-12MHZ,咱们选用AT89C52单片机工作频率为6MHZ。机器周期与主频关于,机器周期是主频12倍,因此一种机器周期时间为12*(1/6M)=2us。咱们可以懂得详细每条指令周期数,这
26、样咱们就可以通过指令执行条数来拟定1秒时间。 详细延时程序: DELAY:MOV R4,#08H 延时1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RET DELAY1:MOV R6,#0 延时125ms 子程序 MOV R5,#0 DE1:DJNZ R5,$ DJNZ R6,DE1 RET MOV RN,#DATA 因此此指令执行时间为2ms DELAY1 为一种双重循坏 循环次数为256*256=6
27、5536 因此延时时间=65536*2=131072us 约为125us ,DELAY R4设立初值为8 主延时程序循环8次,因此125us*8= 1秒,由于单片机运营速度不久其他指令执行时间可以忽视不计。 4.3 AT89C52并行口扩展 AT89C52虽然有4个8位I/O端口,但真正能提供借用只有P1口,由于P2和P0口通惯用于传送外部传送地址和数据,P3口也有它第二功能。因而,AT89C52普通需要扩展。由于咱们用外输出时间时,时间个位、十位、信号灯显示都要用到一种I/O端口,显然AT89C52端口是不够,需要扩展。 扩展办法有两种:(1)借用外部RAM地
28、址来扩展I/O端口;(2)采用I/O接口来扩充。本设计中采用8255并行接口信片来扩展I/O端口。 4.3.1显示原理 当定期器定期为1秒,时程序跳转届时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同步始终显示信号灯颜色,这时在返回定期子程序定期一秒,在显示黄灯下一种时间,这样依次把所有灯色时间显示完后在重新给时间计数器赋初值 ,重新进入循环。 4.3.2 8255输出信号放大 要使行人能看见信号灯状况,必要把8255输出信号进行放大,这里咱们用VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路批示灯亮;当门极为低电平时关断,该支路批示灯灭。 4.3.3 8255
29、输出信号与信号灯连接 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 4
30、FH 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 4.3.4 8255与AT89C52连接 用AT89C52P0 口 p0.7 连接8255片选信号cs 咱们用AT89C52地址采用全译码方式,当p0.7 =0 时片选有效, 其他无效, p0.1 p0.1 用于选取8255端口 P0
31、7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0 A7 A6 A5 A4 A3 A2 A1 A0 1 X X X X X 0 0 00H为8255 PA口 1 X X X X X 0 1 01H 为8255PB口 1 X X X X X 1 0 02H 为8255PC口 1 X X X X X 1 1 03H 为8255控制口 由于AT
32、89C52是分时对8255和储存器进行访问因此AT89C52P0口不会发生冲突 5 程序设计 5.1 流程图 R4 存储黄灯时间 3 03H (此时间可以动态设定) R5 存储红灯时间 60 3CH R6 存储绿灯时间 80 50H PC0 显示黄灯信号 PC1 显示红灯信号 PC2 显示黄灯信号 8825 工作于方式0 8255 PA、PB、PC口输出 PC 控制字为10000000B (80H) 主程序如图5.1
33、所示 开始 初始化 等待键盘事件 显示程序解决 键盘事件解决 图5.1 主程序流程图 图5.2 程序流程图 5.2 程序清单 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV R1,#03H 初始化
34、8255 MOV A,#80H MOVX @R1,A AGAIN:MOV P3,#80H 设立初值 MOV A,P3 JB ACC.7,NEXT0 AGAIN1:MOV P3,#40H MOV A,P3 JB ACC.6,RED MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R3,A
35、 AJMP AGAIN1 RED:MOV P3,#0FH MOV A,P3 ANL A,#0FH MOV R2,A AJMP AGAIN NEXT0:MOV R1,#03H NEXT1:MOV DPTR,#TAB 显示黄灯个位 MOV A,R1 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1,A MOV R1,#O
36、 MOV DPTR,#TAB 显示黄灯十位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#01H MOVX @R1,A MOV DPTR,#0C62H 显示黄灯信号 MOV A,#00H LCALL 0F4E0H ACALL DELAY 延时1秒 DJNZ R0,NEXT1 MOV A,R3 MOV R0,A NEXT2:MOV D
37、PTR,#TAB 显示红灯个位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1,A MOV DPTR,#TAB 显示红灯十位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#01H MOV A,R0 MOVX @R1,R0 MOV R1,#02H 显示红灯信号 MOV A,#02H
38、 MOVX @R1,A ACALL DELAY 延时1秒 DJNZ R0,NEXT2 MOV A,R2 MOV R0,A NEXT3:MOV DPTR,#TAB 显示绿灯个位 MOV A,R0 MOVC A,@A+DPTR MOV R1,#00H MOVX @R1,R0 MOV DPTR,#TAB 显示绿灯十位 MOV A,R0
39、 MOVC A,@A+DPTR MOV R1,#01H MOV A,R0 MOVX @R1,R0 MOV R1,#02H 显示绿灯信号 MOV A,#02H MOVX @R1,A ACALL DELAY 延时1秒 DJNZ R0,NEXT3 AJMP NEXT0 DELAY:MOV R4,#08H 延时1秒子程序 DE2:LCAL
40、L DELAY1 DJNZ R4,DE2 RET DELAY1:MOV R6,#0 MOV R5,#0 DE1:DJNZ R5,$ DJNZ R6,DE1 RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H END 6 看门狗硬件电路 由于单片机自身抗干扰能力比较差,特别在某些条件比较恶劣、噪声大场合,常会浮现单片机由于受外界干
41、扰而导致死机现象,导致系统不能正常工作。设立看门狗是为了防止单片机死机、提高单片机系统抗干扰性一种重要途径。 一种完整单片机应用系统应当是一种软、硬件结合体,在系统正常工作时,会受到各种外界干扰因素影响。这种外界干扰轻者导致系统内部数据出错,重者将严重影响程序运营。因而单片机应用系统开发一定要考虑系统可靠性设计,以满足系统在现场苛刻环境下正常运营,而“看门狗”则是系统可靠性设计重要一环。在一种单片机应用系统中,所谓“看门狗”是指在系统设计中通过软件或硬件方式在一定周期内监控单片机或其他CPU运营状况。如果在规定期间内没有收到来自单片机或其他CPU触发信号,则系统会强制复位,以保证系统在受到干
42、扰时仍可以维持正常工作状态。在单片机系统中,看门狗设计普通采用硬件和软件结合两种方式。 6.1软件看门狗 软件看门狗是运用单片机片内闲置定期器/计数器单元作为看门狗,在单片机程序中恰当插入监控指令,当程序浮现异常或进入死循环时,运用软件将程序计数器PC赋予初始值,强制性使程序重新开始运营。 使用软件看门狗详细实现办法如下。 (1) 一方面在初始化程序中设立好定期器/计数器方式控制寄存器(TMOD) 和定期 时间初值,并开中断。 (2) 依照定期器定期时间,在主程序中按一定间隔插入复位定期器指令,既插入监控指令,两条指令间时间间隔应当不大于定期时间,否则看门狗将发生错误动
43、作。 (3) 在定期器中断服务程序中设立一条无条件转移指令,将程序计数器PC转移到初始化程序入口。 软件看门狗最大特点是不必外加硬件电路,经济性好。固然,如果片内定期器/计数器被占用,就需要谋求其他设计方式了。 6.2硬件看门狗 专用硬件看门狗是指某些集成化或集成在单片机内专用看门狗电路,它事实上是一种特殊定期器,当定期时间届时,发出溢出脉冲。从实现角度上看,该方式是一种软件与片外专用电路相结合技术,硬件电路连接好后,在程序中恰本地插入某些看门狗复位指令,保证程序正常运营时看门狗不溢出。而当程序运营异常时,看门狗超时发出溢出脉冲,通过单片机RESET引脚使单片机复位。
44、这种方式中,看门狗能否可靠有效地工作,与硬件构成及软件控制方略均有密切关系。当前惯用集成看门狗电路诸多,如MAX705~708、MAX813L、X5043/5045等。 看门狗电路可以分为内看门狗和外看门狗。看门狗电路是指看门狗硬件电路包括在单片机内部,如Microchip16C5x系列,MOTOROLA68C05系列,51内核中比较典型有Atmel公司AT89C55WD、AT89S8252,Winbond公司W77E58,SST公司SST89C58以及Philips公司87系列各种型号单片机等。 对于没有看门狗定期器单片机或是以为内部看门狗不可靠时,可以采用外部看门狗定期器。外部看门狗电
45、路既可以用专用看门狗芯片,也可由普通芯片实现。 这里,以专用芯片MAX692作为外部看门狗电路。 MAX692是微系统监控电路芯片,具备后备电池切换、掉电鉴别、看门狗监控等功能。其封装和引脚阐明如图6.1所示。 MAX692 5 1 VOUT VBATT 6 2 VCC RESET 7 3 GND WDI8 4
46、 PFI /PFD 图 6.1 MAX692封装和引脚 VOUT:电源输出引脚。 VCC:接电源引脚,电源供电3.0~5.5V。 GND:接地。 PFI:电池故障输入。 /PFO:电池故障输出。 WDI:监视器输入引脚。 /RESET:复位输出引脚,低电平有效。 VBATT:后备电池输入端。 MAX692在本文单片机系统中详细用法和电路原理图。 MAX692电路原理图如图6.2所示.其中WDI是看门狗监测输入脚,接到CPU一种专用I/O口或一种总线上。/RESET是复位信号输出脚,接到CPU复位
47、输入脚。 MAX692WDI定期周期是1.6s,复位脉冲宽度是200ms。如果WDI保持高或低超过看门狗定期周期(1.6s),/RESET端将发生200ms负脉冲使CPU复位 图 6.2 MAX692电路原理图 7 系统调试与运营方案 系统调试与运营采用TDN86/51教学实验系统 系统简介: 启动计算机及实验平台,进入TDN子目录,键入MD51,选取 1 1-COM1口 进入系统集成软件 功能简介: F1-EDIT 编辑 可以对源程序进行编辑 F2-MASM 汇编源程序 F3-LINK 连接成可执行文献.HEX F5-LOA
48、D 将可执行文献载入实验系统 F6-SAVE 保存 F8-EXIT 推出系统 7.1实验环节 1. 按照系统硬件连线图连好 阐明:由于此实验平台只提供了一种显示灯接口因此咱们只用 了8255 PA口,只用了一种显示灯 和3个LED灯 ,AT89C52P1口低4位用于给系统赋初值 P1.7用于控制系统工作或初始化.P1.6用于控制是对红灯、绿灯进行初始化。 2. 把编好程序进行汇编对输入单片机AT89C52仿真器和对8255进行初始化。 3.通过平台上开关来设定红、绿等初值。 4.先使K7拨为0,观测LED灯和8段数码管显示状况,拨K6为0设立 拨K3、K2、K
49、1、K0为0101即红灯时间为5秒,拨K6为1设立 拨K3、K2、K1、K0为1001即绿灯时间为9秒,观测观测LED灯和8段数码管显示与设立时间和LED颜色与否一致 5.不一致重复调试程序结识检查线路连接与否对的,直到与预定目一致。 7.2系统内存分派和I/0接口 1.程序空间(64k) 表7.1 程序空间分派表 地址 使用状况 芯片 0000-3FFFH 顾客程序区 U23RAM 4000-DFFFH 顾客程序区 E000-FFFFH 系统保存 ROM 2.I/O接口分派 顾客程序区8255端口地址如下表: 表7.2 8255端口
50、地址 信号线 寄存器 编址 IOY3 A口 0C60H B口 0C61H C口 0C62H 控制寄存器 0C63H 7.3 实验程序原代码 从8255PB口输入开关量 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV DPTR,#0C63H MOV A,#82H LCALL 0F4E0H AGAIN:MOV DPTR,#0C61H LCALL 0F4E3H






