基于单片机的温度控制毕业设计论文.docx
- 文档编号:28268321
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:61
- 大小:610.77KB
基于单片机的温度控制毕业设计论文.docx
《基于单片机的温度控制毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度控制毕业设计论文.docx(61页珍藏版)》请在冰豆网上搜索。
基于单片机的温度控制毕业设计论文
基于单片机的温度控制毕业设计论文
4.2.1DS18B20的工作时序................................................14
第1章引言
1.1温度控制系统设计的背景、发展历史及意义
随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。
特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。
针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。
温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。
在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。
比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。
没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
因此,各行各业对温度控制的要求都越来越高。
可见,温度的测量和控制是非常重要的。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。
随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。
温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。
这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。
传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。
控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。
而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。
数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。
由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。
更能串接多个数字温度传感器DS18B20进行范围的温度检测。
第2章总体设计方案
2.1方案一
测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
2.2方案二
考虑使用温度传感器,结合单片机电路设计,温度传感器的选择,采用温度芯片DS18B20测量温度,该芯片的物理化学性能很稳定,它能用做工业测温元件,且此元件线性较好。
在0-100摄氏度时,最大线性偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
本制作的最大特点之一是直接采用温度芯片对为温度进行测量,使数据传输和处理简单化,直接读取被测温度值,之后进行转换,依次完成设计要求。
比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。
电路设计方框图如图2-1所示,它主要由四部分组成:
①控制部分主芯片采用单片机AT89S52②显示部分采用四位一体共阳LED数码管以动态扫描方式实现温度显示;③温度采集部分采用DS18B20温度传感器④继电器控制大功率电器。
复位电路
晶振电路
加热继电器
工作
图2-1温度控制系统的总体设计方案
第3章单片机STC89C52的结构与原理
3.1STC89C52简介
STC89S52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。
即定时器T0、T1、T2
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
12.通用异步串行口(UART),还可用定时器软件实现多个UART
13.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
14.PDIP封装
STC89C52RC单片机的工作模式
●掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序
●空闲模式:
典型功耗2mA
●正常工作模式:
典型功耗4Ma~7mA
●掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备
3.2STC89C52的引脚说明
STC89C52的引脚图如图3-1:
图3-1STC89C52RC引脚图
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表3-1:
在对FlashROM编程和程序校验时,P1接收低8位地址。
表3-1P1.0和P1.1引脚复用功能
引脚号
功能特性
P1.0
T2(定时器/计数器2外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(
)。
在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(
)。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如表3-2所示:
表3-2P3口引脚复用功能
引脚号
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89C51RC从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
注意加密方式1时,
将内部锁定位RESET。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
特殊功能寄存器
在STC89C52片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表3-3所示。
并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义。
还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。
不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个一个定时器/计数器2.定时器/计数器2的控制和状态位位于T2CON(见表3-4)和T2MOD(见表3-7)。
定时器2是一个16位定时/计数器。
通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器(特殊功能寄存器T2CON的描述如表3-5所列)。
定时器2有3种操作模式:
捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON中的位进行选择(如表3-6所列)
表3-3STC89C52RC的特殊功能寄存器
表3-4特殊功能寄存器T2CON的描述
表3-5T2CON控制寄存器各位功能说明
符号
功能
TF2
定时器2溢出标志。
定时器2溢出时,又由硬件置位,必须由软件请0.当RCLK=1或TCLK=1时,定时器2溢出,不对TF2置位。
EXF2
定时器2外部标志。
当EXEN2=1,且当T2EX引脚上出现负跳变而出现捕获或重装载时,EXF2置位,申请中断。
此时如果允许定时器2中断,CPU将响应中断,执行定时器2中断服务程序,EXF2必须由软件清除。
当定时器2工作在向上或向下计数方式时(DCEN=1),EXF2不能激活中断。
RCLK
接收时钟允许。
RCLK=1时,用定时器2溢出脉冲作为串口(工作于工作方式1或3时)的接收时钟,RCLK=0,用定时器1的溢出脉冲作为接收脉冲
TCLK
发送时钟允许。
TCLK=1时,用定时器2溢出脉冲作为串口(工作于工作方式1或3时)的发送时钟,TCLK=0,用定时器1的溢出脉冲作为发送脉冲
EXEN2
定时器2外部允许标志。
当EXEN2=1时,如果定时器2未用于作串行口的波特率发生器,在T2EX端口出现负跳变脉冲时,激活定时器2捕获或者重装载。
EXEN2=0时,T2EX端的外部信号无效。
TR2
定时器2启动/停止控制位。
TR2=1时,启动定时器2.
C/
定时器2定时方式或计数方式控制位。
C/
=0时,选择定时方式,C/
=1时,选择对外部事件技术方式(下降沿触发)。
CP/
捕获/重装载选择。
CP/
=1时,如EXEN2=1,且T2EX端出现负跳变脉冲时发生捕获操作。
CP/
=1时,若定时器2溢出或EXEN2=1条件下,T2EX端出现负跳变脉冲,都会出现自动重装载操作。
当RCLK=1或TCLK=1时,该位无效,在定时器2溢出时强制其自动重装载。
表3-6T2CON工作方式
RCLK+TCLK
CP/
TR2
模式
0
0
1
16位自动重装
0
1
1
16位捕获
1
X
1
波特率发生器
X
X
0
(关闭)
表3-7定时器2模式(T2MOD)控制寄存器的描述
符号
功能
-
不可用,保留将来之用*
T2OE
定时器2输出使能位
DCEN
向下计数使能位。
定时器2可配置成向上/向下计数器
第4章温度控制的硬件设备
4.1温度传感器的选择
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。
这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。
数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P3.5口,单片机接受温度并存储。
此部分只用到DS18B20和单片机,硬件很简单。
4.1.1DS18B20的性能特点
1)独特的单线接口仅需要一个端口引脚进行通信;
2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
3)无须外部器件;
4)可通过数据线供电,电压范围为3.0~5.5V;
5)零待机功耗;
6)温度以3位数字显示;
7)用户可定义报警设置;
8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
4.1.2DS18B20的内部结构
DS18B20采用3脚PR-35封装,如图4-1所示:
图4-1DS18B20封装
DS18B20的内部结构,如图4-2所示:
图4-2DS18B20内部结构
4.1.3DS18B20内部结构主要组成部分
1)64位光刻ROM。
开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
64位闪速ROM的结构如下.
表4-3ROM结构
8b检验CRC
48b序列号
8b工厂代码(10H)
2)非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
3)高速暂存存储,可以设置DS18B20温度转换的精度。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。
高速暂存RAM的结构为8字节的存储器,结构如表4-4所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
它的内部存储器结构和字节定义如图表4-5所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。
表4-4DS18B20内部存储器结构
Byte0
温度测量值LSB(50H)
Byte1
温度测量值MSB(50H)
E2PROM
Byte2
TH高温寄存器
----
TH高温寄存器
Byte3
TL低温寄存器
----
TL低温寄存器
Byte4
配位寄存器
----
配位寄存器
Byte5
预留(FFH)
Byte6
预留(0CH)
Byte7
预留(IOH)
Byte8
循环冗余码校验(CRC)
表4-5DS18B20字节定义
TM
R1
R0
1
1
1
1
1
由表4-6可见,分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表4-7是一部分温度值对应的二进制温度数据。
表4-6DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转向时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
表4-7一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
续表4-7
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
4)CRC的产生
在64bROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
4.2DS18B20的工作原理
4.2.1DS18B20工作时序
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
1.每一次读写之前都必须要对DS18B20进行复位;
2.复位成功后发送一条ROM指令;
3.最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
其工作时序包括初始化时序、写时序和读时序,具体工作方法如图4-3,4-4,4-5所示。
1)初始化时序
图4-3初始化时序图
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。
主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。
接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。
2)写时序
图4-4写时序
写时序包括写0时序和写1时序。
所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。
写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。
写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。
3)读时序
图4-5读时序
总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。
所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。
每个读时序都由主机发起,至少拉低总线1us。
主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。
主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。
4.2.2DS18B20的测温原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。
主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
DS18B20的测温原理如图4-9所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 控制 毕业设计 论文