参考温度部分基于DS18B20的温度控制系统毕业设计Word下载.docx
《参考温度部分基于DS18B20的温度控制系统毕业设计Word下载.docx》由会员分享,可在线阅读,更多相关《参考温度部分基于DS18B20的温度控制系统毕业设计Word下载.docx(42页珍藏版)》请在冰豆网上搜索。
4.4按键电路……………………………………………………………………17
4.5数码管显示电路……………………………………………………………17
4.6温度报警电路………………………………………………………………19
第5章系统软件的设计…………………………………………………………20
5.1主程序流程图……………………………………………………………20
5.2DS18B20复位检测子程序流程图…………………………………………20
5.3温度转换子程序图…………………………………………………………21
5.4写DS18B20子程序图……………………………………………………21
5.5读DS18B20子程序图………………………………………………………22
5.6温度计算子程序图…………………………………………………………23
5.7显示子程序图………………………………………………………………23
5.8温度比较报警子程序……………………………………………………24
5.9按键扫描子程序…………………………………………………………25
第6章调试与仿真………………………………………………………………26
6.1软件调试仿真……………………………………………………………26
6.2硬件测试…………………………………………………………………26
结 论…………………………………………………………………………27
致 谢……………………………………………………………………………28
参考文献…………………………………………………………………………29
附录A源程序……………………………………………………………………30
附录B实物图…………………………………………………………………36
附录C原理图…………………………………………………………………37
附录D仿真图…………………………………………………………………38
题目:
基于DS18B20的温度控制系统
作者:
摘要:
本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的新型数字温度计。
主要包括硬件电路的设计和系统程序的设计。
硬件电路主要包括主控制器,测温控制电路和显示电路等,主控制器采用单片机AT89S51,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用4位共阳极LED数码管,通过三极管驱动显示。
测温控制电路由温度传感器和预置温度值比较报警电路组成,当实际测量温度值超出预置温度值时,发出报警信号,且发光二极管亮。
系统程序主要包括主程序,测温子程序和显示子程序等。
DS18B20新型单总线数字温度传感器是DALLAS公司生产的单线数字温度传感器,集温度测量和A/D转换于一体,直接输出数字量,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
关键词:
数码管,AT89S51,DS18B20
第1章绪论
日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。
本数字温度计的设计采用美国DALLAS半导体公司推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89S51控制温度的读写和显示,用LED数码管显示。
测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
而且采用单总线与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统有5个模块组成:
主控制器、温度传感器DS18B20、报警电路、按键预置温度值电路及显示电路。
控制器使用AT89S51,温度传感器使用DS18B20,用4位共阳极LED数码管以动态扫描法实现温度显示。
综上所述,本设计以智能集成温度传感器DS18B20为例,介绍基于DS18B20传感器的数字温度计的设计,该设计适用于人们的日常生活及工农业生产中用于温度的检测及控制。
第2章设计任务及方案分析
2.1设计任务及要求
设计一个基于DS18B20的温度控制系统,其可实现的功能为:
(1)用DS18B20温度传感自检测温度;
(2)用数码管显示温度,精确到0.1摄氏度;
(3)当温度在温度上下限之外时,用声光提示;
(4)温度上下限可设置;
2.2设计总体方案及方案论证
2.2.1系统总体设计
系统主要包括单片机模块、温度采集模块、温度显示模块,温度上下限调整模块和报警模块五部分。
系统总体框架如图2-1所示。
2.2.2主控制部分
方案一:
此方案采用PC机实现,可在线仿真的功能,这让调试变得方便.但是PC机输出信号不能直接与DS18B20通信.需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便.而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!
方案二:
此方案采用AT89S51八位单片机实现.单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制.而且体积小,硬件实现简单,安装方便.既可以单独对多DS18B20控制工作,还可以与PC机通信.
2.2.3温度检测部分
采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的.而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.
采用数字温度芯片DS18B20测量温度,输出信号全数字化,便于单片机处理及控制,省去传统的测温方法的很多外围电路,且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好.在0—100摄氏度时,最大线形偏差小于1摄氏度。
综上,本设计采用以AT89S51作为主控,以温度芯片DS18B20测量温度的温度控制系统。
第3章芯片功能简介
3.1AT89S51的功能简介
3.1.1AT89S51芯片简介
单片机由单块集成电路芯片构成,内部包含计算机的基本功能部件:
CPU、存储器、I/O接口电路、定时/计数器、串行口等。
因此,单片机只需要在适当的软件及外部设备相结合,便可成为一个单片机控制系统。
MSC-51系列单片机是英特尔公司于1980年起推出的第二代产品。
与8084相比,8051的硬件结构和指令系统均有很大改进,可支持更大的存贮空间,扩充了更多的硬件功能I/O功能,速度提高了2-5倍,可完成逻辑运算等。
近年来推出的一些增强的MSC-51系统单片机,片内还集成了许多特殊功能单元,只需要加一些扩展电路及必要的通道接口即可构成各种计算机应用系统。
因此,MSC-51系统单片机在智能仪表、智能接口、功能模块等领域得到了非常广泛的应用。
主要技术特性:
①适于控制应用的8位CPU。
②64KB程序存贮器空间和64KB数据存贮器空间。
③4KB片内程序存贮器。
④128B片内数据RAM。
⑤2个16位定时/计数器。
⑥扩展的逻辑处理能力。
3.1.2引脚说明
图3-1AT89S51引脚示意图
VCC:
供电电压。
GND:
接地。
P0口:
8位双向I/O口。
在访问外部存储器时,P0口用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。
P0口能驱动8个LSTTL门。
在不接外ROM和外RAM时,P0口可做双向I/O口用。
P1口:
P1口是一个内部提供上拉电阻的8位准双向I/O口,P1口负载能力为4个LSTTL门。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:
8位准双向I/O口。
在访问外部存储器时,P2口用于传送高8位地址。
P2口负载能力为4个LSTTL门。
P3口:
可做一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
P3口第二功能如下。
P3.0--RXD(串行输入口)
P3.1--TXD(串行输出口)
P3.2--/INT0(外部中断0)
P3.3--/INT1(外部中断1)
P3.4--T0(定时/计数器0外部输入)
P3.5--T1(定时/计数器1外部输入)
P3.6--/WR(外部数据存储器写选通)
P3.7--/RD(外部数据存储器读选通)
P3口负载能力为4个LSTTL门。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE、/PROG:
①正常使用为ALE功能,用来锁存P0口送出的低8位地址。
P0口一般分时传送低8位地址还是8位数据地址呢?
当ALE信号有效时,P0口传送的是低8位地址信号;
ALE信号无效时,P0口传送的是8位数据信号。
通常在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。
需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1/6的固定速率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。
但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。
ALE端可驱动8个LSTTL门电路。
②/PROG在固化片内存储器的程序(也称为“烧录程序”)时,此引脚用于输入编程脉冲,此时为低电平有效。
/PSEN:
外ROM的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外RAM或内ROM时,这两次有效的/PSEN信号将不出现。
/EA、VPP:
正常工作时,/EA为内外ROM选择端。
MCS-51型单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外。
当/EA保持高电平时,先访问内ROM,但当PC(程序计数器)值超过4KB时,将自动转向执行外ROM中的程序。
当/EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。
对80C31芯片,片内无ROM,因此/EA必须接地。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2DS18B20的功能简介
3.2.1芯片简介
(1)适应电压范围更宽,电压范围:
3.0V~5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(4)测温范围-55℃~+125℃,在-10℃~+85℃时精度为±
0.5℃。
(5)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(6)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(7)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(8)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
3.2.2DS18B20外形和内部结构
DS18B20内部结构如图3-2所示,主要由4部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如图3-3和表3-1所示。
图3-3DS18B20的管脚排列
表3-1DS18B20引脚定义:
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
(1)64位ROM
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。
64位ROM的循环冗余校验码(CRC=X8+X5+X4+1)。
ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
DS18B20温度值格式表3-2如下所示。
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH。
表3-2DS18B20温度值格式表
bit7bit6bit5bit4bit3bit2bit1bit0
LSByte
bit15bit14bit13bit12bit11bit10bit9bit8
MSByte
S
(2)高低温报警触发器TH和TL
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(3)配置寄存器
该字节各位的意义如下表3-3所示。
表3-3:
配置寄存器结构
TM
R1
R0
低五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表3-4所示(DS18B20出厂时被设置为12位)。
表3-4:
温度分辨率设置表
分辨率
温度最大转换时间
9位
93.75ms
10位
187.5ms
11位
375ms
12位
750ms
(4)高速暂存器是一个9字节的存储器。
开始两个字节包含被测温度的数字量信息;
第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;
第6、7、8字节未用,表现为全逻辑1;
第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。
高速暂存器RAM结构图如下表3-5所示。
表3-5:
DS18B20暂存寄存器分布
寄存器内容
字节地址
温度值低位(LSByte)
温度值高位(MSByte)
高温限值(TH)
低温限值(TL)
配置寄存器
4
保留
5
6
7
CRC校验值
8
3.2.3DS18B20与单片机的典型接口设计
图3-4(a)中DS18B20采用寄生电源方式,图3-4(b)中DS18B20采用外接电源方式,其VDD端用3V~5.5V电源供电。
(a)寄生电源工作方式(b)外接电源工作方式
图3-4电源工作方式图
第4章系统硬件电路的设计
4.1主控制电路和测温控制电路原理图
AT89S51是此硬件电路设计的核心,通过AT89S51的管脚P3.7与DS18B20相连,控制温度的读出和显示。
电路原理图如下图4-1所示。
图4-1主控制电路和测温控制电路原理图
4.2上电复位电路
图4-2上电复位电路
本设计中AT89S51是采用上电自动复位,如图4-2所示。
上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。
4.3时钟电路
此处选用内部时钟方式。
即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。
最常用的是在XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4-3电路.
图4-3时钟电路
4.4按键电路
键盘是一种常见的输入设备,用户可以向计算机输入数据或命令。
本设计是采用独立式按键,用5个按键,分别接P1.0—P1.4,当无按键按下时其口上的电平为高电平。
当某按键按下时,与其相连的I/O线将得到低电平输入。
如图4-4。
图4-4按键电路
4.5数码管显示电路
发光二极管LED是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。
它使用了8个LED发光二极管,其中7个显示字符,1个显示小数点,故通常称之为7段发光二极管数码显示器,如图4-5所示。
为了显示字符,要为LED显示器提供段码(或称字形代码),组成一个“8”字形的7段,再加上1个小数点位,共计8段,因此提供给LED显示的段码为1个字节。
各段码位的对应关系如下:
表格4-1各段码位的对应关系
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
当阳极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。
共阳极显示段码
图4-5LED数码显示器的显示段码
本设计采用LED数码管显示电路,该显示电路由7段共阳数码管,限流电阻,三极管,基极电阻,P0口,P2口等组成。
P0口通过与8个270Ω电阻与数码管的8个数据位相连,送显示数码。
电阻即可起到限流作用,又可起到上拉电阻的作用。
P2口的P2.0~P2.3通过4个4.7kΩ的电阻和4个三极管与4个7段数码管相连,起位选的作用。
数码管显示电路的原理图如图4-6。
图4-6数码管显示电路图
4.6温度报警电路
温度报警电路是检测当前温度的值并与预置的温度上下限进行比较,当当前温度超出预置的温度上下限时,系统就会立即发出报警信号。
此设计的温度报警电路是由声光报警电路组成,用到了蜂鸣器和LED发光二极管。
原理图如图4-7:
图4-7温度报警电路
第5章系统软件的设计
5.1主程序流程图
主程序首先进行初始化,当检测到DS18B20存在时发出温度转换命令和读温度命令,在分别调用相应的数据处理子程序,完成温度测量及显示工作。
流程图如图5-1:
5.2DS18B20复位检测子程序流程图
主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。
如图5-3所示。
图5-3初始化程序
DS18B20复位检测子程序的主要功能为检测DS18B20是否存在。
若存在则将标志位FLAG1置1,反则置0.后续程序可以通过判断标志位来决定进行何种操作。
流程图如图5-2:
5.3温度转换子程序图
温度转换命令子程序主要是发温度转换命令,当采用12位分辨率时转换时间约为750ms,流程图如图5-4:
5.4写DS18B20子程序图
写时间片:
将数据从高电平拉至低电平,产生写起始信号。
在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写0就发生。
在开始另一个写周期前必须有1us以上的高电平恢复期。
其写时序图5-5,流程图如图5-6:
图5-5写时序
5.5读DS18B20子程序图
读时间片:
主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。
主机在读时间片下降沿之后15us内完成读位。
每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。
如图5-8.
读温度子程序只读出DS18B20暂存器前4个字节的数据:
温度值LSB\温度值MSB、温度报警值TH和TL,并将它们分别存入25H~28H单元中。
如图5-7:
图5-8读时序
5.6温度计算子程序图
温度计算子程序首先判断温度值MSB的符号位,当符号位S=0时,表示测得的温度值为正,可以直接将二进制转换为十进制;
当符号位S=1时,表示测得的温度值为负,要先将补码变成原码,再计算十进制值。
计算时先将温度值LSB的低四位取出,进行小数部分数据处理。
再将温度值LSB的高四位和温度值MSB的低四位取出,重新组合后进行整数部分数据处理。
如图5-9:
5.7显示子程序图
温度显示子程序将从DS18B20读出的温度值,经过数据处理后