基于MCS51系列单片机的电热水壶控制系统设计.doc
数理与信息工程学院单片机原理及应用期末课程设计题 目: 基于单片机的电热水壶控制系统 专 业: 计算机科学与技术 班 级: 计算机072班 姓 名: 朱 妍 学 号: 07220121 指导老师: 余 水 宝 成 绩: ( 2009.12 )目 录第1节 引 言31.1 热水壶的工作情况3第2节 电热水壶控制系统的硬件设计42.1 MCS-51单片机控制的总体介绍42.2 温度检测电路和A/D转换器的电路42.2.1 AD590温度传感器的概念42.2.2 温度检测电路52.2.3 A/D转换器电路原理和电路接口图62.3 单片机8051芯片介绍和主要电路82.3.1 MCS-51单片微机8051内部部件和接口电路82.3.2 振荡电路和时钟电路92.3.3 单片机的复位电路92.3.4 中断优先级102.3.5 74LS373地址锁存器芯片介绍112.4 8255输出口扩展122.4.1 8255的引脚介绍122.4.2 8255与8051外部接口电路132.5 单片机的抗干扰电路132.5.1 光电隔离抗干扰的简介132.5.2 光电隔离器的原理电路142.5.3 光电隔离的电路142.6 键盘及显示电路152.6.1 键盘输入特点152.6.2 按键接口电路的消抖措施162.6.3 矩阵键盘的概述172.6.4 LED显示原理及显示方式172.6.5 系统应用192.7 加热电路和报警装置202.7.1 加热电路202.7.2 报警装置20第3节 系统软件设计233.1 总的程序设计框图233.2 8255的程序设计233.2.1 8255的程序的初始化233.2.2 对端口C的置位/复位233.3 键盘和显示接口电路程序设计243.3.1 键盘和显示器的程序设计243.3.2 键盘扫描子程序25第4节 结束语29参考文献30基于单片机的电热水壶控制系统数理与信息工程学院 07计算机非师范 朱妍指导教师:余水宝 第1节 引 言 本系统设计介绍了MCS-51系列单片机为控制芯片,对电热水壶工作进行控制的方法。通过电加热电路对水进行加热,并对水的温度进行采样,采样信号通过ADC0809将数字量送入单片机系统,经微机处理后,结合键盘控制实现LED显示,并可实现对水的温度的控制和超过水温的报警系统。单片机控制热水壶的硬件构成包括8051芯片、8255芯片、地址锁存器等组成的单片机控制电路、温度检测电路、A/D转换电路、光电隔离电路、键盘及显示电路和温度加热电路。整个系统的关键电路是单片机控制电路,完成信号的输入和输出的转换,即可将温度检测电路采样的输入信号通过A/D转换器ADC0809进行处理加工后输出到显示器进行显示,并可以通过控制器控制温度,同时当水加热超过指定的温度以后,蜂鸣器工作报警。1.1 热水壶的工作情况对于常规的电热水壶,只要接通电源,就开始加热,直到水沸腾后通过蒸汽来产生声音报警。这种设计有下面几个方面的不足:1)如水壶中没水,电源误接通时也会一直加热,容易引起事故。2)当只需要加热到沸点以下某一温度时,不能及时给出声音报警信号。3)当水加热沸腾后不能自动停止工作。针对以上不足,在本设计方案中,用MC-51单片机作为控制芯片,管理整个电热水壶的工作情况,构成了一个闭环控制系统,而且增加了三个按键和六位数码管显示。它的工作情况和常规的热水壶相比,有下面几个方面的特点:1)有三个按键,可用来设置希望加热到的温度即报警的温度。上电复位后,设置温度初值为20度,每按一下按键,温度设置值就会增加1度,整个温度设置值在20100度之间循环。2)这个按键还具有启动电热水壶开始工作的作用。当每次电源接通后,只有按键按下过之后,电热水壶才开始加热,这样,可以防止电源误接通时电热水壶一直加热,引发事故。3)当加热到设置温度时,单片机会控制停止加热,并通过蜂鸣器给出声音提示。4)三位数码管在设置温度操作时显示当前设置的温度,另三位数码管其余时间实时显示电热水壶中水的实际温度。第2节 电热水壶控制系统的硬件设计 2.1 MCS-51单片机控制的总体介绍硬件设计的总电路连接框图如下图:图1-1 硬件设计的总电路连接框图单片机控制热水壶的硬件构成包括8051芯片、8255芯片、地址锁存器等组成的单片机控制电路、温度检测电路、A/D转换电路、光电隔离电路、键盘及显示电路和温度加热电路。整个系统的关键电路是单片机控制电路,是整个控制的核心,完成信号的输入和输出的转换,即可将温度检测电路采样的输入的信号通过A/D转换器ADC0809进行处理加工后输出到显示器进行显示,并可以通过键盘对温度进行控制,如此同时当水加热超过指定的温度以后,蜂鸣器工作报警。并对其中部分电路编制子程序,以及相应的软件设计。2.2 温度检测电路和A/D转换器的电路2.2.1 AD590温度传感器的概念AD590是一种二端式的集成温度传感器。图2-2-1 AD590引脚图其主要技术参数有:1)范围为-55+150。2)电压为+4+30V,由于AD590是一种恒流源形式的温度传感器,只需在其二端加上一定工作电压则其输出电流随温度变化而变化,其线性电流输出为,即温度每变化1,其输出电流变化1A;它以热力学温标零点作为零输出点,因此在25时,其输出电流为298.2A。3)经过激光平衡调整,AD590的校准精度可达+和-0.5,全温区范围线性度可达+和-0.3(AD590M)当其在10温区范围内校正后测量,精度可达+和-0.1,在全温区范围内(-55+145)使用,精度也可高达+、-1。由于AD590是一种电流型的温度传感器,因此具有较强的抗干扰能力,适用于计算机进行远距离温度测量和控制,远距离信号传递时,可采用一般的双绞线来完成,其电阻比较大,因此不需要精密电源对其供电,长导线上的压降一般不影响测量精度;不需要温度补偿和专门的线性电路。2.2.2 温度检测电路图2-2-2 电源转换电路在介绍温度检测电路之前,首先要说明一下电源转换电路。电压经过四个二极管两两导通整流滤波后,再经过电压转换芯片7805就可以将原来交流220V的电压转换成直流电压为+5V,即可以得到报警电路和温度检测电路所需要的电压值。温度检测电路由温度传感器AD590等组成,直接输出电流1A/K,输出电压为100mV/,经运算放大器LM358进行I/V转化后,再经A/D转换通道送到微处理器中,R6、R5、R2用于相互配合调节温度测量的满刻度值。图2-2-3温度检测电路当传感器AD590所处温区发生1的温度变化时,流过其所在回路的电流即产生1A的变化,则其输出电压的变化为:AD590的输出电流值说明如下:其输出电流是以绝对温度零度(-273)为基准,每增加1,它会增加1A输出电流,因此在室温25时,其输出电流。的值为Io乘上10K,以室温25而言,输出值为 。测Vo时,不可分出任何电流,否则量测值会不准。 AD590的输出电流(T为摄氏温度),因此量测的电压 。在本系统中通过温度集成器AD590对外部-55+150范围内的温度进行采样,在AD590的两端分别接地和接电源,得到一定的压差,因此会得到相应的工作电压,其输出电流会随温度变化而变化。电流1A/K其输出电压为100mV/,经运算放大器LM358进行I/V转化后,再送入A/D转换电路中进行模数转换,经过微处理器处理即可送到LED显示器显示温度。2.2.3 A/D转换器电路原理和电路接口图A/D转换一般都设置在前向通道中,它将外界输入的模拟信号转换成计算机数据总线能接受的数字量。在前向通道必须配置A/D转换电路时,首先考虑的是能否选用带有A/D的单片机,本系统中无法选择单片机片内有A/D部件,则必须在前向通道中配置A/D接口。要选择好的A/D转换器芯片,选择A/D转换芯片的原则从转换精度、转换速度、模拟信号输入通道数以及成本、供货来源等全面考虑。选择不同的A/D转换芯片,与单片机的接口电路要求不同,必须依芯片对控制电路的要求设置,接口电路必须满足这些要求。一般来说,A/D转换芯片输入的模拟电压都有规定的要求,如0+5V,0+10V,0+2V等,因此要考虑到传感器输出信号与之匹配。本系统中采用逐次逼近法A/D转换器电路原理。其主要原理为:将一待转换的模拟输入信号U1n与一个推测信号Ur相比较,根据推测信号大于还是小于输入信号来决定增大还是减少该推测信号相等时,向D/A转换器输入的数字就是对应模拟输入量的数字量。其“推测”值的算法如下:使二位进制计数器中(输出锁存器)的每一位从最高位起依次置1,每接一位时,都要进行测试。若模拟输入信号U1n小于推测信号U1,则比较器输出为零,并使该位清零;若模拟输入信号U1n大于推测信号U1,比较器输出为1,并使该位保持位1。无论哪种情况,均应继续比较下一位,直到最末位为止。此时,D/A转换器的数字输入即为对应模拟输入信号的数字量,将此数字输入就完成了A/D转换过程。1)A/D转换器的引脚说明:ADC0809是CMOS集成电路8位单片A/D转换器。双列直插28引脚封装。片内有8路模拟开关、模拟开关的地址锁存与译码电路、比较器 、256R电阻T型网络、树状电子开关、逐次逼近寄存器SAR、三态输出锁存,缓冲器、控制与时序电路等。ADC0809引脚功能说明如下:IN0IN7:8路输入通道的模拟量输入端。A、B、C口:8路模拟开关的三位地址输入端,用来选择8路模拟输入的一路进行A/D转换。 ALE: 地址锁存允许。ALE有效将三位地址A、B、C锁存到地址锁存器中。START:为启动控制输入端。它与ALE可以接在一起,当通过程序加上一个正脉冲便立即开始A/D转换。EOC: 转换结束信号输出端,高电平有效。在此输出端供给一个有效信号则打开三态输出锁存缓冲器,把转换后的结果送至外部数据线。COLCK:时钟输入端。CLOCK为600kHZ时,转换时间位100us。D0D7:8位数字输出段。Vcc: 电源输入端。GND:接地端。2)A/D转换的连接电路及应用图2-2-4 A/D转换的连接电路由图2-2-4可以看出ADC0809时钟CLK由8051ALE信号提供,ALE信号频率为f/6。用地址线低8位A0、A1、A2(P0.0P0.2)接0809的A、B、C三端用来对8路模拟通道进行选择。EOC经非门与8051 INT1(_)相接,0809与8051采用中断方式联络,外部中断1服务子程序读A/D转换结果,并启动下一次转换。0809启动条件如下: (2-1)因此启动时,应用写指令(使WR=1(_)),并且要保证地址线P2.6=0,其端口地址为DFFFH。ADC0809转换器将信号进行模数转换,再将数字信号传入8051进行微处理,通过LED显示温度。在由于A/D0809具有锁存的TTL三态输出,它的八条数据线和8051的八条数据线相连,采用线性选址法,其口地址为DFFFH。通道地址A,B,C由数据总线DB0,DB2,DB2提供。A,B,C地址线上的信息由ALE上升沿打入地址锁存器74LS373。2.3 单片机8051芯片介绍和主要电路2.3.1 MCS-51单片微机8051内部部件和接口电路MCS-5单片微机8051内部包含如下部件:8位CPU振荡器和时钟电路4K/8K 字节的程序存贮器。128/256字节的数据存贮器。可寻址外部程序存贮器和数据存贮器,各64K字节。二十多个特殊功能寄存器。32线并行I/O口。1个全双工串行I/O口。2/3个16位定时器/计数器。5/6个中断源,2个优先级。具有位寻址功能,有较强的布尔处理能力。图2-3-1 8051的引脚图图2-3-2 单片机的片外总线结构图由图2-3-2可以看到,单片机的引脚除了电源、复位、时钟接入、用户I/O口外,其余管脚都是为了实现系统扩展而设置的。这些引脚构成了MCS-51单片机片外三总线结构:1)地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供低8位地址(A0A7);P0口直接提供高8位地址(A8A15)。2)数据总线(DB):数据总线宽度为8位,由P0口提供。控制总线(CB):由四根独立控制线RESET、EA、ALE、PSEN(_)组成。2.3.2 振荡电路和时钟电路振荡电路和单片机内部的时钟电路一起构成了单片机的时钟方式,根据硬件不同,连接方式分为内部时钟方式和外部时钟方式。MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。这是MCS-51单片机的内部时钟方式。本系统中重点讲到的是外部时钟方式。图2-3-3外部时钟方式电路图由上面的图可以看到引脚XTAL2就是内部时钟发生器的输入端。因此,只需将外部振荡器的信号接至引脚XTAL2,而把内部反相放大器的输入端XTAL1引脚接地。通常接的外部信号一般为频率低于12MHZ的方波信号。另外,由于XTAL2端的逻辑电平不是TTL的,故还需要接一个上拉电阻。2.3.3 单片机的复位电路1)复位电路的复位类型通常单片机复位操作有上电复位、信号复位、运行监视复位。在本系统里主要用到的是上电复位和开关复位的组合。2)主要复位电路(1)上电复位和开关复位组合电路:在单片机系统设计过程中,经常会使用上电复位和手动复位,最常用的上电复位和开关复位组合电路为:图2-3-4上电复位和开关复位组合电路在这两种简单复位电路中,干扰容易串人复位端,在大多数情况下,不会造成单片机错误复位,但会引起内部某些寄存器错误复位。这时可在复位引脚上接一个去耦电容。如果应用现场干扰严重,或整个系统干扰严重,引起单片机复位,可采用屏蔽的办法解决,如加屏蔽网或移动位置等。(2)在实际应用系统中,为保证复位电路可靠地工作,常将RC电路接施密特电路后再接入单片机复位端,特别适合于应用系统现场干扰大,电压波动大的工作环境。图2-3-5抗干扰上电复位2.3.4 中断优先级8051单片机提供了5个中断源,其中两个为中断源,由INT0、INT1输入;I/O设置中断请求信号,或掉电故障等异常事件中断请求信号都可作为外部中断源连INT0、INT1。两个为片内的定时器/计数器溢出时产生的中断请求(用TF0、TF1做标志);另外一个为片内串行口产生的中断请求(TI或RI)。这些中断请求源分别由MCS-51的特殊功能寄存器TCON和SCON的相应位锁存。MCS-51的中断具有两级优先级,每一个中断源都可以通过对中断优先级寄存器IP中的相应位置或清0,编程为两级中断中的任一级高优先级和低优先级,置1为高优先级,清0为低优先级。低优先级可以被高优先级所中断,但不能被另一个低优先级中断所中断。高优先级中断不能被任何中断所中断。为了实现这些规定,中断系统中设有两个不可寻址的优先级状态触发器,其中一个用来指出正在服务于高优先级中断,并阻止其他所有中断的响应。另一个则指出正在服务于 低优先级中断,并阻止除高优先级中断以外的其他中断的响应。当同时接受到几个优先级相同的中断请求时,则由内部查询次序来确定响应哪一个中断请求。因此,在每一个中断级中又有第二类查询次序的中断优先级结构。处理器响应中断时,先置相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别)然后执行一个硬件子程序的调用使控制转移查询次序如下:1)IE0 (外中断INT0) 最高优先级 0003H2)TF0 (定时器0溢出中断) 000BH3)IE 1 (外中断INT1) 0013H4)TF1 (定时器1溢出中断) 001BH5)RI+TI (串行口中断) 0023H6)TF2+EXF2 (定时器2溢出中断) 最低优先级 002BH这种“同级内的优先级”,仅用来解决相同优先级中断源同时请求中断的情况,而不能中断正在执行的同优先级的中断。2.3.5 74LS373地址锁存器芯片介绍由于MCS-51单片机的P0口是分时复用的地址/数据总线,因此在进行程序存储器扩展时,必须利用地址锁存器将地址信号从地址/数据总线中分离开来。通常,地址锁存器可使用带三态缓冲输出的八D锁存器74LS373或8282,也可以使用带清除端的八D锁存器74LS273,地址锁存信号为ALE。但用的最多的是74LS373。图2-3-6 74LS373的结构图当三态门的使能信号线OE为低电平时,三态门处于导通状态,允许1Q8Q输出到OUT1OUT8,当OE端为高电平时,输出三态门断开,输出线OUT1OUT8处于浮空状态.G称为数据打入线,当74LS373用作地址锁存器时,首先应使三态门的使能信号OE为低电平,这时,当G输入端为高电平时,锁存器输出(1Q8Q)状态和输入端(1D8D)状态相同,当G端从高电平返回到低电平(下降沿)时,输入端(1D8D)的数据锁入1Q8Q的8位锁存器中。当用74LS373作为地址锁存器时,它们的锁存控制端G和STB可直接与单片机的锁存控制信号端ALE相连,在ALE下降沿进行地址锁存。2.4 8255输出口扩展2.4.1 8255的引脚介绍8255是可编程RAM/IO扩展器,片内有256*8位静态RAM,2个8位和1个6位可编程并行I/O接口,以及1个14位可编程定时器/计数器。还有地址锁存器和多路转换的地址/数据总线,可直接与MCS-51单片微机相连接。因此还是MCS-51应用系统最适用的扩展器件。图2-4-1 8255的引脚图AD0AD7:三态地址/数据总线。连接CPU的底8位地址/数据总线。IO/M:RAM/IO口选择信号输入端。CS:片选信号输入端,8255为CS,低电平有效。RD:读选通信号输入端。低电平有效。WR:写选通信号输入段。低电平有效。RESET:复位信号输入段。高电平有效,并初始化3个I/O口为输入方式。PA0PA7:A口的I/O线、I/O方向由命令字编程设定。PB0PB7:B口的I/O线、I/O方向由命令字编程设定。PC0PC7:C口的I/O线,或A口和B口的状态控制信号线。由命令字编程设定。Vcc:+5V电源线。Vss: 接地线。8255片内256*8位静态RAM,在速度上与MCS-51完全匹配。当IO/M=0时,CPU对8255的RAM进行读写,寻址范围为00H0FFH。2.4.2 8255与8051的外部接口电路图2-4-2 8255与8051的外部接口电路由上图可以看出8051通过地址锁存器与8255相连, 8255的片选信号CS及口地址选择线A0、A1分别由8051的P0.7、P0.0、P0.1经地址锁存器74LS373后提供。故8255的A、B、C口及控制口地址分别为FF7CH、FF7DH、FF7EH、FF7FH。8255的复位端与8051的复位端相连,都接到8051的复位电路上。必须根据外围设备的类型选择8255的操作方式,并在初始化程序中把相应控制字写入操作口。8255的编程如下:各端口地址是:A口地址:FF7CH B口地址:FF7DH C口地址:FF7EH 控制口地址:FF7FH8255的工作方式可由CPU写入一个控制字到8255控制字寄存器来选择。方式控制字共有八位,D7位为置方式标志,有效为1,假设要求8255工作方式0,且A口作为输出,B口作为输出,C口作为输入,则可得控制字为81H。2.5 单片机的抗干扰电路2.5.1 光电隔离抗干扰的简介单片机测控系统的开关信号,往往是通过芯片给出的低压电流如TTL电平信号,这种电平信号一般不能直接驱动外设,而需经接口转换等手段处理后才能用于驱动设备开启或关闭,如不加隔离可能会串到测控系统中造成系统误动作或损坏:因此在接口处理中亦应包括隔离技术。在开关量输出通道中,为防止现场强电磁干扰或工频电压会通过输出通道反串到测控系统,一般需采取通道隔离技术。最常见的隔离器件是光电隔离器。因为光信号的传送不受电场、磁场的干扰,可以有效地隔离电信号。工程上常用的隔离方法有光电隔离器、变压器、继电器和集成组件等,而光电隔离器有独特优点得到广泛应用。光电隔离器的种类繁多,常用的有发光二极管/光敏三极管、发光二极管/光敏复合晶体管、发光二极管/光敏电阻,发光二极管/光触发可控硅等,但从其隔离方法这一角度来看,都是一样的,即都通过电光电这种转换,利用“光”这一环节完成隔离功能。2.5.2 光电隔离器的原理电路GaAs红外发光二极管 光敏三极管图2-5-1光电隔离器的原理电路在图示的电路中,它是GaAs红外发光二极管和光敏三极管组成。当发光二极管有正向电流通过时,即产生人眼看不见的红外光,其光谱范围为7001000nm。光敏三极管接收光以后便导通。而当该电流撤去时,发光二极管熄灭,三极管截止。利用这种特性即可达到开关控制的目的。由于该器件是通过电光电这种转换来实现对输出设备进行控制的,彼此之间没有电气连接,因而起到隔离作用,隔离电压与光电隔离器的结构有关。2.5.3 光电隔离的电路在一般微机控制系统中,由于大都采用TTL电平,不能直接驱动发光二极管,所以通常加一个驱动区,如7406和7407等。图2-5-2光电隔离的电路当输出TTL电平为低电平时,7406输出为高电平,发光二极管截止,光电隔离器处于截止状态,VO端输出高电平;而当输出控制电平为高电平时,7406输出为低电平,发光二极管导通,光电隔离器处于导通状态,VO端输出低电平。需要注意的是光电隔离器的输入输出端两个电源必须单独供电,即用于驱动发光管的电源与驱动光敏管的电源不应是共地的电源,对于隔离后的输出通道必须单独供电,如上图所示;否则,如果使用同一电源(或共地的两个电源)外部干扰信号可能通过电源串到系统中来,当然,这里讲的单独供电,可以是单独使用不同的电源,也可用DC-DC变换的方法往输出端提供一个与光电输入端隔离的电源。如果从通断功能来看,光电隔离器其实是一隔离开关。利用光电隔离器也可完成电平转换,其转换后的输出电平与其供电电压值有关,而与光隔输入端无关。图2-5-3总电路框图2.6 键盘及显示电路2.6.1 键盘输入特点按键所用开关为机械弹性开关,均利用了机械触点的合、断。一个电压信号通过机械的断开、闭合过程。 图2-6-1 键盘抖动波形图由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下断开。因而,在闭合和断开的瞬间均伴随着一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510ms,这是一个很重要的时间参数,在很多场合都要用到。按键的稳定闭合时间由操作人员的按键动作持续时间决定,一般为十分之几秒到几秒时间。按键的闭合与否,反应在电压的上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下没有。为了确保按键的状态,必须消除按键抖动的影响,这也是按键抗干扰的主要的一个方面。2.6.2 按键接口电路的消抖措施消除按键抖动影响通常有硬件、软件两种方法。本系统采用双稳态消抖的硬件消抖方法。双稳态消抖的原理:图2-6-2双稳态消抖电路原理图图2-6-2中用两个与非门构成一个RS触发器,当按键为按下时,输出为1,当按键按下时,输出为0。此时即使由于按键的机械性能使按键因弹性抖动而产生瞬间不闭合,只要按键不返回原始状态,双稳态电路的状态不会发生改变,输出保持为0,不会产生抖动的波形。这一点很容易通过分析RS触发器的工作过程得到验证。设按键首先处于a位置,此时RS触发器的与非门输出端OUT1为高电平1,与非门2的输出端OUT2为0,此输出引入到与非门1的一个输入端,会把与非门1锁住,使其固定输出为1。如果此时按下按键,即使按键在a位置因弹性而产生瞬间抖动,形成一连串的抖动波形,即与非门1输入端出现了一连串的高和低电平,由于与非门2的输入端在按键没有到达b位置时始终是0,所以无论与非门1输入端的信号电平怎么变化,与非门1输出端OUT1的输出恒为1。当按键到达b时,一旦与非门2的输出端呈现低电平时,RS触发器将出现状态的翻转,此时,OUT2端输出为1,OUT1端输出为0,OUT1又引回与非门2的一个输入端,锁住与非门2,保证其输出恒为1,这样即使按键出现抖动,也不会影响OUT2的输出,因此OUT1的输出也恒为0。同样,在松开按键的过程中,只要一接通a,输出为1,在接通a的过程中,即使产生了弹性抖动,只要按键不与按键b发生接触,RS触发器的输出将保持不变。通过以上分析,可知,如果在按键信号输入端加上一个RS触发器就可以剔除按键抖动产生的干扰。2.6.3 矩阵键盘的概述1)矩阵键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低,列线电平如果为高,则行线电平亦为高。这一点是识别矩阵键盘按键是否被按下的关键所在.由于矩阵键盘中行、列线为多用键共用,各按键均影响该键所在行和列的电平。因此个按键彼此将相互发生影响,所以必须将、列线信号配合起来并作适当的处理,才能确定闭合键的位置。2)按键的识别方法矩阵键盘按键的识别方法分两步进行:第一步,识别键盘有无键被按下;第二步,如果有键被按下,识别出具体的按键。识别键盘有无键按下的方法是让所有列线均置为0电平,检查各行线电平是否有变化,如果有变化,则说明有键被按下,如果没有变化,则说明无键被按下(实际编程时应考虑按键抖动的影响,通常总是采用软件延时的方法进行消抖处理)。识别具体按键的方法是(亦称为扫描法):逐行置零电平,其余各列置为高电平,检查各行线电平的变化,如果某行电平由高电平变为零电平,则可确定此行此列交叉点处的按键被按下。3)键盘的工作方式单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式。键盘的工作方式的选取应根据实际应用系统中CPU工作的忙,闲情况而定.其原则是既要保证能及时响应按键操作,又要不过多占用CPU的工作时间。通常,键盘工作方式有三种,即:编程扫描、定时扫描和中断扫描。CPU对键盘的扫描采用程序控制方式,一旦进入键扫描状态,则反复地扫描键盘,等待用户从键盘上输入命令或数据。而在执行键入命令或处理输入数据过程中,CPU将不再响应键入要求,直到CPU返回重新扫描键盘为止。由图2-6-4可见键盘采用编程扫描方式工作,PB口输出逐行扫描信号,PA口输入8位列信号,均为低电平有效。8255A的A0、A1上,CS与P2.7相接,WR、RD分别与8051的WR、RD相连。2.6.4 LED显示原理及显示方式1)LED显示器结构LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是7段LED。这种显示块有共阴极和共阳极两种。图2-6-3 LED显示器引脚图共阴极LED显示块的发光二极管阴极共地。当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示块的发光二极管阳极并接。通常的7段LED显示块中有8个发光二极管,故也有人叫做8段显示器。其中7个发光二极管构成7笔字型“8”。7段显示块与单片机接口非常容易。只要将一个8位并行输出口语显示块的发光二极管因交相联即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据成为段选码。共阳极于共阴极的段选码互为补数。2)LED显示器的显示方式在单片机应用系统中使用LED显示块构成N位LED显示器。N根LED显示器由N根位选线和8*N根段选线。根据显示方式不同,为选线与段选线的连接方法不同。段选线控制字符选择,为选线控制显示位的亮、暗。LED显示器由静态现实与动态显示两种方式。3)LED动态显示方式的原理在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在疫区,由一个8位I/O口控制,形成段选线的多路复用,而共阴极点火供养几点分别由相应的I/O口线控制,实现各位的分时选通。8位LED动态显示电路只需要两个8位I/O口。其中一个控制段选码,另一个控制位选。由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,8位LED只可能显示相同的字幅。要向每位显示不同的字符,必须采用扫描显示方法。即在每一瞬间只使某一位显示相应字符。在此瞬间,段选控制输出相应字符段选码,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以保存视觉暂留效果。动态显示方式需要较大的驱动电流,所以一般都是通过驱动器来驱动LED的。现实的亮度同驱动电流大小、电亮时间和关断时间有关,调整电流大小和时间参数(扫描频率),可以控制LED显示亮度并稳定显示。 当LED选定后,要实测它工作点的正向压降,以便正确的选用限流电阻;同时,电流密度影响LED的寿命,电流密度越大,发光亮度越高,对寿命的影响就越大,因此,LED的驱动电流要有所限值,最大值不能超过最大正向电流。在实际运用中,如果直接驱动LED或者LED驱动器的输出没有加限流电阻,一般应该串联一个100的限流电阻。2.6.5 系统应用对于显示部分,从8255输出的显示信息经74LS373锁存缓冲,用来对LED的各段进行段选,各位LED显示器采用共阴极接法,通过控制阴极的电位来实现各位的选通。通过8255的扫描输出经2003来实现位选,用来显示设定的温度值和当前的温度值,以便进行调节。键盘部分采用1×3键盘矩阵,列回复信号送至8255的PC0口,连接后仍作为列选择线;行选择线则是与显示部分的位选线共用。初始时,将列选择线置为高电平,当有按键按下时,列选择线的电位取决于列选择线,通过相应行的电平状态判断有无按键按下,可以通过键盘的配合来调节温度的设定值。 图2-6-4键盘和显示器接口电路的接线图2.7 加热电路和报警装置2.7.1 加热电路图2-7-1 加热电路图电热器件由双向可控硅KS控制,KS由光电耦合器 4N25和晶体管9013触发。单片机8051的P2.0端输出的触发信号,经7407后,送到光电耦合器4N25。P2.0端输出高电平时,4N25没有电流输入,晶体管T截止,双向晶闸管KS关断,电热器不加热。当P2.0端输出低电平时,7407输出低电平,4N25的输入电流约为18m,输出端的电流大3.6m,经晶体管9013放大后,双向可控硅门极的电流可达200 m,双向可控硅导通,电热器加热。电阻R3的作用是限制触发电流,当双向可控硅KS的功率较小时,R3的值可由30改为100。过零检测电路由变压器B的其中一个绕组L3和电容器C2组成。L3产生2.5V的交流电压,通过C2交连到INT0和INT1端。INT0是过零检测端,它可对过零的上升信号检测而产生中断;INT1也是过零检测端,它可对过零的下降信号检测而产生中断。把INTO和INT1产生的中断综合处理,即可得到电源电压过零的时刻。选用不同的电热器件,启动的过程也不一样。对于电阻率不随温度变化的电热器件,可以直接启动,即在电压过零时触发双向可控硅KS。对于电阻率随温度变化的电热器件,通常使用降压启动方式,即开始通电时,电压逐渐上升,使电热器的工作电流在KS允许的范围以内。过一定的时间后,电热器件的工作电压才达到额定电压。2.7.2 报警装置首先通过按键对要达到的温度进行设定,通过加热装