基于DS18B20温度测试仪概要Word文档格式.docx
《基于DS18B20温度测试仪概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于DS18B20温度测试仪概要Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
3.6独立按键输入电路13
3.7蜂鸣器和LED灯报警电路...................................................................................14
3.8仿真结果.................................................................................................................14
第四章软件设计16
4.1主流程图16
4.2显示流程图16
4.3Ds18b20温度采集流程图...17
4.4温度处理流程图.....................................................................................................18
4.4.1温度计算流程图............................................................................................18
4.4.2符号显示流程图............................................................................................18
4.5按键流程图.............................................................................................................19
4.6LED和蜂鸣器报警流程图....................................................................................19
第五章调试与总结...................................................................................................21
参考文献
附录1:
原理图
摘要
温度是一种基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量。
因此研究温度的测量方法和装置具有重要意义。
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前,国际上新型温度传感器正从模拟式向数字式,集成化向智能化、网络化的方向飞速发展。
本文所介绍的智能温度测量系统是基于DS18B20型数字式温度传感器,在89C52单片机的控制下,对环境温度进行实时控制的装置。
该系统测量范围宽、测量精确度高,该系统可广泛适用于人民的日常生活和工、农业生产的温度测量。
关键词:
DS18B20;
测温仪;
单片机
第一章概述
日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。
在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。
进而想到采用智能温度传感器来设计数字温度计。
本数字温度计的设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89C52控制温度的读写和显示,用LED数码管显示。
测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统有3个模块组成:
主控制器、温度传感器DS18B20及显示电路。
控制器使用AT89C52,温度传感器使用DS18B20,用4位共阴极LED数码管以静态显示实现温度显示。
系统程序主要包括主程序、温度控制子程序及显示子程序等等。
综上所述,本设计以智能集成温度传感器DS18B20为例,介绍基于DS18B20传感器的数字温度计的设计,该设计适用于人们的日常生活及工农业生产中用于温度的检测及控制。
第二章总体方案设计
2.1设计目的和要求
运用<
<
单片机原理及应用>
>
课程等相关知识,根据题目要求进行控制电路原理设计、电路板设计与制作、控制软件设计、系统调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等得到显著提高。
设计一个基于单片机的DS18B20数字温度计。
课程设计要求:
Ø
5V供电;
温度采集采用DS18B20;
LED数码管显示器;
设计温度控制器原理图,用PROTEL画出该原理图;
设计和绘制软件流程图,用C语言进行程序编写,然后进行调试。
2.2设计方案
智能温度测量系统主要由数字温度计、单片机控制电路、数字式温度显示电路三部分组成。
系统原理框图如图2.1所示。
图2.1智能温度测量系统原理框图
2.3系统的性能指标
温度测量范围:
-55℃-+125℃电路板工作温度:
0℃-+70℃
温度测量精度:
0.0879℃
2.4温度测试仪组成及器件选择
下面根据设计要求,针对各模块需要完成的功能,本着简单、实用、廉价、容易操作、稳定的原则,对各个模块进行充分理论分析和方案论证。
温度测试仪的各个零部件如下:
(1)主板1块
(2)DS18B20一个
(3)74LS164静态led显示模块1个
(4)电源线与电源插座
(5)USB转串口线一个
2.4.1单片机的选择
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用STC公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式[12]。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止,封装有PDIP-40,PLCC-44,PQFP-44。
在本系统中,选择的是PDIP-40封装。
与MCS-51单片机产品兼容;
8K字节在系统可编程Flash存储器;
1000次擦写周期;
全静态操作:
0Hz~33Hz;
三级加密程序存储器;
32个可编程I/O口线;
三个16位定时器/计数器;
八个中断源;
全双工UART串行通道;
低功耗空闲和掉电模式;
掉电后中断可唤醒;
看门狗定时器;
双数据指针;
掉电标识符。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,stc89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
图2.2AT89C52单片机
特性:
1、兼容MCS51指令系统
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
2.4.2温度传感器DS18B20的选择
美国Dallas半导体公司的数字化温度传感器DS18B20是支持
"
一线总线"
接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
DS18B20支持"
接口,测量温度范围为-55°
C~+125°
C,在-10~+85°
C范围内,精度为±
0.5°
C。
DS1822的精度较差为±
2°
现场温度直接以"
的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
2.2.3.1主要特性:
DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:
(1)采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
(2)测量温度范围宽,测量精度高DS18B20的测量范围为-55℃~+125℃;
在-10~+85°
C范围内,精度为±
0.5°
C。
(3)在使用中不需要任何外围元件。
(4)持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温。
(5)供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
(6)测量参数可配置DS18B20的测量分辨率可通过程序设定9~12位。
(7)负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(8)掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
图2.31DS18B20外观图
2.4.374LS164移位寄存器的选择
74HC164、74HCT164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。
74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;
任输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
引脚信息如图2.4所示:
图2.474ls164引脚信息图
时序图如图2.5所示:
图2.574ls164时序图
2.4.4显示模块的选择
本设计提供的显示模块是采用数码管静态显示方式进行显示的。
为了实现静态显示,利用74LS164芯片的8位串入,并出移位寄存器功能结合数码管进而达到目的。
根据LED显示译码方式分,可以分为硬件译码和软件译码两种。
所谓硬件译码,就是用硬件译码器代替软件求得显示代码,这样不仅可以节省计算机的时间,而且程序设计简单,只要把BCD码(或十六进制码)从相应的端口输出即可完成显示;
如果用软件的方法来直接将BCD码(或十六进制码)转换成自身的段码即为软件译码。
本设计采用的是硬件译码。
根据LED显示驱动连接方式,可以分为静态显示驱动和动态显示驱动。
静态显示就是每一个数码管都由一组数据线控制,所有的数码管都同时亮,而动态显示就是所有要显示的数码管一次循环逐个显示,只要频率足够高,肉眼就看不出闪烁,好像所有的同时显示一样。
在本设计中,由移位寄存器74LS164和LED数码管共同组成显示单元。
74LS164是串行输入并行输出的移位寄存器。
它具有两个串行输入端(A和B)和8位并行输出端(Qa—Qh)。
CLR为异步清零端,当其为低电平时,可使74LS164清零(复位)。
因本设计不需要复位,所以将其接+5V。
CLK为时钟脉冲接收端,用以控制移位寄存器的移位节奏。
74LS164的封装如下图2.6所示:
图2.674LS164的封装
LED数码显示管是一种由LED发光二极管组合显示字符的显示器件如下图。
它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二极管数码显示器。
对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号。
LED数码显示有动态扫描显示法和静态显示。
本设计采用LED静态显示。
如下图2.7所示为LED数码管的共阴极显示。
图2.7LED共阴显示
第三章硬件设计与仿真
3.1电源电路
单片机工作时需要的+5V电压,本设计采用普通的电源接口,通过5V的电源适配器供电,电源电路图如图3.1所示。
图3.1电源电路
3.2时钟电路
单片机工作的过程中各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序,单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准,STC89C52的时钟产生方式有两种,一种是内部时钟方式,一种是外部时钟方式。
内部时钟方式即在单片机的外部接一个晶振电路与单片机里面的振荡器组合作用产生时钟脉冲信号,外部时钟方式是把外部已有的时钟信号引入到单片机内,此方式常用于多片STC89C52单片机同时工作,以便于各单片机的同步,这种方式适宜用来使单片机的时钟与外部信号保持同步。
一般要求外部信号高电平的持续时间大于20ns.且为频率低于12MHz的方波。
为了尽量降低功耗,所以采用内部时钟方式。
在STC89C52单片机的内部有一个震荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振)就构成了自激振荡器并在单片机内部产生时钟脉冲信号,图中电容C1和C2的作用是稳定频率,电容值一般为30pF,晶振选择的是11.0592MHz。
图3.2晶振电路
3.3复位电路
本设计中复位电路采用的是开关复位电路,开关S1未按下是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容处于充电(导通)状态,故RST脚的电压与VCC相同。
随着电容的充电,RST脚上的电压才慢慢下降。
选择合理的充电常数,就能保证在开关按下时是RST端有两个机器周期以上的高电平从而使STC89C52内部复位。
开关按下时是按键手动复位电路,RST端通过电阻与VCC电源接通,通过电阻的分压就可以实现单片机的复位。
电路RST引脚的高电平只要
能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
该电路典型的电阻和电容参数为:
晶振为11.0592MHz时,C3为10uF。
图3.3复位电路
3.4温度传感器功能模块
温度传感器是该系统的关键器件,本设计采用的DS18B20温度传感器是美国DALLAS半导体公司最新推出的一款改进型智能温度传感器,它集温度测量、A/D转换为一体,其温度测量范围从-55OC到+125OC,精度为±
0.5°
C,可在1秒钟内把温度变换成数字。
它支持3V~5.5V的电压范围,使系统设计更灵活、方便;
其工作电源既可在远端引入,也可采用寄生电源方式产生;
此外,与传统的热敏电阻等测温元件相比,DS18B20能直接读出被测量的温度,并且可以根据实际要求通过简单的编程实现