单片机温度控制75158_第1页
单片机温度控制75158_第2页
单片机温度控制75158_第3页
单片机温度控制75158_第4页
单片机温度控制75158_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、 1 系统总体方案设计本次设计采用MCS-51单片机作为控制芯片,采用半导体集成温度传感器AD590采集温度信号。通过温度传感器将采集的温度信号转换成与之相对应的电信号,经过放大处理送入A/D转换器进行A/D转换,将模拟信号转换成数字信号送入到控制芯片进行数据处理。通过在芯片外围添加显示、控制等外围电路来实现对保温箱温度的实时检测和控制功能。本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成传感器信号的采集处理,信息的显示等;软件主要完成对采集的温度信号进行处理及显示控制等功能。系统结构框图如图2.1所示:保温箱AD590热源交流电源调理电路单片机最小系统A/D控制单片机显示设定继电器直

2、流电源图2.1 系统结构框图2.1系统硬件设计方案单片机应用系统的硬件电路设计就是为本单片机温控系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、设计合适的接口电路等。系统设计应本着以下原则:(1) 尽可能选择典型电路,并符合单片机常规用法。本设计采用了典型的显示电路、A/D转化电路,为硬件系统的标准化、模块化打下良好的基础。(2) 硬件结构应结合应用软件方案一并考虑。软件能实现的功能尽可能由软件实现,以简化硬件结构。由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实

3、现,如键盘的去抖动问题。(3) 系统中的相关器件要尽可能做到性能匹配。系统中所有芯片都应尽可能选择低功耗产品。本系统的硬件电路主要包括模拟部分和数字部分,从功能模块上来分有主机电路、数据采集电路、键盘显示电路、控制执行电路。系统硬件包括:温度传感器、信号调理电路、AD转换器件、MCS-51单片机、键盘输入、LED温度显示器、温度控制电路。 芯片选择 单片机就是在一块硅片上集成了微处理器、存储器和各种输入输出接口电路的微型计算机,简称单片机。单片机以其较高的性能价格比受到了人们的重视和关注。它的优点就是体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。单片

4、机根据其基本操作处理的位数可分为4、8、16、32位单片机,应用最为广泛的是八位单片机。根据本次设计的实际情况和要求,在本次设计中采用AT89C51作为系统的控制芯片。AT89C51是一种低功耗、高性能CMOS 8位微控制器,具有4K的系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。2.1.2 温度检测本课题设计的温度控制范围为25-80摄氏度,温度传感器采用采用AD590半导体集成温度传感器。A/D590具有较高的精度和重复性,不需辅助电源,线性好,使用方便,便

5、于微机系统测控。被测温度信号为一路由AD590测得的代表温度的电压信号,经温度调理电路放大后使其在0-5V范围内,使其适合于A/D转换器的输入电压范围。2.1.3 A/D转换电路A/D转换电路的种类很多,例如,计数比较型、逐次逼近型、双积分型等等。选择A/D转换器件主要从转换速度、精度和价格上考虑。逐次逼近型A/D转换器,在精度、速度和价格上都比较适中,是最常用的A/D转换器。双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢。近年来在微机应用领域中也得到了广泛的应用。本次设计采用八路模拟输入通道的逐次逼近型的八位A/D转换器ADC0809。采用ADC0809作为与单片机

6、的接口电路,它的结构比较简单,转换速度较高。采用ADC0809作为A/D转换器具有与单片机连接简单的优点,它是八位的转换器可以与八位的单片机直接连接,这样就简化了系统的连接电路也有利于系统软件的编写。 键盘输入 键盘可分为编码式键盘和非编码式键盘,键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号和键值的称为编码式键盘;靠软件识别的为非编码式键盘。在单片机组成的测控系统中,用得最多的是非编码键盘。在这里采用的就是非编码式键盘。键盘的连接方式采用独立连接式,这种连接方式能够简化程序的编写。 LED显示 在单片机应用系统中使用的显示器主要有发光二极管显示器(LED)和液晶显示器(LCD)。采用

