《基于AT89S51单片机单片机控制空调温度系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于AT89S51单片机单片机控制空调温度系统毕业论文.doc(33页珍藏版)》请在三一办公上搜索。
1、摘 要本文设计了一个典型的智能电子系统,即单片机控制空调温度系统。首先介绍了单片机在各个领域的应用及发展,将传统温度控制和使用单片机控制温度进行了比较,然后根据设计要求以AD590为采集器、89S51为处理器,以空调机为执行器件,通过单片机汇编语言实现对室内温度的控制来完成设计任务所提出的温度控制要求。本论文在温度控制系统的硬件设计进行了简单的介绍的基础上,重点对其软件单元设计部分进行了详细的分析:通过使用汇编语言对A/D转换电路、显示电路等进行实时控制。关键词 :单片机 空调机 温度采集 A/D转换 汇编。Abstract In this paper, a typical design of
2、 intelligent electronic systems, that is, single-chip temperature control air-conditioning system. Single-chip first introduced in various fields of application and development of traditional single-chip temperature control and the use of temperature control were compared, and then to AD590 in accor
3、dance with design ideas for the collector, 89S51 for the processor to the device for the implementation of air conditioners through the single-chip assembly language to achieve control of room temperature to complete the design task by the temperature control requirements. In this paper, the tempera
4、ture control system hardware design brief. Software design with emphasis on some of its detailed analysis carried out: through the use of assembly language , to achieve A / D conversion ,real-time control circuit and so on.Key Words :Single-chip,air-conditioning,temperature acquisition A / D convers
5、ion,compilation.目 录摘 要.Abstract.目 录.第1章 绪论.11.1 单片机的应用.11.2 温度控制系统的发展及意义.11.3 课题的背景.2 1.4 本次设计的要求.2第2 章 特殊器件介绍.6 2.1 温度传感器AD590.6 2.2 AT89S51单片机.102.3 光电耦合器 MOC304012第3章 硬件单元.133.1硬件各单元方案设计与选择.133.2 单元电路设计.16第4章 软件设计方案.194.1 系统软件设计说明.194.2 主程序流程.194.3 A/D转换子程序.204.4 显示子程序.224.5 键盘子程序.234.6 延时子程序.25
6、第5章 总结.27 致谢.28 参考文献.29附录.30第一章 绪论1.1 单片机的应用单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。基于单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制
7、,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,空调机、录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。1.2 温度控制系统的发展与意义温度控制系统是人类供热,降温的主要设备的驱动来源,它的出现迄今已有两百余年的历史,期间,从低级到高级,从简单到复杂,随着生产力的发展和对温度控制精度要求的不断提高,温度控制系统的控制技术得到不断迅速发展。随着生产的发展,智能温度控制系统日益广泛的用于工业生产的各个领域,成为发展国民经济的重要热工设备之一
8、。在现代化的建设中,能源的需求非常大,然而我国的能源利用率极低,所以实现温度控制的智能化,有着极为重要的实际意义。 对于温度控制系统而言,温度t是通过控制加热装置的供电电压u来控制的。工艺要求温度应控制在温度给定值tg附近,考虑到温度有非线性、时变性以及室温、工作条件等的不良扰动因素,且温度控制通常要求具有快速、无超调的响应特性,用常规的PID调节器很难满足这些要求,而单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,使用单片机控制温度,从而使温度控制变得简便,精确。1.3 课题的背景随着新技术的不断开发与应用,近年来单片机发展十分
9、迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是生活、工业、农业等,对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。本系统所采用的是单片机和温度传感器所组成,要求温度在-1045变化,但能自动控制。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠
10、性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。本系统所使用的单片机89S51使温度控制大为简便。1.4 本次设计的要求设计一个空调机的温度控制单元。用单片机技术及相应仿真平台进行开发,通过数据采集系统,对温度进行采集并作A/D转换,再传输给单片机。以空调机为执行器件,通过单片机程序来完成对室内温度的控制。 设计主要要求如下:(1) 温度设定范围在-1045,最小区分温度为1,标定温差1。(2) 用二位十进数码显示当前温度。(3) 能根据设定的温度实现西东加热或降温处理。(4) 设计出控制系统电路单元。第二章 基础器件介绍2.1 温度传感器AD590 AD590是AD公
11、司里利用PN结正向电流与温度的关系制成的电流输出型两端温度传感器。实际上,中国也开发出了同类型的产品SG590.这种器件在被测温度一定时,相当于一个恒流源。该器件具有良好的线性和互换型,测量精度高并具有消除电源波动的特性。即使电源在5V10V之间变化,其电流只是在1毫安以下微小变化。 集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值与热力学温度T和通过发射极电流I的下述关系实现对温度的检测如公式(2.1): (2.1) 式中:K为波尔兹常数,q为电子电荷绝对值。集成温度传感器具有线性好,精度适中,灵敏度高,体积小,使用方便等优点,得到广泛应用。集成温度传感器的输
12、出形式分为电压输出与电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出电压2.982V。电流输出型的灵敏度一般为1A/K。 AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分档,AD590的后缀以I、J、K、L、M表示。AD590L、AD590M一般用于精密温度测量电路,其电路外形如图3.1所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端L0:3脚为管壳,一般不用。集成温度传感器的电路符号如图4.1有图所示。图2.1 AD590外封装及电路符号AD590是美国模拟器件公司生产的单片机集成两端感温电流源。2.1.1
13、 AD590的主要特性 流过器件的电流(A)等于器件所处环境的热力学温度(开尔文)度数,即公式(2.2): (2.2) 式中 是流过器件(AD590)的电流,单位为A;T是热力学温度,单位为K AD590的测温范围为-55 +150 AD590的电源电压范围为4V 30V.电源电压壳在4V6V范围变化,电流I变化1A,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 输出电阻为710M 精度高。AD590共有I、J、K、L、M五档,其中M档的精度最高-55+150范围内,非线性误差为0.3。2.1.2 AD590的工作原理在被测温度一定时,AD5
14、90相当于一个恒流源,把它和5V-30V的直流电源相连,并在输出端串接一个1K的恒指电阻,那么,此电阻上流过的电流将和被测温度成正比,此时地阿奴亮度将会有1mV/K的电压信号。它是利用PN结特性集成的传感器的感温部分的核心电路。其中有两只三极管 、 起恒流源的作用,可用于是左右两支路的集电极电流11和12相等;另两只三极管 、 是感温用的晶体管,两个管的材质和和工艺完全相同,但 实质上是由n个晶体管并联而成,因而其结面积是 的n倍。 和 的发射结电压 和 经反极性串联后加在电阻R上,所以R上端电压为 。因此,电流I为(2.3): (2.3) 对于AD590,n = 8,这样,电路的总电流将与热
15、力学温度成正比,将此电流引至负载 电阻上便可得到与热力学温度T成正比的输出电压。由于利用了恒流特性,所以输出信号不收电源电压和导线电阻的影响。2.1.3 基本应用电路 图2.2是AD590用于测量热力学温度的基本电路。因为流过AD590的电流与热力学温度成正比,当电阻R1和电位器R2的电阻之和为1K时,输出电压V0随温度的变化为1mV/K。但由于AD590的增益有偏差,电阻也有误差,因此应对电路进行调整。调整方法为:吧AD590放入冰水混合物中,调整电位R2,使VO=273.2mV。或在室温下(25)条件下调整电位器,使V0=273.2+25=298.2(mV)。但这样调整只可保证在0或25附
16、近有较高的精度。 图2.2 AD590基本应用电路2.1.4 摄氏温度测量电路如图2.3所示,电位器R2用于调整零点,R1用于调整运放LF355的增益。调整方法如下:在0调整R2,使输出V0=0,然后在100时调整R1使V0=100mV。如此反复调整多次,直到0时,V0=0mV,100时V0=100mV。最后在室温下进行校检。例如,若室温25,那么V0应为25mV。冰水混合物是0环境,沸水为100环境。要使图2.3中的输出为200mV/,可通过增大反馈电阻(图中反馈电阻由R5与电位器R1串联而成)来实现。另外,测量华氏温度(符号为)时,因华氏温度等于热力学温度减去255.4再乘以9/5,故若要
17、求输出为1mV/,则调整反馈电阻约为180k,使得温度为0时,V0=17.8mV;温度为100时,V0=197.8mV。图2.3 用于测量摄氏温度的电路2.1.5 温差测量电路及其应用 图2.4是利用两个AD590测量两点温度差的电路。在反馈电阻中为电阻为100k的情况下,是1和2 AD590处的温度为t1()和t2(),则输出电压为100(t1-t2)mV/。图中电位器R2用于调零。电位器R4用于调整运放LF355的增益。 由基尔霍夫电流定律:I1+I2=I1+I3+I4 由运算放大器的特性知:I3=0 V0调节零电位器R2使:I4=0 可得I=I1-I2 设:R1 =90k 则有:V0=I
18、(R3+R4)=(I1-I2)(R3+R4)=(t1-t2)100mV/ 其中t1t2为温差,单位为。改变(R3+R4)的值尅改变V0的大小。图2.4 测量亮点温度差的电路2.2 AT89S51单片机AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,建通标准8051指令系统及引脚。他集Flash程序存储器即可在线可编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能很强大,低价位AT89S51单片机可提供许多高性价比的
19、应用场合,可灵活应用于各种控制领域。图4.5为AT89S51单片机。2.2.1 主要性能参数与MCS51产品指令系统完全兼容 4K字节在系统编程(ISP)Flash闪存储器1000次摩擦写周期4.05.5V的工作电压范围全静态工作模式:0HZ33MHZ 三级程序加密锁1288字节内部RAM32 个可编程I/O口线2个16位定时/计数器 6个中断源全双工串行UART通道 低功耗空闲和掉电模式中断可从空闲和掉电模式 中断可从空闲模唤醒系统看门狗(WDT)及双数据指针 掉电标识和快速编程特征2.2.2 功能特性概述AT89S51提供一下标准功能:4K字节Flash闪存存储器,128字节内部RAM,3
20、2个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支付两种软件可选的节点工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.2.3 主要引脚(P0,P1,P2,P3)功能说明P0口:P0口是一组8位漏极开路双向I/O口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程
21、序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路。对端口写“1”,通过内部的上拉电阻法端口拉到高电平,此时可作为输出口。作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号
22、拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。Flash编程或校检时,P2亦接受高位地址和其它控制信号。P3口:P3是一组带有内部上拉电阻的8位双向I/O口。P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。 P3口除了作为一般的I/O口线外,更重要的用途是他的第二功能,如表2.6所示。表2.6 P3口的第二功能表端口引脚第二功能P3.0RXD
23、(串行输入口)P3.1TXD (串行输出口)P3.2INT0 (外中断0)P3.3INT1 (外中断1)P3.4TO (定时/计数器0)P3.5T1 (定时/计数器1)P3.6WR (外部数据存储器写选通)P3.7RD (外部数据存储器读选通)P3口还接受一些用于Flash闪存编程和程序校验的控制信号。2.3 光电耦合MOC3040光耦合双向可控硅驱动器是一种单片机输出与双向可控制硅之间较理想的接口器件,它是有输入和输出两部分组成,输入部分为砷化镓发光二极管,该二极管在5mA-15mA正向电流作用下可发出足够强度的红外线,出发输出部分。输出部分为硅光敏双向可控硅,在红外线作用下可双向导通。该器
24、件为六引脚双列直插式封装。 光电耦合器是以光为媒介传输电信号的一种“电-光-电”转换器件。它是由发光源和受光器两部分组成。把发光源和受光器组装在同一封闭的壳体内,彼此间用透明绝缘体隔离。发光源的引脚为输入端,受光器的一角为输出端,常见的发光源为发光二极管,受光器为光敏二极管、光敏三极管等等。光电耦合器的种类较多,常见的有光电二极管型、光电三极管型、光敏电阻型、光控晶闸型、光电达林顿型、集成电路型。在光电耦合器内部,由于发光管和受光器之间的耦合电容很小(2pF以内)所以共模输入电压通过级间耦合电容对输出电流的影响很小,因而共模抑制比很高。 光电耦合器可作为线性耦合器使用。在发光二极管上提供一个偏
25、置电流,再把信号电压通过电阻耦合到发光二极管上,这样光电晶体管接受到得是在偏置电流上增、减变化的光信号,其输入电流将随输入的信号电压作线性变化。光电耦合器也可工作于开光状态,传输脉冲信号。在输入脉冲信号时,输入信号和输出信号之间存在一点的延迟时间,不同结构的观点耦合器输入、输出延迟时间相差很大。第三章 硬件单元本次设计总体方案为:选用89S51单片机为中央处理器,通过温度传感器对空气进行温度采集,将采集到的温度信号传输给单片机,再由单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动空调机的加热或降温循环对空气进行处理从而模拟实现空调温度控制单元的工作情况。总体方案结构如图3.1。 图
26、3.1 总体方案结构 实现方案的技术路线为:用按钮输入标准温度值,用LED实现显示环境空气温度,用驱动电路控制压缩机完成加热和制冷调节,用ISIS软件对设计进行仿真,用汇编语言完成软件编程。3.1 硬件各单元方案设计与选择3.1.1 温度传感部分要求对温度和温度有关的参量进行检测,应该考虑用热电阻传感器。按照热电阻的性质可以分为半导体热电阻和金属热电阻两大类,前者通常成为热敏电阻,后者称为热电组。采用集成温度传感器,如常用的AD590和LM35。AD590是电流型温度传感器。这种器件以电流作为输出量指示温度,且是一个二端器件,实用非常方便,作为一种高阻电流源,他不需要严格考虑传输线上的电压信号
27、损失和噪声干扰问题,因此特别适合作为远距离测量或控制用。另外,AD590也特别适用于多点温度测量系统,而不必考虑选择开关或CMOS多路转换开关所引起的附加电阻造成的误差。由于采用了一种独特的电路结构,并利用最新的薄膜电阻激光微调技术校准,使得AD590具有很高的精度。并且应用电路简单,便于设计。3.1.2 A/D转换部分模/数转化器是一种将连续的模拟量转化成离散的数字量的一种电路或器件。模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。针对不同的采样对象,有不同的A/D转化器(ADC)可供选择,其中有通用的也有专用的。有些ADC还包括有其他功能,在选择ADC器件时需要考虑多种因素,
28、除了关键参数、分辨率和转换速度之外,还应考虑其他因素,如静态与动态精度、数据接口类型、控制接口与定时、采样保持性能、基本要求、校准能力、通道数量、功耗、实用环境要求、封装形式以及与软件有关的问题。ADC按功能分,可以分为直接转换和非直接转换两大类,其中非直接转换又有逐次分级转换,积分式转换等类型。 A/D转换器在实际应用时,除了要设计适当的采样/保持电路、基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行输入模拟信号极性转换等设计。 采用逐次逼近式转换器,对于这种转换方式,通常是用一个比较器输入信号与作为基准的N位DAC输出进行比较,并执行N次1位转换。这种方法类似于天平上用二进制
29、砝码称量物质。采用逐次逼近寄存器,输入信号仅与最高位(MSB)比较,确定DAC的最高位(DAC满量程的一半)。确定后结果(0或1)被锁存,同时加到DAC上,以决定DAC的输出(0或1/2)。逐次逼近型A/D转换器,如AD0809,其特点是转换速度快,精度也比较高,输出为二进制码,直接接I/O口,软件设计方便。ADC0809芯片内包含8位模/数转换器、8通道多路转换器与微控制器兼容的控制逻辑。8通道多路转换器能直接连通8个单端输入信号中的任何一个。由于ADC0809设计时考虑到若干种模/数转换技术的优点,所以该芯片非常适合于过程控制、微控制器输入通道的结合口电路、智能仪器和机床控制等应用场合,并
30、且价格低廉,降低设计成本。3.1.3 数字显示部分通常的LED显示器有7段或或者8段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相当的段被点亮,相应的短被显示。同样,共阳极LED显示器的工作原理也一样。采用移位寄存器扩展I/O口,只需要占用3个I/O口,即数据(DATA)、时钟(CLOCK)、输出使能(OUTPUT ENABLE),从理论上讲就可以无限制地扩展I/O口,而且显示数据为静态显示,几乎不占用CPU资源。 采用扩展口后,又能采用静态显示,这样,既解决了静态显示占
31、用I/O口多的问题,也解决了动态显示不稳定、容易闪烁、占用CPU资源过多的问题。3.1.4 加热降温驱动控制电路采用开关量控制,如继电器、双向可控硅、光耦等,控温快速,但是双向可控硅驱动电路比较麻烦,调试也麻烦,若用现成的固态继电器(其实就是把双向可控硅和驱动电路做在一起的)价格十分昂贵。若用继电器时要注意器电感的反向电动势,和开关触点对电源的影响,以及开关脉冲对整个电路的影响等,应该加入必要的防止干扰的措施。 采用光耦合双向可控硅驱动电路,这种器件是一种单片机输出与双向可控硅之间较理想的接口器件,它有输入和输出两部分组成,输入部分是一种砷化镓发光二极管,该二极管在5MA15MA正向电流作用下
32、发出足够强度的红外光,触发输出部分,输出部分是一个硅光敏双向可控硅,在红外线的作用下可双向导通。 光电耦合器也常用于较远距离的信号隔离传送,一方面光耦合器可以起到隔离两个系统地线的作用,使两个系统的电源相互独立,消除地电位不同所产生的影响。另一方面,光耦合器的发光二极管是电流的驱动器件,可以形成电流环路的传送形式。由于电流环路是低阻抗电路,对噪音的敏感度低,因此提高通讯系统的抗干扰能力,常用于有噪音干扰的环境里传输信号。3.1.5 键盘输入部分常用的键盘接口分为独立式按键接口和矩阵式键盘接口。采用独立式按键接口,这种方式是各种按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会
33、影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断那个按键被按下了。 独立式按键电路配置灵活,软件简单。但每个按键需占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。独立式按键电路按键直接与单片机的I/O口线相接,通过读I/O口,判定个I/O口,判定各I/O口线的电平状态,即可识别出按下的键盘。3.2 单元电路设计3.2.1 温度采集电路 温度采集系统主要由AD590、OP07、ICL8069组成,如图3.1所示。图3.1 温度采集电路3.2.2 A/D转换电路 选用89S51作为中央处理器,A/D转换器选
34、用ADC0809,其连接电路如图3.2所示。图3.2 A/D转换电路3.2.3 显示电路 采用74LS164与单片机连接,如图3.3所示。图3.3 显示电路3.2.4 驱动控制电路 光耦合双向可控硅驱动器是一种单片机输出与双向可控硅之间较理想的接口器件,它有输入和输出两部分组成,输入部分为砷化镓反光二极管,该二极管在5MA15MA正向电流作用下发出足够强度的红外光,触发输出部分。连接电路如下如所示。输出部分为硅光敏双向可控硅,在红外线作用下可双向导通。该器件为六引脚双列直插式封装。驱动控制电路如图3.4所示。图3.4 驱动控制电路3.2.5 键盘电路 采用独立式按键设计,如图3.5所示。图3.
35、5 键盘电路3.2.6 电源电路 电源也不能小视,每一个系统的电源都不容马虎,电源虽然简单,但需要功能可靠,且需要功能可靠,且每个板子上都有CBB电容和高品质的ELNA电容做退耦,如图3.6所示。图3.6 电源电路第四章 软件单元4.1 系统软件设计说明在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出
36、,以便控制生产。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:1、 单个模块比起一个完整的程序易编写及调试;2、 模块可以共存,一个模块可以被多个任务在不同条件下调用;3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序显示子程序延时子程序A/D转换子程序、键盘子程序构成。4.2 主程序流程本设计主程序流程如图4.1所示。图5.1 主程序流程图 程序启动后,首先清理系统内存,然后对温度进
37、行采集并通过A/D转换后,传输到单片机,再由单片机控制显示设备,显示现在的温度,然后系统进入待机状态,等待键盘输入设定温度,然后系统将设定温度与现在温度进行比较,得出结果后,启动制冷系统或是加热系统。主程序见附录4.3 A/D转换子程序图4.2是A/D转换子程序流程图。 图4.2 A/D转换子程序流程图 由于ADC0809的输出端带有三态锁存器,因此可以和T89S51单片机直接接口。T89S51单片机的PO口作为复用数据总线,与ADC0809数据输出端DO0DO7相接。 89S51的低三位数据用于选择8路模拟电压输入,但实际上由于只有1路模拟量,即温度采集电路中的IN1,IN0直接与ADC08
38、09的IN1,IN0相连。固A=B=C=0,即均接低电平。 转换开始10s后,EOC端降为低电平,当转换结束后,EOC变为高电平,用中断的方式通知89S51单片机转换已经结束,可以将转换结果输入单片机了,89S51响应该中断后即可在中断服务程序中完成转换结果的读入。如果采用查询法读取转换结果,则可将EOC信号输出经过一个锁存器锁存后再接到89S51 P0口的某一数据线,启动转换10s后,89S51不断对锁存器的输出状态进行查询,看是否变为高电平。一旦查询到变为高电平时,即用外部数据传送指令将转换结果输入89S51.如果用等待延迟法读取转换结果,则EOC端可悬空,启动转换后,89S51延迟100
39、s以上,再读入数据。在编写相应的数据采集程序时,在主程序中要对 外部中断进行预置。然后启动ADC0809进行数模转换。89S51由VIN0路开始对8路模拟量进行采集,当转换结束后,转入中断服务程序,把转换结果读入89S51的累加器A,再转存到相应的缓冲存储单元50H-57H,再由主程序对这些数据进行处理,或移入外部RAM缓冲区的相应单元中。A/D转换的子程序如下: DATA0809: SETB P2.6 NOP NOP SETB P2.5 ;启动AD NOP NOP CLR P2.5 HERE1: JB P2.6,HERE1 ;低电平检测 HERE2: JNB P2.6,HERE2 LCALL
40、 YS1MS ;数据调整 MOV A,P0 ANL A,#01111111B MOV B,#100 DIV AB MOV A,B MOV B,#10 DIV AB MOV 6CH,A SWAP A MOV 6BH,B MOV 71H,A RET4.4 显示子程序 当系统传送一个字节数给74LS164时,利用UART模式0,把DISPLAY_DATA中的初始数显示到LED1和LED2,十进制值显示到LED1,个位数值显示到LED2;当十进制数值为0时LED1不显示。每个数值的显示时间由DISPLAY_TIME确定。流程图如图4.3所示。 图4.3 显示子程序流程图显示子程序如下: XS: MOV R0,#08H START: CLR P2.0 CLR P2.1 CLR P2.2 MOV A,70H LCALL YW MOV A,71H LCALL YW SETB P2.2 LCALL YS1MS RET YW: RLC A