李皓楠
关键词 温度 串行口线 I/O口线 DS18B20数字温度传感器 AT89C51单片机
中图分类号:TP368 文献标识码:A 文章编号:1007-0745(2022)05-0016-03
1 研究背景及意义
在高新技术的推动下,我们正跨入真正的数字化、智能化、网络化的时代。温度不仅是一个重要的物理量,还是在进行工业生产的时候所需要的重要工艺参数之一。所以,对温度的测量技术与温度测量仪器是一个很有必要进行探究的课题。随着时代的进步和发展,单片机技术已经伸入到各个领域,而单片机的数字温度计与传统的水银温度计相比,不仅读数方便,测量温度的范围也比较广泛,会用数字来表示测量的温度。
1.1 温度计的发展史
随着我国科技的进步和现代工业技术的需求,温度测量技术也随着时代的发展而不断地改进。随着测量温度的范围越来越广,我们根据社会对于不同测温的需求,制造出了在不同情况下可以进行测温的专业仪器。
气体型的温度计大多是以氢气或是氦气作为能够测量温度的物质,在一般情况下,这两种气体在液化之后的温度与绝对零度是非常接近的,所以这种气体型的测温范围很广泛。但是,这种温度计的精准性要求很高,所以大多数都用于精密测量上。
具有温差性的电偶温度计是一种在工业中经常用到的测量温度仪器。它的原理主要就是利用温差电的原理制作而成的,通过将两种不同性质的金属丝进行焊接,将其作为温度计的工作端,而金属丝的另外两端和温度计测量温度的仪器进行连接,从而形成了温度计运作的电路。在点偶温度计工作的时候,可以将金属丝工作的一端放在测量温度的地方,当两端的温度有所不同时,就能够形成电流的电动势,此时会有一定的电流经过由金属丝连接的电路。而这种形成温差的电偶温度计大多是通过两种温差大的物质进行温度测量,像“铜-康铜、铁-康铜”,一个用于高温的测量,一个用作低温测量。
DS18B20是一种无需经过其他变化电路,直接输出被测温度数字量的温度传感器,它采用单总线专用技术,可通过串行口线或其他I/O口线与计算机接口相连,支持多器件擴展,使用相当方便。测温范围为-550℃~ +1250℃,其分辨率为0.50℃,最高可达0.006250℃。
1.2 电路设计
本设计主要是在温度检测部分利用了一款新型的温度检测芯片DS18B20,这个芯片大大简化了温度检测模块的设计,它无需A/D转换,可直接将测得的温度值以二进制形式输出。
2 数字温度传感器DS18B20的外观及内部结构
2.1 S18B20的外观
DS18B20采用3脚TO-92封装,外形如同普通的半导体三极管,除此之外,DS18B20也有8脚的SOIC封装及6脚的TSOC封装等形式。
2.2 DS18B20的内部结构
S18B20与DS1820这两种数字温度传感器在测量温度时的工作原理和读写的顺序是一样的,只不过就是最后得到的温度值位数会因为传感器的分辨率而变得不同。在温度转换的过程中,DS1820的延时时间一般都是从2s减到750ms[1]。一般情况来讲,低温度系数晶振的振动频率很少会受到温度的影响而变化,主要的原理是将频率稳定的脉冲信号传送到计数器1。而高温度系数晶振则与其相反,会随着振动频率的改变而改变,将产生的频率转换成计数器2的脉冲输入。计数器1会对低温度系数晶振产生脉冲信号的数值相减,当计数器1的初始值相减到0的时候,寄存温度器上面的数值就会加1。当计数器1重新工作,对低温度系数晶振产生的脉冲信号进行再一次计算的时候,会重复上一个过程直到计数器的数值重新回到0,寄存温度器的累加也会随之停止[2]。这个时候的寄存温度器中的数值还是停留在所测的温度数值。
斜率累加器大多是在进行补偿和修正测温过程非线性的过程中进行应用,其输出的数值会用作修正计数器在测温过程中的初始值。而光刻ROM上的序列号一共有64位,这已经是在出厂之前就被光刻好的了,且光刻ROM的序列号可以当做是DS18B20的专属序列号[3]。它的排列顺序一般就是:光刻ROM序列号的前8位数是产品的类型标号,类型标号之后的48位是DS18B20自身出厂随机带出的序列号,而排列在最后的8位数则是将类型标号和序列号所形成的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM所起到的作用就是能够让DS18B20都会有自己专属的序列码,以此达到在总线上连接DS18B20的目的。
DS18B20这种数字式温度传感器可以通过将12位转换成16位符号的二进制读数形式对温度进行测量,以0.0625℃/LSB这种数字形式进行表达,其中S为符号位。
3 系统方案设计
在本次系统方案设计的过程中会,会用AT89C51单片机、DS18B20数字温度传感器等设施来对温度的变化进行检测,具体要求如下:
温度检测:系统能够实时检测温度,温度分辨率为0.10℃,温度范围为-550℃~+550℃。
温度显示:系统能够实时显示温度值,显示到小数后一位。在设置上、下限报警时,显示上、下限提醒标志。
温度报警:系统能够设置温度值范围,当温度超出设置范围时发生报警。
报警设置:系统能够设置上、下限报警温度值,设置精度为0.10℃。
根据以上分析,数字温度计的基本结构由单片机最小系统、按键模块、温度采样模块、显示模块和报警模块等组成[4]。
4 电路分析
4.1 DS18B20的控制方法
DS18B20和单片机有两种方式进行连接,一种是通过VDD与外部电源进行连接,GND与地连接,DQ会和单片机上的I/O线相连;而另一种是通过寄生电源为DS1820供电,此时VDD、GND接地,DQ接单片机I/O。不管是在内部所形成的计生电源还是通过外部供电,I/O口线都会和5KΩ数值上下的上拉电阻进行连接的。
我们根据DS18B20的通信协议就可以发现,主机会控制DS18B20进行温度转换,但必须通过以下幾个步骤来实现:在每次进行读写之前,都要先将DS18B20进行初始化,在初始化成功后对ROM执行一条的操作指令,然后进行存储器(包括SCRATCHPAD RAM和E2RAM)操作指令,使DS18B20完成对温度的测量工作,并把测量之后的结果存入高速暂存器,在此基础上,主机才能读出转换结果。
4.2 蜂鸣器的原理
蜂鸣器本身就是一个一体化结构的电子讯响器,通过直流电压,对其进行供电,大多使用在计算机、电子玩具等一系列的电子产品当中作为一个发出声音的组件。蜂鸣器一般有压电式蜂鸣器和电磁式蜂鸣器这两种形态。在一般情况下,蜂鸣器会用字母“H”或“HA”(旧标准用“FM”“LB”“JD”等)在电路中表示。
4.3 蜂鸣器驱动
在对单片机进行应用和设计的过程中,很多方案都会用蜂鸣器来进行驱动,大多数都是用蜂鸣器所发出的声音进行提示或者是报警。
4.4 AT89C51单片机
目前,单片机的种类很多,MCS-51 8位单片机系列、MCS-96 16位单片机系列,还出现了32位单片机。位数越高,运算速度越快。本系统选用MCS-51系列单片机。
单片机各引脚的功能介绍如下所示:
1.VCC:运行和程序校验时接电源正端。
2.GND:接地。
3.P0口:P0口是一个8位、漏极开路的双向I/O口,每脚可吸收8个TTL门电流。在P0口第一次在管脚上写“1”的时候,会被当成是高阻输入。P0在外部的程序数据存储器进行运作的时候,也可以被当成是数据或者是在地址的第八位数字。在进行FIASH编程的过程中,P0口一般都被当做是编程原码的输入口。且在编程之后,FIASH会对其进行校验,P0在输出原码的过程中,P0外部也会被拉高。
4.P1口:P1口主要是为单片机内部提供上拉电阻的8位双向I/O口,一个P1口的缓冲器能将4个TTL门电流进行接收和输出。当P1口的管脚写入1之后,会被单片机的内部进行上拉,大多都会当做是输入电流。当P1口被单片机的外部下拉和电流持平的时候,就会将电流进行输出。
5.P2口:P2口和P1口一样,也是为单片机内部提供上拉电阻的8位双向I/O口,一个P2口的缓冲器能将4个TTL门电流进行接收和输出。当P2口被写上数字“1”的时候,P2口的管脚会在单片机内部的上拉电阻拉高,并作为高阻输入。而作为电阻输入的时候,P2口的管脚会被单片机的外部所拉低,从而使电流能够输出,这也是由于在单片机内部被上拉的缘故。P2口在被当做是外部或者是16位的程序存储器的时候,会存取相应的数据。
6.P3口:P3口是一个自带单片机内部上拉电阻的准双向8位的I/O口,最多可以接受并输出4个TTL门电流。P3口也可以当做是AT89C51单片机的一些具有其他功能的口,P3口可同时为编程和校验接收一些进行控制信号,为其提供了一些能够替代的功能。
7.RST:复位并重新输入相应的信号数据,且针对高电平有使用效果。在振动器进行工作时,在RST上会具有一定的高电平,且保持在两个周期以上,将单片微机复位。
8.ALE/PROG:地址锁存允许信号,输出。
9./PSEN:片外的程序存储器读选通信号,针对低电平是有效果的。在由外部程序存储器取值期间,每个机器在一个周期中都会有两次/PSEN产生效果。但是在对外部数据存储器进行访问的时候,这两次有效的/PSEN信号也不会出现。/PSEN将8个LSTTL负载进行驱动[5]。
10./EA/VPP:片外程序存储器访问允许信号,针对低电平是有效果的。当/EA=1时,选择片内程序存储器(80C51为4KB,80C52为8KB);当/EA=0时,则程序存储器全部在片外,而不管片内是否有程序存储器。使用80C51时,/EA必须接地,使用8751编程时,/EA施加21V的编程电压。
11.XTAL1:是一个在单片机的内部振荡器中进行输入的反相放大器。在运用外部的振动器进行工作时,对HMOS单片微机,此引脚应该接地;对CHMOS单片微机,此引脚作驱动端。
12.XTAL2:是在单片机内部振荡器中进行输出的反相放大器,输入到内部时钟发生器。在运用外部的振动器进行工作时,XTAL2主要是接收振动器发出的信号,对CHMOS单片微机,此引脚应悬浮。
在单片机当中,时钟电路可以说是其最小的一部分系统,它主要是用在单片微机工作所需要的时钟信号上的,单片微机本身就像是一个颇为繁杂的时序电路,为了能够同步地进行工作,电路会在一个时钟信号的控制下按照时序电路的步骤进行严格的工作。
系统性时钟电路主要会采用内部方式进行设计,也就是利用芯片在内部产生振动的电路。AT89C51这个单片机有一个将振动器的高效益反相变大的机器,它有两个引脚,分别是XTAL1和XTAL2,这两个引脚也是放大器的输入端和输出端。放大器会和一个具有反馈元件原工作原理的片外晶体谐振器形成一个自激振动器。外接晶体谐振器和C1和C2这两个电容组成了并联谐振电路,并与放大器的回馈电路相连接。
4.5 单片机的复位电路
单片机自身所具有的复位电路主要是把PC通过初始化变为0000H,使单片微机从0000H这一单元就开始进行程序。当程序运行的时候如果遇到程序的操作错误,让单片机的系统处于死锁状态的时候,可以按复位键将单片机进行重新启动。
参考文献:
[1] 谭浩强.C语言程序设计第2版[M].北京:清华大学出版社,2003.
[2] 龙门工作室.51单片机C语言开发技术大全[M].北京:人民邮电出版社,2008.
[3] 孔维功.C51单片机编程与应用[M].北京:电子工业出版社,2011.
[4] 宋文绪,杨帆.传感器与检测技术[M].北京:高等教育出版社,2004.
[5] 孟如茹,李丽荣.工业信号检测与控制[M].北京:电子工业出版社,2009.