7、LED作为系统的数据显示器具有价格低、性能稳定和响应速度快等特点。LED显示方式有静态显示、动态显示和串口显示。为了节省系统本身的硬件资源,在这里LED的显示方式采用串行静态显示方式。利用串口可以工作在移位寄存器方式,驱动LED静态显示。这样就可以充分的利用并行口,并将并行口用到最需要的地方去,同时主程序不需要扫描显示器,使它有更多的时间处理其他事情。这种显示方法用于显示位数少、显示亮度大的地方能够达到很好的显示效果。 控制电路 控制电路作为单片机系统的后向通道,他是将单片机处理后的数字控制信号用输出口输出,并将该数字信号用于对控制对象的控制。由于单片机的输出信号电平很低,无法直接驱动外围设备

8、进行工作,因此在单片机的后向通道中需要外围设备的驱动、信号电平的转换以及隔离放大等技术。本次设计采用继电器作为控制电路的主要器件,通过继电器可以实现直流信号控制交流负载的功能,从而实现单片机系统的控制功能。2.2系统软件设计方案系统的软件设计采用模块化设计,采用模块化设计可以简化系统软件的编写,使软件编写思路更加简单明了。系统软件主要由三大模块组成:主程序模块、功能实现模块和运算控制模块。主程序模块用于实现各个子程序间的跳转。功能实现模块主要由A/D转换子程序、键盘处理子程序、显示子程序、继电器控制程序等部分组成。运算控制模块涉及标度转换子程序等。3 系统硬件设计3.1 中央处理器MCS-51

9、系列单片机是8位增强型,其主要的技术特征是为单片机配置了完善的外部并行总线和具有多级识别功能的串行通讯接口(UART),规范了功能单元的SFR控制模式及适应控制器特点的布尔处理系统和指令系统。属于这类单片机的芯片有许多种,如8051、8031、80C51等等。由于单片机具有较高的性能比,国内MCS-51系列单片机应用最广,易于开发、使用灵活、而且体积小、易于开发、抗干扰能力强,可以工作于各种恶劣的条件下,工作稳定等特点。本设计本着实用性和适用性的要求,选择AT89C51单片机作为中央处理器。3.1.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的具有低电压,高性

10、能CMOS 的8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如图3.1为AT89C51的内部结构框图。图3.1AT89C51的内部结构框图AT89C51单片机与MCS-51系列单片机兼容, AT89C51内部有4K字节可编程闪烁存储器, 128*8位内部RAM,两个16位定时器/计数器, 5个中断源, 32可编程I/O线及串行通道。闪烁存储器是一种可编程又可擦除只读存

11、储器(EEPROM),给用户设计单片机系统和单片机系统带来很大的方便,深受广大用户的欢迎。AT89C51有片内振荡器和时钟电路 ,具有低功耗的闲置和掉电模式,在空闲方式下,CPU停止工作,但允许内部RAM、定时器/计数器、串行口和中断系统继续工作。在掉电方式下,能保存RAM的内容,但振荡器停止工作,并禁止所有其他部件工作。还具有三级程序存储器锁定, 全静态工作频率0Hz-24Hz, 数据保留时间可长达10年。 3.1.3特殊功能存储器在单片机内高128B RAM中,由有21个特殊功能寄存器(AFR),它们离散的分布在80H-FFH的RAM空间中,访问特殊功能寄存器只允许使用直接寻址方式。表3-

12、2为AT89C51单片机特殊功能寄存器及其相应地址7。表3-2 专用寄存器名称,功能及对应的RAM地址名称简单描述地址ACC累加器(专门用于存储算术和逻辑运算的结果)0E0HBB寄存器(专门用于乘/除法运算)0F0HPSW程序状态寄存器0D0HSP推栈指针寄存器81HDPTR16位数据指针寄存器。CPU访问外部RAM时地址指针,由两个8位寄存器DPH(83H)、DPL(82H)组成且可单独访问。P0端口0状态寄存器(初始值为0FFH)80HP1端口1状态寄存器(初始值为0FFH)90HP2端口2状态寄存器(初始值为0FFH)0A0HP3端口3状态寄存器(初始值为0FFH)0B0HIP中断优先级

13、控制寄存器0B8HIE中断允许控制寄存器0A8HTMOD定时器/计数器方式控制寄存器89HTCON定时器/计数器控制寄存器88HTH0定时器/计数器0高字节8CHTL0定时器/计数器0低字节8AHTH1定时器/计数器1高字节8DHTLI定时器/计数器0低字节8BHSCON串行控制寄存器98HSBUF串行数据缓冲器99HPCON电源控制寄存器87H3.1.4芯片擦除整个EPROM阵列电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频

