温度控制系统1.0 功能概述结合本设计的要求和技术指标,通过对系统大致程序量的估计和系统工作速度的估计,考虑价格因素。
选定at89s51单片机作为系统的主要控制芯片,8位数模转换器ad0809。
采用AD0809进行温度采集,温度设定范围为-10℃~ 45℃,通过温度采集系统,对温度进行采样并进行A、D转换,再输给单片机。
以空调为执行器件,通过单片机程序完成对室内温度控制。
1.1系统的主要要求(1)温度设定范围为,最小区分温度为,标定温差小于(2)用二位十进制数码显示当前温度(3)能根据设定的温度进行加热或降温处理。
(4)设计出系统控制单元1.2系统的工作原理在温度控制系统中,需要对温度的变换转换为对应的电信号的变化,选用89S51单片机为中央处理器,通过温度传感器对空气温度进行温度采集,将采集到的温度信号传输给单片机,再有单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动空调机的加热或降温循环对空气进行处理,从而模拟实现空调温度控制单元的动作情况。
工作流程说明如下开始,先接通电源,三段数码显示器就自动显示当前温度,并且显示出设置温度的缺省值000.按下S1键,功能转换键,按此键则开始键盘控制。
此时通过键盘输入预设值的温度,按下S2加,按此键则温度设定加一度。
按下S3减,按此键则设定温度减一度。
S4复位键,使系统复位。
就这样通过温度芯片的反馈信息,实现温度保持在设定温度上,从而达到自动控制温度的功能。
1.3系统的主要技术指标测温范围:-55℃- +100℃温度分辨率:±0.5VLED显示位数:32 系统的结构框图系统的硬件电路有温度传感器、A/D转换、LED显示等部分组成,总体方案结构见下图所示图 2-1 空调温度控制单元结构图实现方案的技术路线为:用按钮输入标准温度值,用LED 实时显示环境温度,用驱动电路控制完成加热和制冷调节。
用汇编语言完成软件编程。
3 温度控制系统硬件单元方案设计与选择 硬件设计部分将先寻找电源电路最合适的设计方案,在进行单元电路设计。
最后介绍所用到的两个特殊元件。
3.1 温度传感部分温度控制要求对温度和与温度有关的参量进行检测,应考虑用热电阻传感器。
按照热电阻的性质可分为半导体热电阻和金属热电阻两大类,前者通常称为热敏电阻,后者称为热电阻。
方案1:采用热敏电阻,这种电阻是利用对温度敏感的半导体材料制成,其阻值随温度变化有明显的改变。
负温度系数热敏电阻器通常是由锰,钴的氧化物烧制成半导体陶瓷制成。
其特点是在工作温度范围内电阻阻值随温度的上升而降低。
可满足40℃~ 90℃测量范围,但热敏电阻精度、重复性、可靠性较差,不适用于检测小于1℃的信号;而且线性度很差,不能直接用于A/D 转换,应该用硬件或软件对其进行线性化补偿。
(加热)输入部分显示部分 驱动控制 驱动控制 (制冷)温度传感器空气89S51 A/D 转换器方案2:采用温度传感器铂电阻Pt1000.铂热电阻的物理化学性能在高温和氧化性介质中很稳定,他能用作工业测温元件,且此元件线性较好。
在0℃~100℃时最大非线性偏差小于0.5℃铂热电阻与温度的关系是,Rt=R0(1+At+Bt*t);其中Rt是温度为t摄氏度时的电阻;R0是温度为0℃时电阻;t为任意温度值,A、B为温度系数。
但其成本太贵,不适合做普通设计。
方案3:采用集成温度传感器,如常用的AD590和LM35。
AD590是电流型温度传感器。
这种器件是以电流作为输出量指示温度,其典型的电流温度敏感度是1µA/K.它是二端器件,使用非常方便,作为一种高阻电流源,他不需要严格考虑传输线上的电压信号损失噪声干扰问题,因此特别适合作为远距测量或控制用。
另外,AD590也特别适用于多点温度测量系统,而不必考虑选择开关或CMOS多路转换开关所引起的附加电阻造成的误差。
由于采用了一种独特的电路结构,并利用最新的薄膜电阻激光微调技术校准,使得AD590具有很高的精度。
并且应用电路简单,便于设计。
方案选择:选择方案3。
理由:电路简单稳定可靠,无需调试,与A/D连接方便。
3.2 A/D转换部分模/数转化器是一种将连续的模拟量转化成离散的数字量的一种电路或器件模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。
针对不同的采样对象,有不同的A/D转换器(ADC)可供选择,其中有通用的也有专用的。
有些ADC还包含有其他功能,在选择ADC器件时需要考虑多种因素,除了关键参数、分辨率和转换速度以外,还应考虑其他因素,如静态与动态精度、数据接口类型、控制接口与定时、采样保持性能、基本要求、校准能力、通道数量、功耗、使用环境要求、封装形式以及与软件有关的问题。
ADC按功能划分,可分为直接转换和非直接转换两大类,其中非直接转换又有逐次分级转换、积分式转换等类型。
A/D转换器在实际应用时,除了要设计适当的采样/保持电路、基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行模拟信号极性转换等的设计。
方案1:采用分级式转换器,这种转换器采用两步或多步进行分辨率的闪烁式转换,进而快速地完成“模拟-数字”信号饿转换,同时可以实现较高的分辨率。
例如在利用两步分级完成n位转换的过程中,首先完成m位的粗转换,然后使用精度至少为m位的数/模转换器(ADC)将此结果转换达到1/2的精度并且与输入信号比较。
对此信号用一个k位转换器(k+m<=n)转换,最后将两个输出结果合并。
方案2:采用积分型A/D装换器,如ICL7135等。
双积分型A/D转换器转换精度高,但是转换速度不太快,若用于温度测量,不能及时地反应当前温度值,而且多数双击分型A/D转换器其输出端多不是而二进制码,而是直接驱动数码管的。
所以若直接将其输出端接I/O接口会给软件设计带来极大的不方便。
方案3:采用逐次逼近式转换器,对于这种转换方式,通常是用一个比较输入信号与作为基准的n位DAC输出进行比较,并进行n次1位转换。
这种方法类似于天平上用二进制砝码称量物质。
采用逐次逼近寄存器,输入信号仅与最高位(MSB)比较,确定DAC的最高位(DAC满量程的一半)。
确定后结果(0或1)被锁存,同时加到DAC上,以决定DAC的输出(0或1/2)。
逐次逼近式A/D转换器,如ADC0809、AD574等,其特点是转换速度快,精度也比较高,输出为二进制码,直接接I/O口,软件设计方便。
ADC0809芯片内包含8位模/数转换器、8通道多路转换器与微机控制兼容的控制逻辑。
8通道多路转换器能直接连通8个单端输入信号中的任何一个。
由于ADC0809设计时考虑到若干种模/数转换技术的优点,所以该芯片非常适合于过程控制、微控制器输入通道的结合口电路、智能仪器和机床控制等应用场合,并且价格低廉,降低设计成本。
方案选择:选择方案3。
理由:用ADC0809采样速度快,配合温度传感器应用方便,价格低廉,降低设计成本。
3.3数字显示部分通常用的LED显示器有7段或8段“米”字段之分。
这种显示器有共阳极和共阴极两种。
共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。
当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
同样,共阳极LED显示器的工作原理也一样。
方案1:采用静态显示方式。
在这种方式下,各位LED显示器的共阳极(或共阴极)连接在一起并接地(或电源正),每位的段选线分别与一8位的锁存器输出相连,各个LED的显示字符一旦确定,相应锁存器的输出将维持不变,直到显示另一个字符为止,正因为如此静态显示器的亮度都较高。
若用I/O口接口,这需要占用N*8位I/O口(LED显示器的个数N)。
这样的话,如果显示器的个数较多,那使用的I/O接口就更多,因此在显示位数较多的情况下,一般都不用静态显示。
方案2:采用动态显示方式。
当多位LED显示时通常将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用。
而各位的共阳极或共阴极分别有相应的I/O口线控制,实现各位的分时选通。
其中段选线占用一个8位I/O口,而位选线占用N个I/O口(N为LED显示器的个数)。
由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位选线都处于选通状态的话,那LED显示器将显示相同的字符。
若要各位LED 能显示出与本为相同的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。
这种显示方式占用的I/O口个数为8+N(N为LED显示器的个数),相对静态显示少了很多,但需要占用大量的CPU资源,当CPU处理别的事情时,显示可能出现闪烁或者不显示的情况。
方案3:采用移位寄存器扩展I/O口,只需要占用3个I/O口即数据(DA TA)、时钟(CLOCK)、输出使能(OUTPUT ENABLE),从理论上讲就可以无限制地扩展I/O 口,而且显示数据为静态显示,几乎不占用CPU资源。
采用扩展口后,又能采用静态显示,这样,既解决了静态显示占用I/O口多的问题,也解决了动态显示不稳定、容易闪烁、占用CPU资源过多的问题。
方案选择:选择方案3。
理由:非常节约I/O口,又有静态显示的特点,亮度高,节约CPU的使用率。
3.4加热降温驱动控制电路采用光耦合双向可控硅驱动电路。
它能够达到加热效果,开关量控制容易,驱动简单,驱动系统的抗干扰能力强。
由于买不到元件,在该电路的实际焊接中用发光二极管代替。
这里就不做详细介绍。
3.5键盘输入部分常用的键盘接口分为独立式按键接口和矩阵式键盘接口。
方案1:采用4*4矩阵键盘输入,这种接口方式适用于按键数量较由行线和列线组成,按键位于行、列的交叉点上。
矩阵键盘的工作原理是按键设置在行、列交叉点上,行、列线分别连接到按键开关的两端。
行线通过上拉电阻接到+5V 上。
平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态由与此电平相连的列线电平决定。
列线电平如果为低,则行线电平为低;列线电平为高,则行线电平为高。
这是识别矩阵键盘是否被按下的关键所在。
由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平,因此,各按键彼此将相互发生影响,所以不必将行、列线信号配合起来并作适当处理,才能决定闭合键位置。
对于矩阵式键盘,矩阵的键盘由行号和列号唯一决定,所以分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。
但这种编码对于不同行的键,离散性大,并且编码的复杂度与键盘的个数成正比,因此不适合在出入量较小的设计中。
方案2:采用独立式按键接口。
这种方式是各种键盘相互独立。
每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。