单片机温度控制器设计.docx
- 文档编号:17995379
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:36
- 大小:295.10KB
单片机温度控制器设计.docx
《单片机温度控制器设计.docx》由会员分享,可在线阅读,更多相关《单片机温度控制器设计.docx(36页珍藏版)》请在冰豆网上搜索。
单片机温度控制器设计
1绪论
1.1选题的现状及背景意义
在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
例如:
在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量[1]。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题,以单片机为主要核心的应用技术已成为一项新的工程应用技术。
单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制系统、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用。
温度控制系统是比较常见的和典型的过程系统,温度是工业生产过程中重要的被控参数之一,在冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理温度等均需要对温度严格控制。
利用单片机、温度传感器实现对温度的控制,具有体积小、编程简单、价格低的优点,在发电厂、纺织、食品、医药、仓库等许多领域得到了很快的应用。
因此具有很好的发展前景和可靠的使用价值。
1.2研究内容及创新点
本设计是针对MCS—51型89S51系列单片机在检测和控制方面的应用,首先介绍了一下在设计中用到的一些重要芯片,如AT89S51、DS18B20等,使读者在阅读过程中,对各个芯片的具体功能更加清晰;在温度过程控制系统设计中,详细的介绍了控制要求及键盘接口有关知识,也将设计的流程图、源程序及电路图有序的列出,同样清晰大方。
本设计是将温度通过DS18B20进行采样并转换为0-5V的电压信号进入AT89S51单片机,从I/O口输出到八段数码管LED静态显示部分显示其温度。
同时显示电路显示设定的恒温值,恒温值在0℃~50℃范围内可调。
当实际温度低于设定的恒定温度2℃时,单片机发出指令信号,继电器吸合,红色LED点亮,加热电阻开始加热。
当温度超过设定的恒温值2℃时,单片机发出指令信号,继电器断开,红色LED熄灭,加热电阻停止加热,制冷采用自然冷却。
采用独立式查询键盘设定和改变初始值、比较设定值与输入温度值来控制继电器的加热,从而实现对温度的控制。
本次设计主要分为硬件设计和软件设计。
硬件设计分为电源电路,测温电路,单片机最小系统,键盘接口电路,LED显示电路,继电器控制电路。
软件设计分为温度采集程序,键值处理子程序,显示子程序,采集信号转换子程序等。
在硬件电路的设计中系统采用220V/50Hz交流电供电,电源电路负责提供5V、+12V和-12V直流电源,主要用到了集成稳压块7805、7812和7912。
测温电路负责将现场温度近似线性的转换为0—5V的直流电压信号,信号送至单片机。
单片机将测温电路送过来的电压信号进行显示和计算,并通过相应的程序完成相应的动作。
单片机最小系统是单片机以及整个系统能够正常工作的前提,包括晶振电路,复位电路等。
2系统方案的选择与论证
2.1设计要求
本系统的设计要求是:
DS18B20数字量温度采集、五位数码管静态温度显示、键盘设定温度、继电器开关量温度控制。
2.2系统基本方案
根据技术指标,该系统为一个温度采集控制系统。
该系统主要由控制部分和执行部分组成。
控制部分包括单片机最小系统模块、键盘模块、DS18B20、显示模块、电源模块等。
执行部分主要由加热和自然冷却装置组成。
整个系统实现对数据的采集运算,对温度参数的设置,对采集数据的显示和加热装置的控制。
整个系统图框如图2-1所示。
图2-1基本模块方案图
2.3各模块方案选择
2.3.1单片机的选择
方案一:
采用传统的89C51作为电机的控制核心。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案二:
AT89S51是一种低功耗/低电压、高性能的8位单片机。
片内带有一个4KB的Flash可编程、可擦除只读存储器(EPROM)。
它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC-51兼容。
片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。
因此AT89S51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。
同时支持ISP在线下载。
由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,相比之下方案二要好一些,所以采用方案二。
2.3.2温度传感器的选择
方案一:
模拟式温度传感器
常见的模拟式温度传感器有热电偶、热敏电阻、LM3911、LM335、LM45、AD22103电压输出型、AD590电流输出型。
(1)负温度系数热敏电阻
负温度系数热敏电阻是以金属氧化物为主要原料,采用陶瓷工艺制造而成。
有灵敏度高、稳定性好、响应快、寿命长、价格低等优点,广泛应用于需要定点测温的温度自动控制电路。
(2)AD590温度传感器
AD590是美国模拟器件公司的电流输出型温度传感器,供电电压范围为3-30V,输出电流223μA(-50ºC)~423μA(+150ºC),灵敏度为1μA/ºC。
适用于多点温度测量和远距离温度测量的控制。
3.LM135/235/335温度传感器
LM135/235/335系列是美国国家半导体公司(NS)生产的一种高精度易校正的集成温度传感器。
该系列器件广泛应用于温度测量、温差测量以及温度补偿系统中。
方案二:
逻辑输出型温度传感器
在许多应用中,我们并不需要严格测量温度值,只关心温度是否超出了一个设定范围。
此时可选用逻辑输出式温度传感器。
LM56、MAX6501-MAX6504是其典型代表。
(1)LM56温度开关
LM56是NS公司生产的高精度低压温度开关,内置1.25V参考电压输出端。
最大只能带50μA的负载。
(2)MAX6501/02/03/04温度监控开关
MAX6501/02/03/04是具有逻辑输出和SOT-23封装的温度监视器件开关,它的设计非常简单:
用户选择一种接近于自己需要的控制的温度门限直接将其接入电路即可使用,无需任何外部元件。
这类器件的工作电压范围为2.7V到5.5V,典型工作电流30μA。
方案三:
数字式温度传感器
(1)MAX6575/76/77数字温度传感器
如果采用数字式接口的温度传感器,设计将得到简化。
同样,当A/D和微处理器的I/O管脚短缺时,采用时间或频率输出的温度传感器也能解决上述测量问题。
该器件通过一条I/O口与微处理器相连,利用微处理器内部的计数器测出周期后就可计算出温度。
(2)可多点检测、直接输出数字量的数字温度传感器DS1621
DS1621是美国达拉斯半导体公司生产的CMOS数字式温度传感器。
内含两个不挥发性存储器,可以在存储器中任意的设定上限和下限温度值进行恒温器的温度控制,由于这些存储器具有不挥发性,因而一次写入后,即使不用CPU也仍然可以独立作用。
方案四:
DS18B20数字温度计
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20产品的特点:
(1)只要求一个端口即可实现通信。
(2)在DS18B20中的每个器件上都有独一无二的序列号。
(3)实际应用中不需要外部任何元器件即可实现测温。
(4)测量温度范围在-55°C到+125°C之间。
(5)数字温度计的分辨率用户可以从9位到12位选择。
(6)内部有温度上、下限告警设置[2]。
由于本系统要求灵敏度高、线性度好、实际尺寸小、使用方便、热响应快而且价格便宜等优点。
所以采用方案四中的DS18B20。
2.3.3显示模块的选择
方案一:
使用液晶显示屏显示物体中画笔所在位置的坐标。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但由于只需显示位置坐标这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。
方案二:
使用传统的数码管显示。
数码管具有:
低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。
数码管采用BCD编码显示数字,程序编译容易,资源占用较少[3]。
根据以上的论述,采用方案二。
在本系统中,我们采用了数码管串口的静态显示,节省单片机的内部资源。
2.3.4键盘模块的选择
在温度过程控制中,系统需要对环境的温度进行设定,因此需要用按键。
方案一:
使用独立式键盘。
独立式键盘是指直接用I/O口线构成的单个按键电路。
优点是电路配置灵活,软件实现简单。
但缺点也很明显,每个按键需要占用一根口线,若按键数量较多,资源浪费将比较严重,电路结构也变得复杂。
因此本方法主要用于按键较少或对操作速度要求较高的场合。
软件实现时,可以采用中断方式,也可以采用查询方式。
方案二:
使用矩阵式键盘。
矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。
其特点是简单且不增加成本,这种键盘适合按键数量较多的场合[4]。
根据以上的论述,因本系统需要的按键不多,要求简单。
所以采用方案一独立式键盘。
3系统的硬件设计
系统的硬件主要包括电源模块、DS18B20、单片机最小系统模块、键盘接口模块、LED数码管显示模块、继电器控制模块,实现对温度的采集及运算,对温度参数的设置,对采集数据的显示和对继电器的控制。
3.1电源电路模块
电源电路负责提供5V、+12V和-12V直流电源,主要用到了集成稳压块7805、7812和7912。
设计电源电路如图3-1所示。
图3-1电源电路
3.2温度测量模块
DS18B20是一种单端通信的数字式温度传感器,这就大大减小了温度测量电路的复杂程度,我们将单片机的一条I/O分配给温度传感器,即可完成温度采集的的硬件需求[5]。
单片机通过对温度传感器的初始化,发出温度转换命令,写入和读出数据的命令来实现温度值的测量。
另外,也考虑过用模拟式的温度传感器,但由于数据采集部分需要A/D转换,还需要设计相应的放大电路,电路设计较为复杂,并且在可靠性和抗干扰能力上都不如数字式温度传感器,所以最终选择了用数字式传感器DS18B20进行温度测量的较简单的温度测量模块。
3.2.1DS18B20的测温原理
本系统在温度采集中使用的DS18B20测温原理图如图3-2所示:
图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中[6]。
图3-2DS18B20测温原理图
3.2.2DS18B20的性能特点
DS18B20是一种使用方便的温度传感器,其性能特点如下:
(1)具有独特的单线接口方式,只要求一个端口即可实现通信
(2)内含64位经过激光修正的只读存储器ROM
(3)在DS18B20中的每个器件上都有独一无二的序列号
(4)实际应用中不需要外部任何元器件即可实现测温
(5)测量温度范围在-55℃到+125℃之间,测量分辨率为0.0625℃
(6)数字温度计的分辨率用户可以从9位到12位选择
(7)内部有温度上、下限告警设置,用户可分别设定各路温度的上、下限
(8)支持多接点
(9)可用数据线供电,电压范围:
3.0~5.5V
(10)负压特性:
电源极性接反时,温度计不会因发热而烧毁,但不能正常工作[7]。
3.2.3DS18B20的引脚功能
图3-3底视图
系统所选的是3脚的PR-35封装DS18B20数字温度传感器,引脚功能如下表所示:
表3-1DS18B20的引脚功能描述
序号
名称
引脚功能描述
1
GND
接地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地,也可以向器件提供电源
3.2.4DS18B20的内部存储器
DS18B20的内部有一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL。
高速暂存存储器由9个字节组成,其分配如表3-2所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
表中对应的一部分温度值。
第3和第4字节是TH和TL的拷贝,是易失性的,每次上电复位时被刷新,第5字节为配置寄存器,它主要用来确定温度值的数字转换分辨率[8]。
低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在出厂时该位被设置为0,用户不要去改动。
表3-2DS18B20暂存寄存器分布
寄存器内容
字节地址
温度值低位
0
温度值高位
1
高温限值TH
2
低温限值TL
3
配置寄存器
4
保留
5
保留
6
保留
7
CRC检验
8
单片机可通过单线接口读到该数据,读时低位在前,高位在后,数据格式如下表:
表3-3温度值和数据量之间的关系
温度
数字输出(二进制输出)
数字输出(十六进制)
+125℃
0000000011111010
00FAH
+25℃
0000000000110010
0032H
+0.5℃
0000000000000001
0001H
0℃
0000000000000000
0000H
-0.5℃
1111111111111111
FFFFH
-25℃
1111111111001110
FFCEH
-125℃
1111111110010010
FF92H
R1和R0决定温度转换的精度位数,用来设置分辨率如表3-4所示,默认为12位,分辨率为0.0625℃。
6,7,8字节保留未用,为全逻辑1,第9字节是冗余检验字节[9]。
表3-4配置存储器与分辨率关系
R0
R1
温度计分辨率/bit
最大转换时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
温度算法(分辨率为0.0625℃):
(1)当SSSSS=11111b,D=-1;当SSSSS=00000b,D=1
(2)当D=1时,温度值T=[(高字节×256+低字节)×0.0625
(3)当D=-1时,温度值T=-[(256-高字节)×256-低字节]×0.0625[10]
温度采集过程如图3-4所示:
图3-4温度采集过程图
3.2.5DS18B20的工作时序
DS18B20的工作时序主要包括:
初始化时序、写时序、读时序。
(1)初始化时序
初始化时序见图3-5主机总线在t0时刻发送一个最短为480μs的低电平复位脉冲信号,接着在t1时刻释放总线并进入接收状态,DSl8B20在检测到总线的上升沿之后,等待15μs~60μs,接着在t2时刻发出低脉冲(60μs~240μs),如图中虚线所示,18B20响应之后又恢复为高电平,t2~t4称为18B20的响应时间,最少为480μs。
图3-5初始化时序
(2)写时序
当主机总线t0时刻从高拉至低电平时,就产生写时序,见图3-6,从t0时刻开始15μs之内应将所需写的位送到总线上,DSl8B20在t0后15μs~60μs间对总线采样。
若为低电平,写入的位是0;若为高电平,写入的位是1。
连续写2位间的时序应大于1μs。
图3-6写时序
(3)读时序
见图3-7主机总线t0时刻从高拉至低电平时总线只须保持低电平1μs之后在t1时刻将总线拉高,产生读时序,读时序在t1时刻后t2时刻前有效。
t2距t0为15μs,也就是说,t2时刻前主机必须完成读位,并在t0后的60μs~120μs内释放总线。
图3-7读时序
3.3单片机最小系统电路
单片计算机应该是一个最小的应用系统,但由于应用系统中有一些功能器件无法集成到芯内部,如晶振、复位电路等,需要在片外加接相应的电路。
3.3.1单片机的时钟电路
MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。
单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。
MCS-51单片机的时钟产生方式有两种:
图3-3使用片内振荡电路的时钟电路图3-4HMOS型单片机的外部时钟电路
(1)内部时钟方式:
利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。
最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器,如图3-8所示。
晶体可在1.2~12MHz之间选择。
MCS-51单片机在通常应用情况下,使用振荡频率为6MHz的石英晶体,而12MHz频率的晶体主要是在高速串行通信情况下才使用。
对电容值无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有少许影响。
C1和C2可在20~100pF之间取值,一般取30pF左右。
(2)外部时钟方式
在有些系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。
外部时钟方式中是把外部振荡信号源直接接入XTAL1或XTAL2。
由于HMOS和CHMOS单片机外部时钟进入的引线不同,其外部振荡信号源接入的方式也不同。
HMOS型单片机由XTAL2进入,外部振荡信号接至XTAL2,而内部反相放大器的输入端XTAL1应接地[11],如图3-9所示。
由于XTAL2端的逻辑电平不是TTL的,故还要接一上拉电阻。
CHMOS型单片机由XTAL1进入,外部振荡信号接至XTAL1,而XTAL2可不接地,如图3-10所示:
图3-10CHMOS型单片机的外部时钟电路
3.3.2AT89S51介绍及引脚功能说明
AT89S51是一种低功耗/低电压、高性能的8位单片机。
片内带有一个4KB的Flash可编程、可擦除只读存储器(EPROM)。
它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC-51兼容。
片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。
因此AT89S51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。
另外,AT89S51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式—空闲方式(IdleMode)和掉电方式(PowerDownMode)。
在这空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。
以下是对其引脚及其功能的简要说明:
(1)主电源引脚:
接电源。
(2)外接晶体引脚XTAL1和XTAL2
XTAL1:
接外部晶体的一个引脚。
在单片机内部,它是构成片内振荡器的反放大器的输入端。
当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。
XTAL2:
接外部晶体的另一个引脚。
在单片机内部,它是上述振荡器的反相放大器的输出端。
采用外部振荡器时,此引脚应悬浮不连接。
(3)控制或与其他电源复用引脚RST,ALE/
,
/Vpp
RST:
复位输入端。
当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。
ALE/
:
当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是:
每当访问外部数据存储器时,将跳过一个ALE脉冲。
:
程序存储允许(
)输出是外部程序存储器的读选通信号。
当AT89S51/LV51由外部程序存储器取指令(或常数)时,每个机器周期两次
有效(即输出2个脉冲)。
但在此期间内,每当访问外部数据存储器时,这两次有效的
信号将不出现。
/Vpp:
外部访问允许端。
要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则
端必须保持低电平(接到GND端)。
然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存
端的状态。
当
端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。
(4)输入/输出引脚P0.0~P0.7,P1.0~P1.7,P2.0~P2.7和P3.0~P3.7
P0端口(P0.0~P0.7):
P0是一个8位漏极开路型双向I/O端口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。
在Flash编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7):
P1是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在对Flash编程和程序校验时,P1接收低8位地址。
P2端口(P2.0~P2.7):
P2是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在对Flash编程和程序校难期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位[12],这时可用作输入口。
P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在AT89S51中,P3端口还用于一些复用功能,在对Flash编程或程序校验地,P3还接收一些控制信号。
复用功能如表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 控制器 设计