14、率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.1.5复位电路的设计复位使单片机处于起始状态,并从该起始状态开始运行。AT89C51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,内部RAM处于不断电状态。其中的数据信息不会丢失,也即复位

15、后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。按键复位电路如图3.3所示8。 图3.3 复位电路3.1.6时钟电路设计时钟电路是单片机的心脏,它控制着单片机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。AT89C51内部有一个反相振荡放大器,XTAL1 和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本设计

16、采用的晶振频率为12MHZ。其时钟电路如图3.4所示。51系列单片机还可使用外部时钟。在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。 图3.4 时钟电路3.2温度传感器AD590温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化和过程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。AD590温度传感器不但实现了温度转化为线性电量测量,而且精度高、互换性好。AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制

17、场合。由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。本设计采用AD590作为温度传感器,它只需要一个电源即可实现温度到电流的线性变换,然后再终端使用一只取样电阻,即可实现电流到电压的转换。它使用方便,并且具有较高的精度。图3.5为AD590的封装形式和基本应用电路。图3-5 AD590封装形式和应用电路AD590集成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片上,能直接给出正比于绝对温度的理想线形输出,一般用于-55+150之间的测量温度。温敏晶体管在管子的集电极电流恒定时,其基极发射极电压与温度成线形关系,由于生产厂家生产时采用激光微调来校

18、正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为273.2K),输出电流微273.2uA,灵敏度微1uA/K。当其感受的温度升高或者降低时,则其电流就以1uA/K的速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大小。为克服温敏晶体管vb电压产生时的离散性,采用了特殊的差分电路。集成温度传感器具有电压型和电流型两种。因此,它不容易受接触电阻、引线电阻、电压噪音的干扰,具有很好的线性特性。AD590主要特性如下: 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即: (3-1)式中:Ir为流过器件(AD590)的电流,单位为mA;T为热力学温度,单位为K

19、。 AD590的测温范围为-55+150。 AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 输出电阻为710MW。 精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为±0.3。AD590温度传感器作为一个恒流源,在本设计的温度检测电路中在AD590的输出端接一取样电阻可将输出电流信号变化转换为电压信号变化。由于AD590温度传感器温度每变化1其输出电流变化1mA。所以在接上10K的取样电阻的情况下,温度

20、每变化10,输出电压就将变化0.1V。3.3 信号调理电路经过温度传感器采集输出的电压信号一般来说是非常微弱的,因此,在送往单片机处理之前应对该信号进行放大。本系统所采用的A/D转换器为ADC0809,由于ADC0809的输入信号应在05V之间,因此,经过放大电路放大的信号进入A/D转换器的电压信号应控制在05V之间,根据此原则可设计合适的放大倍数。信号调理电路主要由运算放大器0P07等组成。为了使温度检测电路的输出电压能够适合于A/D转换器的参考电压,利用超低温漂移高精度运算放大器0P07将温度电压信号进行放大到05V的范围之内,便于A/D进行转换,以提高温度采集电路的可靠性。本设计中,信号

21、调理电路部分由集成运放OP07分别构成一个电压跟随器,电压比较器和一个同相输入放大器用于对AD590输出的小电压信号进行放大处理9。信号调理电路如图3.6所示图3.6 温度检测电路在该放大电路中,电压跟随器起阻抗匹配的作用。反馈电阻为零时,放大倍数为1,电压跟随器的输入电压等于输出电压电压比较器用于对输出电压小信号电压进行调零,在上述电路图中的电压比较器部分由于R2=R4 R3=R5 可得电压比较器的输出电压 根据电压跟随器的输出电压调节电位计R9就改变电压比较器的输入电压。使得当温度为温度测量下限时电压比较器的输出电压为零。起放大作用的是同相输入放大器OP07。其放大倍数: 因此放大器的输出

22、电压3.4温度标定本设计的温度标定是在室温环境条件下标定的。由于温度传感器输出与温度变化有良好的线性。根据温度调理电路,输出电压和温度变化也具有一定的线性关系。根据实验测得的电压和温度数据,在此我们可以采用一元线性回归的方法求得温度和电压的线性方程。一元线性回归是处理两变量之间的关系,即两个变量X和Y之间若存在一定的关系,则可通过试验,分析所得数据,找到两者之间的关系的经验公式。假如两变量之间的关系是线性的则称为一元线性回归。由于变量测量中存在随机误差,一元线性方程回归可用最小二乘法处理求得一元线性回归方程。最小二乘原理指出,最可信赖值应在使残余误差平方和最小的条件下求得10。根据实验测量结果

