《[毕业设计精品]基于18b20的温度采集系统.doc》由会员分享,可在线阅读,更多相关《[毕业设计精品]基于18b20的温度采集系统.doc(39页珍藏版)》请在三一办公上搜索。
1、基于18b20的温度采集系统目录摘要3一、设计任务和要求3二、系统方案3三、方案设计与论证4四、程序流程图8五:元器件清单19六、结果分析19七、总结20八、设计体会与今后的改进意见20附录:.摘要本文介绍了基于DS18B20的温度实时采集与显示系统的设计与实现。设计中选取单片机STC89C52作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,精度较好的数码管来显示温度。利用单片机程序来完成对STC18B20与AT89C52的控制,最终实现温度的实时采集与显示。 关键词:DS18B20 STC89C52 温度采集 数码管Abstract: This paper introdu
2、ces the temperature based on STC18B20 real-time data acquisition and display system design and implementation. Design of STC89C52 as system selection single-chip microcomputer control center, and digital temperature sensor DS18B20 as external sources, microcontroller accuracy than good digital tube
3、to display temperature. Using microcontroller program to accomplish DS18B20 and AT89C52 single control temperature, and finally achieve the real-time data acquisition and display. Keywords: DS18B20 AT89C52 single temperature gathering digital tube.一、设计任务和要求1、利用DS18B20实现温度采集,并用数码管显示。能实现温度上下限的设置,并能够超限
4、报警2、 硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3、软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4、原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。5、编写报告。进行成果验收。 二、系统方案方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A
5、/D转换电路,感温电路比较麻烦。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。三:方案设计与论证1温度采集模块方案一:采用瑞士Sensirion公司研制的SHT11型智能化湿度/温度传感器,它采用CMOSens专利技术(CMOS和传感器技术的融合),外形尺寸小。它具有I2C总线接口,接口电路简单,并具有数字式输出、免调试、免标定、一致性好的特点。
6、其电路原理图如图1所示。因其价格较贵,所以不采用此方案。图1 SHT11电路原理图方案二:采用DALLAS公司推出的一线式数字温度传感器DS18B20,该芯片的管脚简单,无需外围硬件设备即可进行温度测量,与单片机交换信息仅需一根I/O口线,多个DS18B20可以并联到3根或2根线上,实现多点测温。CPU只需1根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可以节省大量的引线和逻辑电路。温度测量范围为-55125,固有测温分辨率为0.5,符合本设计的要求,可编程为912位A/D转换精度,用户可自设定非易失性的报警上下限值,支持多点组网功能。具有负压特性,电源极性接反时,温度计不会因
7、发热而烧毁,只是不能正常工作而已。被测量温度用符号扩展的16位数字量方式输出,而且其体积较小,方便焊接,因此采用此方案。其电路图如图2图2 温度采集电路图2显示电路模块单片机扫描键盘得到功率预置值,通过P0的8位IO口控制选定数码管,P2的8位IO口控制数码管显示,将该值送到LED显示器中显示。其硬件原理如图3所示。但此方案设备体积大,功耗大,因此不建议在实际应用中选用此方案。图3:显示模块3报警模块此模块原理简单,使用单片机的一个IO口控制蜂鸣器的响灭。如图5三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,当I
8、O口输出低电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。图4:报警模块4按键模块按键模块主要是为了达到如下两个个功能:(1) 乙机任意控制甲机就行温度的转换;(2) 在不需要查询温度时乙机可以控制甲机断电,到需要时在对其供电,以达到节约电能的目的。(3) 控制乙机自身的开关以及复位作用。(4) 原理图如下:其中,S控制乙机自身的开关。S1.S2与K1控制甲机的开关。(5) S3.S4控制甲机是否就行温度转换。图5:按键模块5最小系统模块其工作电路图6所示图6 51最小系统模块电路图电路设计文档甲机原理图乙机原理图四:
9、程序流程图甲机主程序甲机主程序的主要功能是等待接收乙机是否发送启动温度转换的命令,是,则开始就行温度转换,并发送给乙机。其程序流程见图8所示。串口初始化定时器中断初始化i=1?Y接收数据赋予i开定时器T0i=2?N关定时器T0开始源程序如下:void main()TMOD=0X21;TH1=0Xfd;TL1=0xfd;TH0=0x3c;TL0=0XB0;TR0=0;TR1=1;SCON=0x50;EA=1;ET0=1;while(1)while(!RI)i=SBUF;RI=0;if(i=1)TR0=1;else if(i=2)TR0=0; 温度采集子程序此程序就是启动温度转换,并返回温度值。返
10、回温度值数据读取处理温度转换18B20初始化源程序如下:uchar ReadTemperaure()uchar TH,TL,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);TL=du();TH=du();zong=(TH4);return zong;写入子程序此程序目的是将命令或数据写入18B20内,写入endY数据右移if i=0得到显示数据低位i=8写入初始化N源程序如下:void xie(uchar dat)uchar i;DQ=1;delay(1);for(i=8;i0;
11、i-)DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat=1;delay(4);读取子程序结束返回右移1位If (i0)读出DQ只赋给变量高位功能是从18B20内读出自己所要得数据读出初始化YN源程序如下:uchar du()uchar temp=0,i;for(i=8;i0;i-)/DQ=1;/delay(1);DQ=0;temp=1;DQ=1;delay(1);if(DQ) temp|=0x80;delay(5);return temp;中断函数此函数比较重要,温度的读取与传输都在此函数中。TH0,TL0初始化t+t=20?t=0;温度转换YN将温度发送给乙机结束源程序如
12、下:void zhongd() interrupt 1 TH0=0x3c;TL0=0XB0;t+;if(t=20)t=0;i=ReadTemperaure();SBUF=i;while(!TI);TI=0;TI=0;乙机:主函数:串口通线初始化S1=0?给甲机发送01;b=1;YS2=0?Y给甲机发送02;b=0;S3=0?a取反,当a=1时,jdq取反。Yb=1?Y显示温度i30?Y驱动蜂鸣器N关闭蜂鸣器NNNNN源程序如下:void main()uchar a=0,b=0;TMOD=0X20;TH1=0Xfd;TL1=0xfd;/TL0=0XF0;/TH0=0xF0; SCON=0x50;
13、 TR1=1;/TR0=0;/ET0=1;EA=0;ES=1;jdq=0;while(1)if(!s1)SBUF=0X01;while(TI=0);TI=0;EA=1;b=1;if(!s2)EA=0;SBUF=0X02;while(TI=0);TI=0; wei=1;P0=0xff;wei=0;b=0;if(!s3)delayms(10);while(!s3);a=!a;jdq=!jdq; if(b)disp(i);if(i=30)fmq=0;else fmq=1;显示函数:将收到的温度用数码管显示。num+第num个数码管显示显示温度的第num位延时5ms源程序如下:void disp(un
14、signed char temperature)static unsigned char num=0;num+;num=num%3;wei=1;P0=tablewnum;wei=0;P0=0x00;duan=1;switch(num)case 2:P0=tabledtemperature%10;break;case 1:P0=tabledtemperature/10%10;break;case 0:P0=tabledtemperature/100;break; default: ;duan=0;P0=0XFF;delayms(5);中断函数:传输作用就是为了接收甲机传送的温度。i=SUBFRI
15、=0;结束源程序如下:void zhongd2()interrupt 4RI=0;i=SBUF;P1=i; 甲机源程序:#include#define uchar unsigned char #define uint unsigned intvoid disp(unsigned char temperature);sbit DQ=P22;unsigned char i=20;uchar t;void delay(uchar time)uchar n=0;while(n0;i-)DQ=0;/delay(1);DQ=dat&0x01;delay(5);/10DQ=1;dat=1;delay(4);
16、uchar du()uchar temp=0,i;for(i=8;i0;i-)/DQ=1;/delay(1);DQ=0;temp=1;DQ=1;delay(1);if(DQ) temp|=0x80;delay(5);return temp; uchar ReadTemperaure()uchar TH,TL,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);TL=du();TH=du();zong=(TH4);return zong;void main()TMOD=0X21;TH1
17、=0Xfd;TL1=0xfd;TH0=0x3c;TL0=0XB0;TR0=1;TR1=1;SCON=0x50;EA=0;ET0=1;while(1)while(!RI)i=SBUF;RI=0;if(i=1)EA=1;else if(i=2)EA=0; / disp(i);void zhongd() interrupt 1 TH0=0x3c;TL0=0XB0;t+;if(t=20)t=0;i=ReadTemperaure();SBUF=i;while(!TI);TI=0;TI=0;乙机源程序:#include#define uchar unsigned char #define uint uns
18、igned int code uchar tabled=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; code uchar tablew=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;sbit duan=P26; sbit wei=P27;sbit s1=P34;sbit s2=P35;sbit s3=P36;sbit fmq=P23;sbit jdq=P24;uchar i=0;void delayms(unsigned char z)unsigned char
19、 i;while(z-)for(i=112;i0;i-); void disp(unsigned char temperature)static unsigned char num=0;num+;num=num%3;wei=1;P0=tablewnum;wei=0;P0=0x00;duan=1;待添加的隐藏文字内容1switch(num)case 2:P0=tabledtemperature%10;break;case 1:P0=tabledtemperature/10%10;break;case 0:P0=tabledtemperature/100;break; default: ;duan
20、=0;P0=0XFF;delayms(5);void main()uchar a=0,b=0;TMOD=0X20;TH1=0Xfd;TL1=0xfd;/TL0=0XF0;/TH0=0xF0; SCON=0x50; TR1=1;/TR0=0;/ET0=1;EA=0;ES=1;jdq=0;while(1)if(!s1)SBUF=0X01;while(TI=0);TI=0;EA=1;b=1;if(!s2)EA=0;SBUF=0X02;while(TI=0);TI=0; wei=1;P0=0xff;wei=0;b=0;if(!s3)delayms(10);while(!s3); jdq=!jdq; i
21、f(b)disp(i);if(i=30)fmq=0;else fmq=1;void zhongd2()interrupt 4RI=0;i=SBUF; 五:元器件清单远程温度采集系统元器件清单元器件名称数量晶振11.0592M2陶瓷电容33PF4电解电容22uf1电阻4.7K13单片机89S522传感器DS18B201弹性按键4蜂鸣器1自锁开关1继电器SRD-05VDC-SL-C1三极管PNP6数码管HS-5101BS24PCB板2块导线若干六、项目测试报告时间:2011.11.26 11:20:68 地点:实训楼404教室条件:室温。测试结果:1:各按键部分能达到预期效果。按键模块合格2:能正
22、常显示室温,用手捏住18B20时,温度能上升。温度与钟表上一致,温度采集与显示模块合格。3:当人为使温度超过四十度时,蜂鸣器能发出警报声。报警模块合格。七、总结经过三个星期的学校,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一
23、个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需
24、要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次学习必将成为我人生旅途上一个非常美好的回忆!通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能
25、力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!八、设计体会与今后的改进意见本系统采用采用单片机和数字温度转换器DS18B20 来实现,具有主机接口简单,结构灵活,调试方便等特点,实验结果表明这种测温系统转换速度快、精度高。
26、回顾起此次课程设计,我们感慨颇多,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多东西。这次实习不仅巩固了以前所学过的知识,而且学到了很多在书本上没有的知识。通过这次课程设计,我们得到了一些工程项目知识,懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中,我们经常遇到问题,可以说是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次
27、课程设计之后,一定把以前所学过的知识重新温故。虽然两个周的课程设计过去了,但此次课程设计暴露了我不少问题,虽然在课堂上我学了不少东西,但当付诸于实际时却摸不着头脑,所以我们不但要学习知识,还要在实践中运用知识,做到游刃有余。不管是在以后的工作或学习中,我都会全力以赴,积极思考,勇于探索,不断创新。在设计中遇到了很多编程方面的调试问题还没有解决,例如温度没有正负、温度上下限的限制。我想在以后我会继续查找各方面资料、请教老师、与同学共同探讨,一起来解决这些问题。同时在以后的日子里我会慢慢改正在这次课程设计中所犯的错误、把学过的知识掌握的更加牢固。参考文献:单片机应用技术王静霞电子工业出版社互联网上
28、相关资料附录:核心元件的功能(本节资料来源互联网)STC89C52单片机简介 STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机总控制电路如下图41:图41单片机总控制电路1.时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外
29、部方式产生。内部方式的时钟电路如图42(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图42(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12
30、MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路 (b)外部方式时钟电路图42时钟电路2.复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外
31、,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。表一 一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图
32、43所示:图43复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图44(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图44(b)所示;而按键脉冲复位则是
33、利用RC微分电路产生的正脉冲来实现的,其电路如图44(c)所示:(a)上电复位 (b)按键电平复位 (c)按键脉冲复位图44复位电路上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。本系统的复位电路采用图44(b)上电复位方式。STC89C52具体介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复
34、位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(
35、Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7STC89C52主要功能如表二所示。表二 STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2、DS18B20美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传
36、感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。新的一线器件DS18B20体积更小、适用电压更宽、更经济。DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! 继一线总线的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B2
37、0使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS18B20也支持一线总线接口,测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3.0V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。2.1 DS18B20的主要特性(1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电(2)独特的单线接口方式,DS18B20在与
38、微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内(5)温范围55125,在-10+85时精度为0.5(6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 (8)测量结果直接输出数字温度信号,以一线
39、总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2.2 DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20引脚定义: (1) GND为电源地; (2) DQ为数字信号输入/输出端; (3) VDD为外接供电电源输入端(在寄生电源接线方式时接地)-2.3 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预