温度传感器电路_第1页
温度传感器电路_第2页
温度传感器电路_第3页
温度传感器电路_第4页
温度传感器电路_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上DS18B20温度传感器电路设计 2010-06-29 12:08:49 阅读393 评论0   字号:大中小 订阅 单片机原理及应用-项目设计  DS18B20温度传感器电路设计  一.   项目设计方案概述温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。在单片机的应用中,一个很重要的应用就是对温度进行检测。测量温度的关键是温度传感器,采用智能温度传感器以实现温度数字化,

2、既能以数字形式直接输出被测温度值,具有测量误差小,分辨力高,抗干扰能力强,能够远程传输数据,带串行总线接口等优点。温度的数字输出显示LCD1602液晶显示器上。单片机、温度传感器DS18B20与LCD液晶显示器等电子元器件的互联,可以研制和开发出具有高性价比的新一代测温系统基于单片机AT89S52的数字温度计。基于单片机的数字温度计设计,即对温度进行实时测量,使用单线数字温度传感器DS18B20把温度信号直接转换成数字信号输入单片机。经单片机处理后,将实时温度显示LCD液晶显示器上。 二.   项目设计具体模块分析1、    

3、; 总控模块AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外

4、,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2、电源模块电源采用了7805芯片。他的封装形式为TO-220.他有一系列固定的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能提供大于1.5A的输出电流。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。它的特点有:最大输出电流为1.5A;输出电压为5V;拥有

5、热过载保护、短路保护以及输出晶体管安全工作区保护。 3、传感器模块本项目的传感器模块采用了DS18B20芯片。传统的温度检测可以使用热敏电阻作为温度敏感元件,热敏电阻主要优点是成本低,但需后续信号处理电路,而且可靠性相对较差,准确度和精度都较低。美国Dallas 公司最新推出的DS18B20 数字式温度传感器,与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912 位的数字值读数方式,可以分别在93.75ms 和750ms 内将温度值转化9 位和12 位的数字量。因而使用DS18B20 可使系统结构更简单,可靠性更高。芯片的耗电量很小,从总

6、线上“偷”一点电存储在片内的电容中就可正常工作,一般不用另加电源。最可贵的是这些芯片在检测点已把被测信号数字化了,因此在单总线上传送的是数字信号,这使得系统的抗干扰性好、可靠性高、传输距离远。系统有如下特点:(1)单线接口,只有一根信号线与CPU 连接单总线器件,具有线路简单,体积小的特点;(2)不需要备份电源,可通过信号线供电,电源电压范围从3.35V;(3)传送串行数据,不需要外部元件;(4)温度测量范围从-55+125,-10+85时测量精度为±0.5;(5)通过编程可实现912 位的数字值读数方式(出厂时被设置为12 位);(6)零功耗等待;(7)现场温度直接以“一线总线”的

7、数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。 4、            显示模块显示模块采用了型号为1602的LCD。它体积小、功耗低、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。它分为带背光和不带背光两种,基控制器大部分为HD44780.本设计中应用的是带背光的1602,带背光的比不带背光的厚,但两者在应用中并无差别。 1602LCD主要技术参数:显示容量:16×2个字

8、符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm。 5、项目展望本设计也有许多可以改进的地方,首先可以安装报警器,当温度超过温度测量范围时就可报警。其次也可以安装一个可以在可变范围内调节温度上下限的按钮。本电路也存在缺点,由于将传感器焊接在板子上,板子不能绝缘密封的,所以不适合测量液体的温度。限制了此温度计的使用。  四、项目设计的理解单片机的接口信号是数字信号。要想用单片机获取温度这类非电信号的信息,必须使用温度传感器,将温度信息转换为电流或电压输出。如

9、果转换后的电流或电压输出是模拟信号,还必须进行A/ D转换,以满足单片机接口的需要。传统的温度检测大多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度准确率低,而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。 附件一:1、            原理图  附件二:1、     仿真图  附件三:1、     程序代码#inclu

10、de<reg51.h>#define uchar unsigned char#define uint unsigned int sbit DQ=P34;/ds18b20与单片机连接口sbit RS= P30;sbit RW = P31;sbit EN = P32;unsigned char code str1="temperature:"unsigned char code str2="             

11、"unsigned char code str3="Hello!Da Lian." uchar data disdata6;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602程序*/void delay1ms(unsigned int ms)/延时1毫秒(不够精确的)unsigned int i,j;   for(i=0;i<ms;i+)   for(j=0;j<100;j+);void wr_com(unsigned char com)/写指令/ delay1ms

12、(1);   RS=0;   RW=0;   EN=0;   P1=com;   delay1ms(1);   EN=1;   delay1ms(1);   EN=0;void wr_dat(unsigned char dat)/写数据/ delay1ms(1);   RS=1;   RW=0;   EN=0;   P1=dat;   d

13、elay1ms(1);   EN=1;   delay1ms(1);   EN=0;void lcd_init()/初始化设置/delay1ms(15);wr_com(0x38);delay1ms(100);wr_com(0x08);delay1ms(100);wr_com(0x01);delay1ms(100);wr_com(0x06);delay1ms(100);wr_com(0x0c);delay1ms(100);  void display(unsigned char *p)/显示/while(*p!=&#

14、39;0')wr_dat(*p);p+;delay1ms(1);void init_play()/初始化显示 lcd_init();    wr_com(0x80);display(str1);wr_com(0xc0);display(str2); void init_play1()/初始化显示 lcd_init();    wr_com(0x80);display(str3);wr_com(0xc0);    delay1ms(2000);display(str2);/*ds

15、18b20程序*/void delay_18B20(unsigned int i)/延时1微秒   while(i-);void ds1820rst()/*ds1820复位*/ unsigned char x=0;DQ = 1;          /DQ复位delay_18B20(4); /延时DQ = 0;          /DQ拉低delay_18B20(100); /精确延时大于480us

16、DQ = 1;          /拉高delay_18B20(40);  uchar ds1820rd()/*读数据*/ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)   DQ = 0; /给脉冲信号       dat>>=1;       DQ = 1; /给脉冲信号

17、       if(DQ)       dat|=0x80;       delay_18B20(10);   return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0;    for (i=8; i>0; i-)     DQ = 0;  &#

18、160;     DQ = wdata&0x01;        delay_18B20(10);        DQ = 1;        wdata>>=1;    read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst();   

19、ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ds1820rst();    ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;   if(tvalue<0x0fff)   tflag=0;    else   tvalue=tval

20、ue+1;tflag=1;   tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);/*/   void ds1820disp()/温度值显示 uchar flagdat;   disdata0=tvalue/1000+0x30;/百位数   disdata1=tvalue%1000/100+0x30;/十位数   disdata2=tvalue%100/10+0x30;/个位数   disdata3=tvalue%10

21、+0x30;/小数位   disdata4=0xdf;   disdata5='C'      disdata6='H'   if(tflag=0)   flagdat=0x20;/正温度不显示符号   else   flagdat=0x2d;/负温度显示负号:-   if(disdata0=0x30)      disdata0=0x20;/如果百位为0,不显示          if(disdata1=0x30)            disdata1=0x20;/如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论