23、可得,在一定温度x下的电压输出值 y,得到如下表所示。表3-3x/22304050607080y/V00.421.061.682.262.863.45根据表3-3所得的数据,我们可以知道电压输出范围在0-5V之间,适合A/D转换参考电压的电压范围。为了了解输出电压 y与温度x之间的大致关系,把数据表示在坐标图上,如图3-7所示,这种图叫散点图。从散点图可以看出,输出电压 y与温度x大致成线性关系。因此,我们假设 x与 y之间的内在关系是一条直线,有些点偏离了直线,这是试验过程中其他随机因素的影响而引起的。这样就可以假设这组测量数据有如下结构形式: , t=1,2, N (3-2)式中的 ,分别

24、表示其他随机因素对电压测得值 , , 的影响,一般假设它们是一组相互独立、并服从同一正态分布的随机变量,式(3-2)就是一元线性回归的数学模型。此例中 N7。我们用最小二乘法来估计式(3-2)中的参数、。 设 b0和b分别是参数和的最小二乘估计,便可得到一元线性回归的回归方程 (3-3)式中的b0和b是回归方程的回归系数。对每一个实际测得值与这个回归值 之差就是残余误差:, t=1,2, N (3-4)应用最小二乘法求解回归系数,就是在使残余误差平方和为最小的条件下求得回归系数b0和b的值。用矩阵形式,令, , , 则式(3-2)的矩阵形式为 (3-5)假定测得值的精度相等,根据最小二乘原理,

25、回归系数的矩阵解为 (3-6)代入数据后:, 求解线性方程系数:因此 b0=-1.34 b=0.06线性方程为: (3-7)3.5 A/D转换ADC0809是一种8位逐次逼近式A/D转换器,其内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身既可看作一种输入设备,也可以认为是并行I/O接口芯片。故ADC0809可以和微机直接接口,本设计就是用AT8951和ADC0809直接相连的。ADC0809采用双列直插式封装,图3.8为ADC0809引脚图,共有28条引脚,主要引脚功能为: IN0IN7: 为八路模拟电压输入线,用于输入被转换的模拟电压。 ALE: 为地址锁存允许输入线

26、,高电平有效。 ADD-A、ADD-B和ADD-C: 为地址输入线,用于选择IN0IN7上那一路模拟电压送给比较器进行A/D转换。ADDA、ADDB和ADDC对IN0IN7的选择如表3-4所列: START: 为“启动脉冲”输入线,上升沿清零SAR,下降沿启动ADC0809工作。 EOC:为转换结束输出线,该线上高电平表示A/D转换已结束。 OE:为“输出允许”线,高电平时能使22引脚上输出转换后的数字量。 图3.8 ADC0809引脚图表3-4 8位模拟开关功能表被 选 模 拟 电 压ADDCADDBADDAIN0000IN1001IN2010IN3011IN4100IN5101IN6110

27、IN7111AT89C51与ADC0809的连接方法如图3.9所示,AT89C51通过地址线P2.7和写控制信号线用一个或非门联合控制启动转换信号端(START)和地址锁存信号端(ALE)。地址线P2.7和读控制信号线用一个或非门联合控制输出允许控制端(EOC)。低三位地址线加到ADC0809的ADDA、ADDB、ADDC端,所以选中ADC0809的IN0通道的地址为7FF8H。转换结束信号EOC通过一个反相器接到INT1。图3.9 AT89C51与ADC0809连接图AT89C51和ADC0809连接通常可以采用查询和中断两种方式。本系统采用中断方式传送数据,EOC线作为CPU的中断请求输入

28、线。CPU线响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量。其中和START的逻辑关系分别为:P2.7P2.7 +START= P2.7= P2.7 +对ADC0809地址的确定:根据系统硬件连接图可知所选定模拟电压路数为IN0,其对应的地址为ABC=000,即P0.0、P0.1、P0.2=0 0 0;又P2.7=0时才能启动ADC0809工作和使AT89C51从ADC0809接收A/D转换电压的数字量。故确定ADC0809其中一个地址为: 0111 1111 1111 1000B=7FF8H ,其中“_ ”表示固定量。ADC0809的IN0和变送器输出端线连,故

