图3-19 8155状态字定义
3.8.3 8155与8031的连接
如图3-20所示为8155与8031的连接
图3-20 8155与8031的连接
XXII
3.9 看门狗、报警、复位和时钟电路的设计
3.9.1 看门狗电路的设计
为提高系统的可靠性,由硬件的 “看门狗”。由NE555定时器构成的看门狗电路如图3-21所示R3、C6为定时元件,由单稳态电路产生的正脉冲宽度为tW?1.1R3C6?123us,C5用于滤除高频干扰。下面分析看门狗电路的工作原理:
1、当系统工作正常时,看门狗电路不起作用。
2、当系统运行不正常时,8031不能给定时器送去触发脉冲,NE555中的单稳态触发器就输出脉宽大于4us的负脉冲,经F6反相后加至80C31的复位端,使系统能可靠地复位,迅速恢复正常运行状态。
图3-21 看门狗电路
3.9.2 报警电路的设计
当温度过大地超了给定的温度时,系统就会发出报警信号。在这方面的设计中我们采用了如图3-22所示的报警电路。其工作原理是:温度过高时,单片机就从P1.5口发出一个低电平信号,经反向后使发光二极管发光,同时使蜂鸣器发音,从而达到报警的日的。
图3-22 报警电路
XXIII
3.9.3复位电路的设计
在单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。所以,系统的复位电路必须准确、可靠地工作。另外,单片机的复位状态与应用系统的复位状态又是密切相关的,因此,必须熟悉单片机的复位状态。 一、复位
单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要RST保持高电平,则MCS-51单片机就循环复位。单片机的复位状态要注意以下几点:
① 复位是单片机的初始化操作。其主要功能是把 PC初始化为0000H,使单片机从0000H单元开始执行。
② 复位操作除了把PC初始化为0000H之外,还对一些特殊功能寄存器(专用寄存器)有影响,它们的复位状态见表3-2。
③ 复位操作还对单片机的个别引脚信号有影响,例如把ALE和PSEN信号变为无效状态,即ALE=0,PSEN=1。但复位不影响单片机内部的RAM状态。
表3-2单片机的复位状态
专用寄存器 PC ACC B PSW SP DPTR P0~P3 IP IE
00H 00H 00H 07H 000H0 FFH 33000000B 03000000B 复位状态 0000H 专用寄存器 TMOD TCON TL0 TH0 TL1 TH1 SCON SBUF PCON 复位状态 00H 00H 00H 00H 00H 00H 00H 不定 03330000B 二、复位电路
从以上的叙述中,我们已经清楚复位电路的设计原理:在单片机的 RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平(为了保证应用系统可靠地复位,通常使 RST引脚保持10ms以上的高电平)。根据这个原则,采用的电路是:
按键电平复位,如图3-23所示,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。
图3-23 复位电路
XXIV
3.9.4 时钟电路的设计
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。而时序所研究的则是指令执行中各信号之间的相互时间关系。 一、 时钟电路
在介绍单片机引脚时,我们已经叙述过有关振荡器的概念。振荡电路产生的振荡脉冲,并不是时钟脉冲。这二者既有联系又有区别。在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,还引人公用外部脉冲信号作为各单片机的振荡脉冲。 二、时钟信号的产生
XTAL1(19脚)是按外部晶体管的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。输出端为引脚XTAL2,在芯片的外部通过这两个引脚接晶体震荡器和微调电容,形成反馈电路,构成一个稳定的自激震荡器。如图3-24所示。
我们可以用示波器测出XTAL2上的波形。电路中的C1和C2一般取30PF 左右而晶体震荡器的频率范围通常是1.2~12 MHZ,晶体震荡器的频率越高,振荡频率就越高。
振荡电路产生的振荡脉冲并不是时钟信号,而是经过二分频后才作为系统达到时钟信号。如图3-24所示。在二分频的基础上再三分频产生 ALE信号在二分频的基础上再六分频得到机器周期信号。
本次设计中我们采用了6MHZ的晶体震荡器。
图3-24 时钟电路图
3.10 键盘与显示电路的设计
3.10.1 LED数码显示器的接口电路
实际使用的LED数码显示器位数较多,为了简化线路、降低成本,大多采用以软件为主的接口方法。对于多位LED数码显示器,通常采用动态扫描显示方法,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有1位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮的效果基本一样(在亮度上要有差别)。
为了实现LED显示器的动态扫描显示,除了要给显示器提供显示段玛之外,还要对显示器进行位的控制,即通常所说的“位控”。因此对于多位LED数码显示器的接口电路来说,需要有两个输出口,其中一个用于输出显示段码;另一个用于输出位控信号,“位控”实际上就是对LED显示器的公共端进行控制,位控信号的数目与显示器的位数相同。
XXV
图3-25 6位LED数码显示器接口的电路
图3-25是使用8155作为6位LED数码显示器接口的电路,其中8155的A口为输出口(段控口),用以输出8位显示段码(包括小数点)。考虑到LED显示器的段电流为8mA左右,不能用8155的A口直接驱动,因此要加1级电流驱动。电流驱动即可以用反相的,也可以用相同的。反相电流驱动器经常使用7406;同相电流驱动器则采用7407或74LS244。(注意:使用OC门7406或7407时要加上拉电阻)
C口作为输出口(位控口),以PC0~PC5输出位控信号。由于位控信号控制的是LED显示器的公共端,驱动电流较大,8段全亮时需要40~60mA。因此必须在C口与LED的位控线之间增加电流驱动器以提高驱动能力,常用的有SN75452(反相)、7406(反相)或7407(同相)等。
3.10.2 键盘接口电路
对于8751或8051型单片机来说,如果不再外扩程序存储器的话,则可以利用P0~P2口中的任意两个口构成多打8*8的键盘,其中1个作为输出口,1个作为输入口,既可以采用扫描法,也可以采用线反转法。
如果单片机本身的口线已被占用的话,则可以通过外扩I/O接口芯片来构成键盘借口电路,较常用的是8155、8255A等接口芯片,图3-26是采用8155接口芯片构成2*6键盘的接口电路,其中B口为输入,作为行线;C口为输出,作为列线。
图3-26 采用8155接口芯片构成2*6键盘的接口电路
XXVI