ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:37KB ,
资源ID:2991832      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2991832.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(转基于DS18B20数字温度计C语言程序设计.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

转基于DS18B20数字温度计C语言程序设计.doc

1、看了好多天单片机,找了好多资料想自己利用实验板上的DS18B20做个温度计(最近温度实在是太热了)。在网上找了好多关于这个的程序,结果发现对我的板子来说就这个好用,温度三十度不算高,因为我把它放到风扇下面了,现在和大家分享一下吧,不过里面我自己也改了一点点。希望高手不要见笑,红色的部分是我改的或者是后加上的。如果还有什么更好的建议或意见请 记得给我留言哦…… #include   #include   #define uchar unsigned char  #define uint unsigned int  sbit PS2

2、P2^6; //数码管十位,位选 sbit PS1=P2^7; //数码管个位,段选 sbit P_L=P1^0; //测量指示 sbit DQ=P2^2; //DS18B20数据接口 void delay(uint); //延时函数 void DS18B20_init(void); //DS18B20初始化 void get_temper(void); //读取温度程序 void DS18B20_write(uchar in_data); //DS18B20写数据函数 uchar DS18B20_read(void); ////读取数据程序

3、 uchar htd(uchar a); //进制转换函数 void display(void); //显示函数 uchar temp; //温度寄存器 bit DS18B20; // 18B20存在标志,1---存在 0---不存在 uchar tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //字段转换表 void main(void)  {      uint a;      while(1)      {          get_temper();

4、 //测量温度         for(a=0;a<200;a++) ;//显示,兼有延时的作用         display();      }  }  /****************************DS18B20读取温度函数**************************/ /*函数原型:void get_temper(void) /*函数功能:DS18B20读取温度 /*输入参数:无 /*输出参数:无 /*调用模块: /*建立时间:2005/11/14 /*作者:站长 /***********

5、/ void get_temper(void)  {      uchar k,T_sign,T_L,T_H;      DS18B20_init(); //DS18B20初始化     if(DS18B20) //判断DS1820是否存在?若DS18B20不存在则返回     {          DS18B20_write(0xcc); // 跳过ROM匹配         DS18B20_write(0x44); //发出温

6、度转换命令         DS18B20_init(); //DS18B20初始化         if(DS18B20) //判断DS1820是否存在?若DS18B20不存在则返回         {              DS18B20_write(0xcc); //跳过ROM匹配             DS18B20_write(0xbe); //发出读温度命令             T_L=DS18B20_read(); //数据读出             T_H=DS18B20_read();              k=

7、T_H&0xf8;              if(k==0xf8)              T_sign=1; //温度是负数             else              T_sign=0; //温度是正数             T_H=T_H&0x07;              temp=(T_H*256+T_L)*0.0625; //温度转换常数         }      }  }  /****************************DS18B20写数据函数*******************

8、/ /*函数原型:void DS18B20_write(uchar in_data) /*函数功能:DS18B20写数据 /*输入参数:要发送写入的数据 /*输出参数:无 /*调用模块:_cror_() /*建立时间:2005/11/14 /*作者:站长 /**********************************************************************/ void DS18B20_write(uchar in_data) //写DS18B20的子程序(有具体的时序要求) { 

9、     uchar i,out_data,k;      out_data=in_data;      for(i=1;i<9;i++) //串行发送数据     {          DQ=0;          DQ=1;          _nop_();          _nop_();          k=out_data&0x01;          if(k==0x01) //判断数据 写1         {              DQ=1;          }          el

10、se //写0         {              DQ=0;          }          delay(4); //延时62us         DQ=1;          out_data=_cror_(out_data,1); //循环右移1位     }  }  /**************************DS18B20读函数**************************/ /*函数原型:void DS18B20_read() /*函数功能:DS18B20读数据 /*输入参数:

11、无 /*输出参数:读到的一字节内容 /*调用模块:delay() /*建立时间:2005/11/14 /*作者:站长 /******************************************************************/ uchar DS18B20_read()  {      uchar i,in_data,k;      in_data=0;      for(i=1;i<9;i++) //串行发送数据     {          DQ=0;          DQ=1; 

12、         _nop_();          _nop_();          k=DQ; //读DQ端         if(k==1) //读到的数据是1         {              in_data=in_data|0x01;          }          else          {              in_data=in_data|0x00;          }          delay(3); //延时51us         DQ=1;      

13、   in_data=_cror_(in_data,1); //循环左移1位     }      return(in_data);  }  /**************************DS18B20初始化函数**************************/ /*函数原型:void DS18B20_init(void) /*函数功能:DS18B20初始化 /*输入参数:无 /*输出参数:无 /*调用模块:delay() /*建立时间:2005/11/14 /*作者:站长 /*****************

14、/ void DS18B20_init(void)  {      uchar a;      DQ=1; //主机发出复位低脉冲     DQ=0;      delay(44); //延时540US     DQ=1;      for(a=0;a<0x36&&DQ==1;a++)      { //等待DS18B20回应         a++;          a--;      }      if(DQ) 

15、     DS18B20=0; //18B20不存在     else      {          DS18B20=1; // 18B20存在         delay(120); //复位成功!延时240US     }  }  /**************************数码管显示函数**************************/ /*函数原型:void display(void) /*函数功能:数码管显示 /*输入参数:无 /*输出参数:无 /*调用模块:delay() /*建立时间

16、2005/11/14 /*作者:站长 /******************************************************************/ void display(void)  {     PS1=1; P0=0x01; PS1=0;      PS2=1;     P0=tab[htd(temp)>>4]; //转换成十进制输出 PS2=0;           delay(200);  PS1=1; P0=0x02; PS1=0; PS2=1;     P0

17、tab[htd(temp)&0x0f]; //转换成十进制输出   PS2=0;     delay(200);       P_L=~DS18B20;  }  /*********************原显示函数*********************************** void display(void) { P0=tab[htd(temp)>>4]; //转换成十进制输出 PS2=1; PS1=0; delay(200); P0=tab[htd(temp)&0x0f]; //转换成

18、十进制输出 PS1=1; PS2=0; delay(200); P_L=~DS18B20; } *******************************************************/ /**************************十六进制转十进制函数**************************/ /*函数原型:uchar htd(uchar a) /*函数功能:十六进制转十进制 /*输入参数:要转换的数据 /*输出参数:转换后的数据 /*调用模块:无 /

19、建立时间:2005/11/14 /*作者:站长 /******************************************************************/ uchar htd(uchar a)  {      uchar b,c;      b=a%10;      c=b;      a=a/10;      b=a%10;      c=c|b<<4;      return c;  }  /*******************************延时函数**********

20、/ /*函数原型:delay(unsigned int delay_time) /*函数功能:延时函数 /*输入参数:delay_time (输入要延时的时间) /*输出参数:无 /*调用模块:无 /*建立时间:2005/10/21 /*作者:站长 /**********************************************************************/ void delay(unsigned int delay_time) //延时子程序 {for(;delay_time>0;delay_time--)      {}  } 

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服