29、IN0上输入的0V5V范围的模拟电压经A/D转换后可由AT89C51通过程序从P0口输入到它的内部RAM单元。ADC0809所需时钟信号可以由AT89C51的ALE信号提供。AT89C51的ALE信号通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6。本系统AT89C51主频是12MHZ,ALE信号频率为2MHZ,使AT89C51的ALE上信号经过4分频后接到ADC0809的CLOCK输入端,就可获得500KHZ的A/D转换脉冲,当然,ALE上脉冲会在MOVX指令的每个机器周期少出现一次,但通常情况下影响不大。ADC0809时序图如图3.10所示。 ALE地址稳定模拟入START

30、启动EOCtEoc10us图3.10 ADC0809时序图从时序图可以看出,在启动ADC0809后,EOC约在10us后才变为低电平,EOC线经过反相器和AT89C51线相连,这即是AT89C51采用中断方式来和ADC0809传送A/D转换后的数字量的。为了给OE线分配一个地址,把AT89C51RD和P2.7经或门和OE相连。平时,使OE处于低电平封锁状态,在响应中断后,AT89C51执行中断服务程序中如下两条指令就可以使OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。AT89C51执行如下程序可以启动ADC0809工作。MOV DPTR , # 7FF8H MOVX

31、 A , DPTR; OE变为高电平,数字量送A3.6 LED显示单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED;液晶显示器,简称LCD。前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口复杂,成本较高。结合本设计的特点,在这里系统的显示采用发光二极管作为显示器件。单片机中使用7段LED构成字形“8”,另外,还与一个小数点发光二极管用以显示数字、符号及小数点。这种显示器有共阴极和共阳极两种,如图3.11所示。发光二极管的阳极连在一起称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由八个发光二极管组成,其中,7个发光二极管构成字形“8”的各个笔划(段)a

32、-g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压是,该段笔划即点亮;不加电压则该段二极管不亮。为了保护各段LED不被损坏,需要外加限流电阻11。图3.11 数码管如果要显示某个字形,则应使此字形的相应段点亮,也即送一个不同的电平组合代表的数据来控制LED的显示字形,此数据称为字符的段码。数据字位数与LED段码的关系如表3-4所示。表3-4 数码管各段与输出口各位的对应关系输出口各位D7D6D5D4D3D2D1D0数码管各段dpgfedcba如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段

33、亮。如要显示“0”,共阳极数码管的字型编码应为:11000000B(即C0H);共阴极数码管的字型编码应为:00111111B(3FH)。依次类推,可求得数码管字型编码如表3-5所示。表3-5 数码管字型编码表字型共阳极共阴极dpgfedcba字型码dpgfedcba字型码011000000C0H001111113FH111111001F9H0000011006H210100100A4H010110115BH310110000B0H010011114FH续表 3-541001100199H0110011066H51001001092H011011016DH61000001082H0111110

34、17DH711111000F8H0000011107H81000000080H011111117FH91001000090H011011116FHA1000100088H0111011177HB1000001183H011111007CHC11000110C6H0011100139HD10100001A1H010111105EHE1000011086H0111100179HF100011108EH0111000171H灭11111111FFH0000000000H本设计显示采用LED串行静态显示。MCS-51系列单片机的串行口RXD,TXD为一个全双工串行通信口,当工作在方式0下可作同步移位寄

35、存器用,其数据由RXD(P3.0)端串行输入或输出;而同步移位时钟由TXD(P3.1)串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。在不需要使用串行通信的场合,利用串行口加外围芯片74LS164就可以构成一个或多个并行输入/输出口,用于显示器LED驱动。波特率(每秒传输的位数)固定在fosc/12,即当晶振为12MHZ时,波特率为1MBPS。在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将状态寄存器的TI位置1,TI必须由软件清零。单片机与4片串入并出移位寄存器74LS164相连。其中,RXD作为164的数据输入,TXD作为4片164的同步时钟。程序运行时

36、,单片机将4个数码管的段码(4个字节)连续发送出来,通过串行口送给164。4位字型码送完后,TXD保持高电平。此时每片164的并行输出口将送出保存在内部移位寄存器中的8位的段码给数码管,令数码管稳定地显示所需的字符11。74LS164是8位串入并出移位寄存器。它的引脚如图3.12所示。A、B为串行输入端,QAQH为串行输出端,CLK为串行时钟输入端,为串行输出清零端,VCC为+5V电源输入端,GND为接地端。具体输入输出关系如表3-6所示。X代表任意状态;QA0、QB0 QH0代表在稳态输入条件建立之前QA、QBQH的输出状态;QAn、QBn QHn代表在最近的时钟上升沿转换之前QA、QBQH

