欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DS18B20温度传感器电路设计.doc

    • 资源ID:17414069       资源大小:152KB        全文页数:16页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DS18B20温度传感器电路设计.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流DS18B20温度传感器电路设计.精品文档.DS18B20温度传感器电路设计默认分类 2010-06-29 12:08:49 阅读393 评论0   字号:大中小 订阅 单片机原理及应用-项目设计  DS18B20温度传感器电路设计一.   项目设计方案概述温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。在单片机的应用中,一个很重要的应用就是对温度进行检测。测量温度的关键是温度传感器,采用智能温度传感器以实现温度数字化,既能以数字形式直接输出被测温度值,具有测量误差小,分辨力高,抗干扰能力强,能够远程传输数据,带串行总线接口等优点。温度的数字输出显示LCD1602液晶显示器上。单片机、温度传感器DS18B20与LCD液晶显示器等电子元器件的互联,可以研制和开发出具有高性价比的新一代测温系统基于单片机AT89S52的数字温度计。基于单片机的数字温度计设计,即对温度进行实时测量,使用单线数字温度传感器DS18B20把温度信号直接转换成数字信号输入单片机。经单片机处理后,将实时温度显示LCD液晶显示器上。二.   项目设计具体模块分析1、     总控模块AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2、电源模块电源采用了7805芯片。他的封装形式为TO-220.他有一系列固定的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能提供大于1.5A的输出电流。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。它的特点有:最大输出电流为1.5A;输出电压为5V;拥有热过载保护、短路保护以及输出晶体管安全工作区保护。3、传感器模块本项目的传感器模块采用了DS18B20芯片。传统的温度检测可以使用热敏电阻作为温度敏感元件,热敏电阻主要优点是成本低,但需后续信号处理电路,而且可靠性相对较差,准确度和精度都较低。美国Dallas 公司最新推出的DS18B20 数字式温度传感器,与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912 位的数字值读数方式,可以分别在93.75ms 和750ms 内将温度值转化9 位和12 位的数字量。因而使用DS18B20 可使系统结构更简单,可靠性更高。芯片的耗电量很小,从总线上“偷”一点电存储在片内的电容中就可正常工作,一般不用另加电源。最可贵的是这些芯片在检测点已把被测信号数字化了,因此在单总线上传送的是数字信号,这使得系统的抗干扰性好、可靠性高、传输距离远。系统有如下特点:(1)单线接口,只有一根信号线与CPU 连接单总线器件,具有线路简单,体积小的特点;(2)不需要备份电源,可通过信号线供电,电源电压范围从3.35V;(3)传送串行数据,不需要外部元件;(4)温度测量范围从-55+125,-10+85时测量精度为±0.5;(5)通过编程可实现912 位的数字值读数方式(出厂时被设置为12 位);(6)零功耗等待;(7)现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。4、            显示模块显示模块采用了型号为1602的LCD。它体积小、功耗低、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。它分为带背光和不带背光两种,基控制器大部分为HD44780.本设计中应用的是带背光的1602,带背光的比不带背光的厚,但两者在应用中并无差别。 1602LCD主要技术参数:显示容量:16×2个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm。5、项目展望本设计也有许多可以改进的地方,首先可以安装报警器,当温度超过温度测量范围时就可报警。其次也可以安装一个可以在可变范围内调节温度上下限的按钮。本电路也存在缺点,由于将传感器焊接在板子上,板子不能绝缘密封的,所以不适合测量液体的温度。限制了此温度计的使用。三、本人对项目设计的贡献1、小组成员      组长:xxx    组员:xxx2、     每个人对项目设计的贡献   xx(x%):测试板子、原理图、编程、调试程序、项目报告、传感器模块   xx(x%):焊板子、原理图、编程、PPT制作及演示、显示模块   xx(x%):焊板子、原理图、项目报告、电源模块   xx(x%):焊板子、原理图、总控模块四、项目设计的理解单片机的接口信号是数字信号。要想用单片机获取温度这类非电信号的信息,必须使用温度传感器,将温度信息转换为电流或电压输出。如果转换后的电流或电压输出是模拟信号,还必须进行A/ D转换,以满足单片机接口的需要。传统的温度检测大多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度准确率低,而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。附件一:1、            原理图附件二:1、     仿真图附件三:1、     程序代码#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P34;/ds18b20与单片机连接口sbit RS= P30;sbit RW = P31;sbit EN = P32;unsigned char code str1="temperature:"unsigned char code str2="              "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(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;   delay1ms(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!='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);/*ds18b20程序*/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); /精确延时大于480usDQ = 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; /给脉冲信号       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;        DQ = wdata&0x01;        delay_18B20(10);        DQ = 1;        wdata>>=1;read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst();    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;    elsetvalue=tvalue+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+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;/如果百位为0,十位为0也不显示   wr_com(0xc0);   wr_dat(flagdat);/显示符号位   wr_com(0xc1);   wr_dat(disdata0);/显示百位   wr_com(0xc2);   wr_dat(disdata1);/显示十位    wr_com(0xc3);   wr_dat(disdata2);/显示个位    wr_com(0xc4);   wr_dat(0x2e);/显示小数点    wr_com(0xc5);   wr_dat(disdata3);/显示小数位   wr_dat(disdata4);   wr_dat(disdata5);/*主程序*/void main()init_play1();   init_play();/初始化显示   while(1)read_temp();/读取温度       ds1820disp();/显示

    注意事项

    本文(DS18B20温度传感器电路设计.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开