刘世鹏多路温度采集系统设计Word文档格式.docx
《刘世鹏多路温度采集系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《刘世鹏多路温度采集系统设计Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
![刘世鹏多路温度采集系统设计Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/28/73c083f3-bb08-4579-8718-0a778524e073/73c083f3-bb08-4579-8718-0a778524e0731.gif)
图1数字式多路温度采集系统结构框图
采用智能温度传感器(DS18B20)采集环境温度并进行简单的模数转换;
单片机(AT89C51)执行程序对温度传感器传输的数据进行进一步的分析处理,转换成环境对应的温度值,通过I/O口输出到数码显示管(LED)显示;
由键盘输入控制选择某采集电路检测温度及显示;
报警电路对设定的最高最低报警温度进行监控报警。
2.1温度采集电路设计
温度采样处理电路由温度传感器、放大电路、A/D转换电路等组成。
采用分块结构的温度采样处理电路,其硬件电路结构复杂,也不便于数据的处理。
采用智能温度传感器采样处理电路,能够方便的进行温度的采集及简单的数据处理。
并且可以达到设计的技术指标要求。
本系统选择智能温度传感器DS18B20作为温度采集电路的核心器件。
由DS18B20及辅助电路构成温度采集电路。
2.1.1DS18B20简介
(1)DS18B20的性能特点
DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等温度传感器相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以在93.75ms至750ms内完成相应9位至12位的数字量转换。
它的测温精度可达到0.0625℃/LSB。
它的测温范围是-55~+125℃。
从DS18B20读出或写入信息仅需要一根口线,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,无需额外电源。
因而选用DS18B20是恰当的。
(2)DS18B20的外形和内部结构
DS18B20采用3脚PR-35封装,其外形和内部结构框图分别如图2、图3所示。
图2DS18B20外形结构图3DS18B20内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
64位光刻ROM的位结构图如图4所示。
64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。
图464位ROM结构
DS18B20温度传感器的内部存储器包括一个非易失性的可电擦除E2PRAM和一个高速暂存RAM。
E2PRAM包括存放高温度和低温度的触发器TH、TL和结构寄存器。
非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。
高速暂存RAM的结构为9字节的存储器,结构图如图5所示。
头2个字节包含测得的温度信息。
第3、4字节是TH和TL的拷贝,每次上电复位时被刷新。
第5字节为配置寄存器,用于确定温度值的数字转换分辨率。
第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
第5字节配置寄存器各位的定义如图6所示;
低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式;
R1和R0决定温度转换的精度位数(即设置分辨率),定义方法见表1。
图5高速缓存RAM结构
图6配置寄存器
表1DS18B20分辨率的定义规定
R1
R0
分辨率/位
温度最大转换时间/ns
1
9
10
11
12
93.75
187.5
375
750
9位分辨率时,精度为0.5℃/LSB;
10位分辨率时,精度为0.25℃/LSB;
11位分辨率时,精度为0.125℃/LSB;
12位分辨率时,精度为0.0625℃/LSB。
转换精度越高所需转换时间越长。
为了达到本系统的技术指标,选择12位分辨率。
(3)DS18B20供电方式
外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。
在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证测量精度。
所以本系统采用外部电源供电方式。
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上可以挂接任意多个DS18B20传感器,组成多点测温系统。
外部电源供电方式如图7所示。
在外部供电方式下,DS18B20的GND引脚必须接地,不能悬空,否则不能转换温度,读取的温度总是85℃。
图7DS18B20外部电源供电
温度采集电路结构如图8所示。
图中给出了2路温度采集电路,2只智能温度传感器DS18B20的信号输出端都连接到单片机的P1.7端,电阻R6作为上拉电阻。
如果需要增加,可以在P1.7端再连接更多的智能温度传感器DS18B20。
工作时,由程序控制读取某智能温度传感器DS18B20采集的温度数据,送单片机处理。
图8多点温度采集电路
2.2单片机控制电路设计
单片机控制电路核心是单片机芯片,其加上工作基本电路,就可以展开控制工作。
MCS8031和AT89C51[2]都具有4个8位I/O接口,但MCS8031没有内部程序存储器,需要外接,增加了电路的复杂性;
AT89C2051和AT89C51都具有FlashROM,可以省去外接程序存储器;
但AT89C2051接口少,不利于功能扩展;
故选用AT89C51。
AT89C51单片机内部结构及主要性能特点:
40个引脚,双列直插式封装;
有4个8位I/O接口;
有全双工增强型UART,可编程串行通信;
2个16位定时/计数器;
5个中断源,2个中断优先级;
有片内时钟振荡器(全静态工作方式,0~24MHz);
有128字节内部RAM,4KBFlashROM(可以擦除1000次以上,数据保存10年);
电源控制模式灵活(时钟可停止和恢复,空闲模式,掉电模式)。
2.2.2AT89C51单片机工作基本电路设计
AT89C51单片机正常工作,必须连接基本电路。
基本电路包括晶振电路[3]和复位电路[4]。
(1)晶振电路
单片机的时钟信号通常有两种产生方式:
一是内部时钟方式,二是外部时钟方式。
内部时钟方式是利用单片机内部的振荡电路产生时钟信号。
外部时钟方式是把外部已有的时钟信号引入到单片机内。
本设计采用内部时钟方式,电路如图9中所示。
在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。
C1和C2可以稳定振荡频率,并使快速起振。
本电路选用晶振12MHz,C1=C2=30pF。
(2)复位电路
复位是使单片机处于某种确定的初始状态。
单片机工作从复位开始。
在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。
复位操作有两种基本方式:
一种是上电复位,另一种是上电与按键均有效的复位。
本设计采用后一种复位电路。
电路如图9中所示。
当RST获得高电平,随着电容C3的充电,RST引脚的高电平将逐渐下降。
若该高电平能保持足够2个机器周期,就可以实现复位操作。
选择C3=10µ
F,R1=10KΩ。
综上所述,单片机控制电路如图9所示。
图9单片机控制电路
2.3输入控制电路设计
输入控制电路由按键及其接口构成,键盘是单片机最简单的输入设备。
常用键盘分为独立式键盘和矩阵式键盘。
本系统的输入控制简单,采用独立式键盘及接口电路[5]。
输入电路由2个按钮开关、2个10欧的限流电阻组成;
键扫描识别采用软件查询的方法。
电路如图10所示,各键功能如表2所示。
图10按键输入控制电路
表2各键功能
按键
键名
功能
S1
第一路温度
按键按下,LED数码显示管显示第一路温度。
S2
第二路温度
按键按下,LED数码显示管显示第二路温度。
2.4显示电路设计
显示电路采用LED数码管显示。
LED数码显示管有静态显示方式和动态显示方式,本系统采用串行输出[6]的静态显示方式。
利用4片串转并芯片74LS164将控制器输出的串行数据转换成并行数据输出,用来驱动4位LED数码显示管显示数据。
2.4.1LED数码显示管静态显示工作原理
LED显示器工作于静态显示方式时,各位的阴极(或阳极)选择线连接在一起并接地(或+5V);
每位的段码线分别与1个8位的锁存器输出连接。
各LED显示某一字符时,相应段的发光二极管恒定地导通或截止,直到送入另一个字符的段码为止。
静态显示可以得到较高的显示亮度。
静态显示有并行输出和串行输出两种方式。
并行输出显示的十进制位数多时,需要并行I/O接口芯片的数量较多。
串行输出可以大大节省单片机的内部资源。
显示电路由单片机AT89C51的P3.0端作数据输出,连接到低位74LS164的数据输入引脚端,其余3片74LS164的数据输入端分别接到它前面一位74LS164的数据输出端的最高位引脚端。
单片机AT89C51的P3.1、P1.4端分别接到一个与门电路的输入端,与门电路的输出端分别与每片74LS164的输出允许控制端相连接。
每片74LS164的输出端分别连接到一个数码显示管。
显示电路结构图如图11所示。
图11显示电路图
AT89C51单片机工作在串行口方式0下(移位寄存器方式),P3.0(RXD)为数据输出端,P3.1(TXD)为移位脉冲输出端,P1.4为74LS164允许输出控制端。
串行口发送缓冲区的数据在移位脉冲的作用下,一位一位地从P3.0口移入到74LS164中,并在控制信号的控制作用下,通过LED数码显示管显示。
2.5报警控制电路设计
报警控制电路采用压电式蜂鸣器作发声体,用三极管对蜂鸣器发声进行控制。
报警控制电路由单片机AT89C51的P3.7端作输出,通过一个限流电阻与三极管C945的基极相连接。
三极管C945集电极连接压电蜂鸣器(BUZZER)的一端。
压电蜂鸣器的另一端连接电源。
报警控制电路如图12所示。
图12报警工作电路
(1)压电蜂鸣器工作原理
压电蜂鸣器以压电陶瓷制作而成。
压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。
当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,电流的变化与压力的变化密切相关。
反之,当在压电陶瓷上加上一定频率的电压,就会在内部产生一定频率的电流,从而就会引起压电陶瓷微小形变,这一形变带动空气发生振动。
如果频率适当,就产生蜂鸣声,可以被人耳所听见。
(2)报警控制电路工作过程
报警控制信号由单片机AT89C51的P3.7端输出,通过一个限流电阻加到三极管C945的基极。
当P3.7端的输出信号发生变化时,则三极管C945将交替的工作于截止、饱和状态,形成高低电平的波,从而使压电蜂鸣器发出声音。
2.6电源电路设计
电源电路[7]由变压器、单相桥式整流电路、滤波电路和三端稳压电路构成。
其电路图如图13所示,图中“output”端输出为+5V。
图13电源电路
电子设备中常使用输出电压固定的集成稳压器。
三端式稳压器只有输入、输出和公共引出端,由启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等部分组成。
在本系统中,要求电源电压为+5V,由于三端式稳压器输出电压固定,故在设计中选择三端式稳压器L7805。
三端式稳压器的输入与输出之间电压差为2~3V,整流桥的输出电压是输入电压(有效值)的1.2倍,根据有效值与峰-峰值的关系选择220V/6V的变压器。
由于L7805的最大输出电流为1A,电压为稳定的+5V,输出功率为5W,加上三端式稳压器L7805的消耗,故本系统选择降压比为220V/6V、功率为10W的变压器。
图13中C4、C5为低频滤波电容,根据经验选择电解电容,其容值分别为C4=220μF、C5=47μF;
C6、C7为高频滤波电容,均选0.1μF的无极性电容。
发光二极管用于指示电源是否接通,选择FG1112004发光二极管,根据FG1112004正向电流为5mA及管压降为+2V,选择限流电阻R5=680Ω。
2.7数字式多路温度采集系统元件清单
数字式多路温度采集系统元件清单,见附录
(1)。
2.8数字式多路温度采集系统电路图
数字式多路温度采集系统原理图,见附录
(2)(图14)
3数字式多路温度采集系统程序设计
3.1主程序设计
主程序[8]主要功能是控制调用子程序,实现温度的实时显示、读出并处理DS18B20的测量温度值(温度测量每1s进行一次)。
其程序流程图如图16所示。
图16数字式多路温度采集系统主程序流程图
3.2子程序设计
3.2.1DS18B20的通信协议
根据DS18B20的通讯协议[7],主机(单片机AT98C51)控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行初始化操作,初始化成功后发送一条存储器操作命令(ROM指令),最后处理数据(发送RAM指令),这样才能对DS18B20进行预定的操作。
所用各ROM、RAM操作指令分别如表3、表4所示。
表3ROM指令表
指令
约定代码
读ROM
33H
读DS18B20温度传感器ROM中的编码(即64位地址)
符合ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写做准备.
搜索ROM
0F0H
用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。
为操作各器件作好准备。
跳过ROM
0CCH
忽略64位ROM地址,直接向DS18B20发温度变换命令。
适用于单片工作。
告警搜索命令
0ECH
执行后温度超过设定值上限或下限的片子才能做出响应。
表4RAM指令表
温度转换
44H
启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。
结果存入内部9字节RAM中。
读暂存器
0BEH
读内部RAM中9字节的内容。
写暂存器
4EH
发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
(1)键盘扫描子程序
键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。
其程序流程图如图17所示。
(2)温度转换命令子程序
温度转换命令子程序主要是发送温度转换开始命令。
在发送匹配ROM命令后,紧跟着发送要进行测温的DS18B20的64位ROM序列(这个序列号一般由厂方提供或通过实验的方式获得)。
采用12位分辨率,转换时间约为750ms。
其程序流程图如图18所示。
图17键盘扫描子程序流程图图18温度转换命令子程序流程图
(3)读出温度子程序
读出温度子程序主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图19所示。
(4)计算温度子程序
从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。
在系统采用12位转换精度,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
通过观察可以发现一个十进制值和二进制值之间有很明显的关系。
低字节的高半字节乘以0.0625恰好就是原整数。
因此,把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就恰好是温度值的百、十、个位值;
剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。
小数部分因为是半个字节,所以二进制值范围是0~F,转换成十进制小数值就是0.0625的倍数。
这样需要4位的数码管来显示小数部分,实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。
表5就是二进制和十进制小数的近似对应关系。
其程序流程图如图20所示。
表5小数部分二进制和十进制的近似对应关系表
小数部分
二进制数
2
3
4
5
6
7
8
A
B
C
D
E
F
十进制数
图19读出温度子程序流程图图20计算温度子程序流程图
(5)显示数据刷新子程序
显示数据刷新子程序[9]主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
其程序流程图如图21所示。
图21显示数据刷新子程序流程图图22报警控制子程序流程图
(6)报警控制子程序
当设定的最高报警温度值大于显示缓冲区中的数据时,发出报警,提示温度超过设定的最大值。
其程序流程图如图22所示。
3.3数字式多路温度采集系统控制源程序
数字式多路温度采集系统控制源程序。
4系统调试及性能分析
4.1系统调试
系统调试分为硬件调试和软件调试两步。
(1)硬件调试
硬件调试比较简单,首先检查电路的焊接是否正确及电路中有没有虚焊等问题,然后可用万用表测试或通电检测电路。
(2)软件调试
软件调试以程序为主。
先编写一段显示程序对硬件的正常工作进行检验,然后进行主程序、匹配ROM子程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等的编程及调试。
软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能够改变就基本完成软件调试。
由于DS18B20与单片机采用单线串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。
4.2系统性能分析
用制作的测温系统和已有的成品温度计(如水银温度计)来同时测量环境温度,并对测量的结果进行比较分析。
由比较分析及DS18B20的特点可得,用本系统进行测温时,精度很高,误差指标可以限制在0.1℃以内;
另外在-55~+125℃的测温范围内使得该系统完全适合一般的应用场合。
5结束语
数字式多路温度采集系统具有温度采集、显示、简单的人机对话及报警功能。
它的测温范围宽(-55~+125℃),测量精度可通过编程调节,最高精度可达到0.0625℃/LSB。
本系统主要是适用于采集显示温度,不具备控制调节温度功能。
但能够进行硬件和软件功能扩展。
在硬件扩展后,通过软件编程实现控制功能扩展。
例如当环境温度达到一定值时,通过软件编程进行判断,从主控制器的一个I/O端口输出一个控制指令,去驱动外部的控制电路工作,从而调节环境温度,使环境温度达到人们所需的要求。
因此在人们健康意识日益提高的今天有很好的市场推广前景。
致谢
经过一个月的努力,在指导教师李文圣老师及同学的帮助下,顺利完成了课程设计。
此次设计是对大学四年所学知识的综合运用,也是理论走向实践的第一步。
在此设计过程中,扩展了知识面,增强了独立思考和自学的能力,为以后走向工作岗位奠定了基础。
附录
附录
(1)数字式多路温度采集系统元件清单
编号
元件名称
型号及规格
数量
单片机芯片
AT89C51
感温元件
DS18B20
七段数码显示器
LED
串转并芯片
74LS164
晶振
12MH
--
三极管
C945
压电蜂鸣器
整流二极管
1N4007
发光二极管
FG1112004
电阻
10Ω
100Ω
13
680Ω
14
4.7Ω
15
10KΩ
16
电容
0.1μF
17
30pF
18
47μF/50V
19
100μF/50V
20
220μF/50V
21
与门
74LS08
附录
(2)数字式多路温度采集系统原理图
图14数字式多路温度采集系统原理图
仅供个人用于学习、研究;
不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;
notforcommercialuse.
Nurfü
rdenpersö
nlichenfü
rStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'
é
tudeetlarechercheuniquementà
desfinspersonnelles;
pasà
desfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文