37、的输出状态;H/L、QAn QBn代表在最近的时钟上升沿转换之后QA、QBQH的输出状态。表3-6 74LS164输入输出关系如所示输入输出清除 时钟 A BQA QB QHL X X XH L X XH H HH L XH X LL L LQA0 QB0 QH0H QAn QGnL QAn QGnL QAn QGn 图3.12 74LS164引脚如图串行显示电路属于静态显示,比动态显示亮度更大一些。由于74LS164在低电平输出时,允许通过的电流达8mA,故不必添加驱动电路,亮度也比较理想。与动态扫描相比较,无需CPU不停的扫描,频繁地为显示服务,节省了CPU时间,软件设计也比较简单。由于本

38、设计采用的是共阳极数码管,所以相应的亮段必须送0,相应的暗段必须送1。原理图如图3.13所示:图3.13 LED串行静态显示3.7 键盘接口键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一个选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的

39、识别,决定按键的读数等都靠软件完成,故硬件较为简单,但占用CPU较多时间。非编码键盘有:独立式按键结构、矩阵式按键结构。本设计采用的是非编码独立连接式的键盘。在非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式。

40、独立式按键接口就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。优点就是电路配置灵活,软件结构简单;缺点就是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘是用于按键较少或操作速度较高的场合8。本设计中由于所用键盘不多,所以采用独立连接式的查询式键盘就能够满足设计要求。键盘接口与键盘程序的根本任务就是要检测有没有键按下?按下的是那个位置的键?键值是多少?在本次设计中采用了软件扫描的方法。通过对键盘接口P1.0和P1.1的查

41、询判断是否有键按下。本次设计采用了软件去抖动的方法。当有键按下时,按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会使按键命令的错误执行和重复执行。采用软件延时的方法来避开抖动阶段,这一延时过程一般大于5ms。3.8 控制电路在本设计中,被测温度信号经采样处理后,还需要通过单片机系统的P1.2口输出用以控制保温箱的温度,通过这种方式达到控制的目的。控制的方式主要有模拟量控制和开关量控制。本系统采用的是开关量控制。所谓的开关量控制就是通过控制设备的“开”或“关”状态的时间来达到控制的目的6。由于输出设备往往需要大电压来控制,而单片机系统输出的为TTL电平,这

42、种电平不能直接驱动外部设备的开启和关闭。另一方面,许多外部设备在开关过程中会产生很强的电磁干扰信号,如果不隔离会使系统进行错误的处理。因此在开关量的输出控制过程中要考虑到两个问题,一要隔离;二要放大。本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔离作用,在继电器前面加一个三极管用以放大输出信号就可以驱动继电器的闭合和断开,从而实现弱电控制强电的效果。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流控制较大电流的一种开关。故在电路中起自动调节、安全保护、转换电路等作用。在工业自动化控制系统中,继电器

43、经常被用来控制执行机构, 特别是应用在一些耐潮、耐腐蚀、防爆的特殊装置中。固态继电器和MCS-51系列单片机组成的控制系统, 具有抗干扰性强、编程简单、系统兼容性好等特点,具有非常广阔的应用前景。继电器一般由通电线圈和触电组成。当线圈通电时,由于磁场作用,使开关触电闭合。当不通电时,则开关触点断开。一般线圈可用直流低电压控制(+5V,+9V,+12V)。继电器的特性参数包括输入和输出参数,主要的参数为额定输入电压、额定输出电流、浪涌电流。根据输入电压参数值大小,可确定工作电压大小。如采用TTL或CMOS等逻辑电平控制时,采用有足够带载能力的低电平驱动,并尽可能使“0”电平低于0.8 V。如在噪

44、声很强的环境下工作,不能选用通、断电压值相差小的产品,必需选用通、断点压值相差大的产品,(如选接通电压为8 V或12 V的产品)这样不会因噪声干扰而造成控制失灵 。本设计就是采用直流驱动电压为+5V的继电器。触电输出部分可以直接与市电连接。继电器控制电路如图3.14所示:3.14继电器控制电路4 系统软件设计本次单片机温控系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。系统软件的功能又可分为两大类:一是监控软件,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件,它是用来完成各种实质性的功能如测量、显示等功能。每一个执行软件也就是一

