整理单片机温度控制75158.docx
- 文档编号:27737741
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:47
- 大小:790.71KB
整理单片机温度控制75158.docx
《整理单片机温度控制75158.docx》由会员分享,可在线阅读,更多相关《整理单片机温度控制75158.docx(47页珍藏版)》请在冰豆网上搜索。
整理单片机温度控制75158
1系统总体方案设计
本次设计采用MCS-51单片机作为控制芯片,采用半导体集成温度传感器AD590采集温度信号。
通过温度传感器将采集的温度信号转换成与之相对应的电信号,经过放大处理送入A/D转换器进行A/D转换,将模拟信号转换成数字信号送入到控制芯片进行数据处理。
通过在芯片外围添加显示、控制等外围电路来实现对保温箱温度的实时检测和控制功能。
本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成传感器信号的采集处理,信息的显示等;软件主要完成对采集的温度信号进行处理及显示控制等功能。
系统结构框图如图2.1所示:
图2.1系统结构框图
2.1系统硬件设计方案
单片机应用系统的硬件电路设计就是为本单片机温控系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、设计合适的接口电路等。
系统设计应本着以下原则:
(1)尽可能选择典型电路,并符合单片机常规用法。
本设计采用了典型的显示电路、A/D转化电路,为硬件系统的标准化、模块化打下良好的基础。
(2)硬件结构应结合应用软件方案一并考虑。
软件能实现的功能尽可能由软件实现,以简化硬件结构。
由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。
由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实现,如键盘的去抖动问题。
(3)系统中的相关器件要尽可能做到性能匹配。
系统中所有芯片都应尽可能选择低功耗产品。
本系统的硬件电路主要包括模拟部分和数字部分,从功能模块上来分有主机电路、数据采集电路、键盘显示电路、控制执行电路。
系统硬件包括:
温度传感器、信号调理电路、A/D转换器件、MCS-51单片机、键盘输入、LED温度显示器、温度控制电路。
2.1.1芯片选择
单片机就是在一块硅片上集成了微处理器、存储器和各种输入输出接口电路的微型计算机,简称单片机。
单片机以其较高的性能价格比受到了人们的重视和关注。
它的优点就是体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
单片机根据其基本操作处理的位数可分为4、8、16、32位单片机,应用最为广泛的是八位单片机。
根据本次设计的实际情况和要求,在本次设计中采用AT89C51作为系统的控制芯片。
AT89C51是一种低功耗、高性能CMOS8位微控制器,具有4K的系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
2.1.2温度检测
本课题设计的温度控制范围为25-80摄氏度,温度传感器采用采用AD590半导体集成温度传感器。
A/D590具有较高的精度和重复性,不需辅助电源,线性好,使用方便,便于微机系统测控。
被测温度信号为一路由AD590测得的代表温度的电压信号,经温度调理电路放大后使其在0-5V范围内,使其适合于A/D转换器的输入电压范围。
2.1.3A/D转换电路
A/D转换电路的种类很多,例如,计数比较型、逐次逼近型、双积分型等等。
选择A/D转换器件主要从转换速度、精度和价格上考虑。
逐次逼近型A/D转换器,在精度、速度和价格上都比较适中,是最常用的A/D转换器。
双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢。
近年来在微机应用领域中也得到了广泛的应用。
本次设计采用八路模拟输入通道的逐次逼近型的八位A/D转换器ADC0809。
采用ADC0809作为与单片机的接口电路,它的结构比较简单,转换速度较高。
采用ADC0809作为A/D转换器具有与单片机连接简单的优点,它是八位的转换器可以与八位的单片机直接连接,这样就简化了系统的连接电路也有利于系统软件的编写。
2.1.4键盘输入
键盘可分为编码式键盘和非编码式键盘,键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号和键值的称为编码式键盘;靠软件识别的为非编码式键盘。
在单片机组成的测控系统中,用得最多的是非编码键盘。
在这里采用的就是非编码式键盘。
键盘的连接方式采用独立连接式,这种连接方式能够简化程序的编写。
2.1.5LED显示
在单片机应用系统中使用的显示器主要有发光二极管显示器(LED)和液晶显示器(LCD)。
采用LED作为系统的数据显示器具有价格低、性能稳定和响应速度快等特点。
LED显示方式有静态显示、动态显示和串口显示。
为了节省系统本身的硬件资源,在这里LED的显示方式采用串行静态显示方式。
利用串口可以工作在移位寄存器方式,驱动LED静态显示。
这样就可以充分的利用并行口,并将并行口用到最需要的地方去,同时主程序不需要扫描显示器,使它有更多的时间处理其他事情。
这种显示方法用于显示位数少、显示亮度大的地方能够达到很好的显示效果。
2.1.6控制电路
控制电路作为单片机系统的后向通道,他是将单片机处理后的数字控制信号用输出口输出,并将该数字信号用于对控制对象的控制。
由于单片机的输出信号电平很低,无法直接驱动外围设备进行工作,因此在单片机的后向通道中需要外围设备的驱动、信号电平的转换以及隔离放大等技术。
本次设计采用继电器作为控制电路的主要器件,通过继电器可以实现直流信号控制交流负载的功能,从而实现单片机系统的控制功能。
2.2系统软件设计方案
系统的软件设计采用模块化设计,采用模块化设计可以简化系统软件的编写,使软件编写思路更加简单明了。
系统软件主要由三大模块组成:
主程序模块、功能实现模块和运算控制模块。
主程序模块用于实现各个子程序间的跳转。
功能实现模块主要由A/D转换子程序、键盘处理子程序、显示子程序、继电器控制程序等部分组成。
运算控制模块涉及标度转换子程序等。
3系统硬件设计
3.1中央处理器
MCS-51系列单片机是8位增强型,其主要的技术特征是为单片机配置了完善的外部并行总线和具有多级识别功能的串行通讯接口(UART),规范了功能单元的SFR控制模式及适应控制器特点的布尔处理系统和指令系统。
属于这类单片机的芯片有许多种,如8051、8031、80C51等等。
由于单片机具有较高的性能比,国内MCS-51系列单片机应用最广,易于开发、使用灵活、而且体积小、易于开发、抗干扰能力强,可以工作于各种恶劣的条件下,工作稳定等特点。
本设计本着实用性和适用性的要求,选择AT89C51单片机作为中央处理器。
3.1.1AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的具有低电压,高性能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线及串行通道。
闪烁存储器是一种可编程又可擦除只读存储器(EEPROM),给用户设计单片机系统和单片机系统带来很大的方便,深受广大用户的欢迎。
AT89C51有片内振荡器和时钟电路,具有低功耗的闲置和掉电模式,在空闲方式下,CPU停止工作,但允许内部RAM、定时器/计数器、串行口和中断系统继续工作。
在掉电方式下,能保存RAM的内容,但振荡器停止工作,并禁止所有其他部件工作。
还具有三级程序存储器锁定,全静态工作频率0Hz-24Hz,数据保留时间可长达10年。
3.1.3特殊功能存储器
在单片机内高128BRAM中,由有21个特殊功能寄存器(AFR),它们离散的分布在80H-FFH的RAM空间中,访问特殊功能寄存器只允许使用直接寻址方式。
表3-2为AT89C51单片机特殊功能寄存器及其相应地址[7]。
表3-2专用寄存器名称,功能及对应的RAM地址
名称
简单描述
地址
ACC
累加器(专门用于存储算术和逻辑运算的结果)
0E0H
B
B寄存器(专门用于乘/除法运算)
0F0H
PSW
程序状态寄存器
0D0H
SP
推栈指针寄存器
81H
DPTR
16位数据指针寄存器。
CPU访问外部RAM时地址指针,由两个8位寄存器DPH(83H)、DPL(82H)组成且可单独访问。
P0
端口0状态寄存器(初始值为0FFH)
80H
P1
端口1状态寄存器(初始值为0FFH)
90H
P2
端口2状态寄存器(初始值为0FFH)
0A0H
P3
端口3状态寄存器(初始值为0FFH)
0B0H
IP
中断优先级控制寄存器
0B8H
IE
中断允许控制寄存器
0A8H
TMOD
定时器/计数器方式控制寄存器
89H
TCON
定时器/计数器控制寄存器
88H
TH0
定时器/计数器0高字节
8CH
TL0
定时器/计数器0低字节
8AH
TH1
定时器/计数器1高字节
8DH
TLI
定时器/计数器0低字节
8BH
SCON
串行控制寄存器
98H
SBUF
串行数据缓冲器
99H
PCON
电源控制寄存器
87H
3.1.4芯片擦除
整个EPROM阵列电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.5复位电路的设计
复位使单片机处于起始状态,并从该起始状态开始运行。
AT89C51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。
内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,内部RAM处于不断电状态。
其中的数据信息不会丢失,也即复位后,只影响SFR中的内容,内部RAM中的数据不受影响。
外部复位有上电复位和按键电平复位。
由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。
为了便于本设计运行调试,复位电路采用按键复位方式。
按键复位电路如图3.3所示[8]。
图3.3复位电路
3.1.6时钟电路设计
时钟电路是单片机的心脏,它控制着单片机的工作节奏。
MCS-51单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。
AT89C51内部有一个反相振荡放大器,XTAL1 和XTAL2分别是该反向振荡放大器的输入端和输出端。
该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。
本设计采用的晶振频率为12MHZ。
其时钟电路如图3.4所示。
51系列单片机还可使用外部时钟。
在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。
图3.4时钟电路
3.2温度传感器AD590
温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化和过程检测控制系统。
温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。
AD590温度传感器不但实现了温度转化为线性电量测量,而且精度高、互换性好。
AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。
由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。
本设计采用AD590作为温度传感器,它只需要一个电源即可实现温度到电流的线性变换,然后再终端使用一只取样电阻,即可实现电流到电压的转换。
它使用方便,并且具有较高的精度。
图3.5为AD590的封装形式和基本应用电路。
图3-5AD590封装形式和应用电路
AD590集成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片上,能直接给出正比于绝对温度的理想线形输出,一般用于-55℃~+150℃之间的测量温度。
温敏晶体管在管子的集电极电流恒定时,其基极发射极电压与温度成线形关系,由于生产厂家生产时采用激光微调来校正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为273.2K),输出电流微273.2uA,灵敏度微1uA/K。
当其感受的温度升高或者降低时,则其电流就以1uA/K的速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大小。
为克服温敏晶体管vb电压产生时的离散性,采用了特殊的差分电路。
集成温度传感器具有电压型和电流型两种。
因此,它不容易受接触电阻、引线电阻、电压噪音的干扰,具有很好的线性特性。
AD590主要特性如下:
●流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数,即:
(3-1)
式中:
Ir为流过器件(AD590)的电流,单位为μA;
T为热力学温度,单位为K。
●AD590的测温范围为-55℃~+150℃。
●AD590的电源电压范围为4V~30V。
电源电压可在4V~6V范围变化,电流
变化μA,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
●输出电阻为710MΩ。
●精度高。
AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
AD590温度传感器作为一个恒流源,在本设计的温度检测电路中在AD590的输出端接一取样电阻可将输出电流信号变化转换为电压信号变化。
由于AD590温度传感器温度每变化1℃其输出电流变化1μA。
所以在接上10K的取样电阻的情况下,温度每变化10℃,输出电压就将变化0.1V。
3.3信号调理电路
经过温度传感器采集输出的电压信号一般来说是非常微弱的,因此,在送往单片机处理之前应对该信号进行放大。
本系统所采用的A/D转换器为ADC0809,由于ADC0809的输入信号应在0~5V之间,因此,经过放大电路放大的信号进入A/D转换器的电压信号应控制在0~5V之间,根据此原则可设计合适的放大倍数。
信号调理电路主要由运算放大器0P07等组成。
为了使温度检测电路的输出电压能够适合于A/D转换器的参考电压,利用超低温漂移高精度运算放大器0P07将温度电压信号进行放大到0~5V的范围之内,便于A/D进行转换,以提高温度采集电路的可靠性。
本设计中,信号调理电路部分由集成运放OP07分别构成一个电压跟随器,电压比较器和一个同相输入放大器用于对AD590输出的小电压信号进行放大处理[9]。
信号调理电路如图3.6所示
图3.6温度检测电路
在该放大电路中,电压跟随器起阻抗匹配的作用。
反馈电阻为零时,放大倍数为1,电压跟随器的输入电压等于输出电压
电压比较器用于对输出电压小信号电压进行调零,在上述电路图中的电压比较器部分由于R2=R4R3=R5可得电压比较器的输出电压
根据电压跟随器的输出电压
调节电位计R9就改变电压比较器的输入电压
。
使得当温度为温度测量下限时电压比较器的输出电压为零。
起放大作用的是同相输入放大器OP07。
其放大倍数:
因此放大器的输出电压
3.4温度标定
本设计的温度标定是在室温环境条件下标定的。
由于温度传感器输出与温度变化有良好的线性。
根据温度调理电路,输出电压和温度变化也具有一定的线性关系。
根据实验测得的电压和温度数据,在此我们可以采用一元线性回归的方法求得温度和电压的线性方程。
一元线性回归是处理两变量之间的关系,即两个变量X和Y之间若存在一定的关系,则可通过试验,分析所得数据,找到两者之间的关系的经验公式。
假如两变量之间的关系是线性的则称为一元线性回归。
由于变量测量中存在随机误差,一元线性方程回归可用最小二乘法处理求得一元线性回归方程。
最小二乘原理指出,最可信赖值应在使残余误差平方和最小的条件下求得[10]。
根据实验测量结果可得,在一定温度x下的电压输出值y,得到如下表所示。
表3-3
x/℃
22
30
40
50
60
70
80
y/V
0
0.42
1.06
1.68
2.26
2.86
3.45
根据表3-3所得的数据,我们可以知道电压输出范围在0-5V之间,适合A/D转换参考电压的电压范围。
为了了解输出电压y与温度x之间的大致关系,把数据表示在坐标图上,如图3-7所示,这种图叫散点图。
从散点图可以看出,输出电压y与温度x大致成线性关系。
因此,我们假设x与y之间的内在关系是一条直线,有些点偏离了直线,这是试验过程中其他随机因素的影响而引起的。
这样就可以假设这组测量数据有如下结构形式:
t=1,2,…,N(3-2)
式中的
,
,…,
分别表示其他随机因素对电压测得值
,
,…,
的影响,一般假设它们是一组相互独立、并服从同一正态分布的随机变量,式(3-2)就是一元线性回归的数学模型。
此例中N=7。
我们用最小二乘法来估计式(3-2)中的参数
、
。
设b0和b分别是参数
和
的最小二乘估计,便可得到一元线性回归的回归方程
(3-3)
式中的b0和b是回归方程的回归系数。
对每一个实际测得值
与这个回归值
之差就是残余误差
:
,t=1,2,…,N(3-4)
应用最小二乘法求解回归系数,就是在使残余误差平方和为最小的条件下求得回归系数b0和b的值。
用矩阵形式,令
,
,
,
则式(3-2)的矩阵形式为
(3-5)
假定测得值
的精度相等,根据最小二乘原理,回归系数的矩阵解为
(3-6)
代入数据后:
,
求解线性方程系数:
因此b0=-1.34b=0.06
线性方程为:
(3-7)
3.5A/D转换
ADC0809是一种8位逐次逼近式A/D转换器,其内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身既可看作一种输入设备,也可以认为是并行I/O接口芯片。
故ADC0809可以和微机直接接口,本设计就是用AT8951和ADC0809直接相连的。
ADC0809采用双列直插式封装,图3.8为ADC0809引脚图,共有28条引脚,主要引脚功能为:
●IN0~IN7:
为八路模拟电压输入线,用于输入被转换的模拟电压。
●ALE:
为地址锁存允许输入线,高电平有效。
●ADD-A、ADD-B和ADD-C:
为地址输入线,用于选择IN0~IN7上那一路模拟电压送给比较器进行A/D转换。
ADDA、ADDB和ADDC对IN0~IN7的选择如表3-4所列:
●START:
为“启动脉冲”输入线,上升沿清零SAR,下降沿启动ADC0809工作。
●EOC:
为转换结束输出线,该线上高电平表示A/D转换已结束。
●OE:
为“输出允许”线,高电平时能使2
~2
引脚上输出转换后的数字量。
图3.8ADC0809引脚图
表3-48位模拟开关功能表
被选模拟电压
ADDC
ADDB
ADDA
IN0
0
0
0
IN1
0
0
1
IN2
0
1
0
IN3
0
1
1
IN4
1
0
0
IN5
1
0
1
IN6
1
1
0
IN7
1
1
1
AT89C51与ADC0809的连接方法如图3.9所示,AT89C51通过地址线P2.7和写控制信号线
用一个或非门联合控制启动转换信号端(START)和地址锁存信号端(ALE)。
地址线P2.7和读控制信号线
用一个或非门联合控制输出允许控制端(EOC)。
低三位地址线加到ADC0809的ADDA、ADDB、ADDC端,所以选中ADC0809的IN0通道的地址为7FF8H。
转换结束信号EOC通过一个反相器接到INT1。
图3.9AT89C51与ADC0809连接图
AT89C51和ADC0809连接通常可以采用查询和中断两种方式。
本系统采用中断方式传送数据,EOC线作为CPU的中断请求输入线。
CPU线响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量。
其中
和START的逻辑关系分别为:
=P2.7•
=P2.7+
START=P2.7•
=P2.7+
对ADC0809地址的确定:
根据系统硬件连接图可知所选定模拟电压路数为IN0,其对应的地址为ABC=000,即P0.0、P0.1、P0.2=000;又P2.7=0时才能启动ADC0809工作和使AT89C51从ADC0809接收A/D转换电压的数字量。
故确定ADC0809其中一个地址为:
0111111111111000B=7FF8H,其中“__”表示固定量。
ADC0809的IN0和变送器输出端线连,故IN0上输入的0V~+5V范围的模拟电压经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所示。
图3.10ADC0809时序图
从时序图可以看出,在启动ADC0809后,EOC约在10us后才变为低电平,EOC线经过反相器和AT89C51线相连,这即是AT89C51采用中断方式来和ADC0809传送A/D转换后的数字量的。
为了给OE线分配一个地址,把AT89C51RD和P2.7经或门和OE相连。
平时,使OE处于低电平封锁状态,在响应中断后,AT89C51执行中断服务程序中如下两条指令就可以使OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。
AT89C51执行如下程序可以启动ADC0809工作。
MOVDPTR,#7FF8H
MOVXA,@DPTR;OE变为高电平,数字量送A
3.6LED显示
单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED;液晶显示器,简称LCD。
前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口复杂,成本较高。
结合本设计的特点,在这里系统的显示采用发光二极管作为显示器件。
单片机中使用7段LED构成字形“8”,另外,还与一个小数点发光二极管用以显示数字、符号及小数点。
这种显示器有共阴极和共阳极两种,如图3.11所示。
发光二极管的阳极连在一起称为共阳极显示器,阴极连在一起的称为共阴极显示器。
一位显示器由八个发光二极管组成,其中,7个发光二极管构成字形“8”的各个笔划(段)a-g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压是,该段笔划即点亮;不加电压则该段二极
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 单片机 温度 控制 75158