45、个小的功能执行模块。本文将各执行模块一一列出,各执行模块规划好后,就可以规划监控程序了。本系统程序设计包括温度采集子程序、显示子程序、标度转换资程序、键盘子程序、控制子程序11。程序流程图如图4.1所示。开始初始化温度参数采样当前温度当前温度和设定温度送显示缓冲设定温度-当前温度继电器闭合继电器断开维持状态读键盘键值?向上键向下键设定温度减1设定温度加1无键按下 小于等于-2 大于等于2图4.1 系统流程图4.1程序初始化程序初始化部分根据系统硬件原理图及设计要求对单片机系统进行系统资源分配、参数的设置以及定义。系统内部资源分配和参数设置如下:A/D端口地址(ADPORT): 7FF8H显示缓

46、冲起始地址:(LEDBUF): 30H段码存储起始地址(TEMP): 40H设定温值存储地址(SETTEMP): 50h测量温度存储地址(CURTEMP):51H温度设定上限(HIGHLIMIT): 80温度设定下限(LOWLIMIT): 25温度测量上限(HIGHTEMP) 107温度测量下限(LOETEMP) 21初始化程序代码如下:ADPORT EQU 7FF8H ;A/D端口地址 LEDBUF EQU 30H ;显示缓冲TEMP EQU 40H ;段码存储UP EQU 1 ;增温DOWN EQU 2 ;减温LOWLIMIT EQU 25 ;设定值下限HIGHLIMIT EQU 80 ;

47、设定值上限LOWTEMP EQU 21 ;A/D 0HIGHTEMP EQU 107 ;A/D 255SETTEMP EQU 50H ;设定温值CURTEMP EQU 51H ;测量温度DIN BIT 0B0H ;P3.0CLK BIT 0B1H ;P3.1 ORG 0000HLJMP START4.2主程序主程序的编写是为了实现程序在各个模块间的跳转。这样使程序编写思路更加明了,简化了程序的编写难度,有利于程序的调试。本软件系统包括A/D转换模块,标度转换模块,显示模块,键盘模块,控制模块等。主程序代码如下:START:MOV SETTEMP, #20 ;初始恒温值为20MLOOP:CALL

48、 TESTKEY ;测试有无键入JNZ KEYPRESSED ;更改设定值CALL DISPLAYRESULT ;数制转换CALL DISPLAYLED ;显示CALL READTEMP ;读入温度CONTROL: ;控制子程序KEYPRESSED: ;键盘子程序开始初始化启动A/D转换A/D转换完 成?数据输出延时结束END4.3 A/D转换子程序根据系统硬件连接图可知,在系统中将ADC0809作为一个外部扩展并行I/O口,采用线选寻址。由P2.7和联合控制启动转换信号端(ATART)和ALE端,低三位地址线架到ADC0809和ADDA,ADDB,ADDC端,所以选中ADC0809的IN0通

49、道的地址为7FF8H。启动DAC0809的工作过程是:先送通道号地址到ADDA,ADDB,ADDC,由ALE信号锁存通道号地址,后让ATART有效,启动A/D转换,即执行一道“MOVX DPTR ,A”指令产生信号,使ALE,START有效,锁存通道号并启动A/D转换,A/D转换完毕后,EOC端发出一正脉冲,申请中断。 图4.2 A/D转换流程图 在中断服务程序中,“MOV A , DPTR”指令产生信号,使OE端有效,打开输出锁存器三态门,8位数据便读入到CPU中。A/D转换子程序流程图如图4.2所示。A/D转换子程序代码如下:READAD: MOV DPTR, #ADPORTCLR AMOVX DPTR, A ;START A/DJNB P3.3, $MOVX A, DPTR ;读入结果RET4.4 标度转换子程序系统温度测量范围的计算原理:根据温度标定结果选取两个温度状态T1 T2,模拟输出电压V1 V2;根据0809的输入范围在0到5伏,即可计算出温度极限。计算公式如下:0伏时对应的温度TL:T1-(V1-0)(T2-T1)/(V2-V1)5伏时对应的温度TH:T1-(V1-5)

温馨提示

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

评论

0/150

提交评论