【转】基于DS18B20数字温度计C语言程序设计

【转】基于DS18B20数字温度计C语言程序设计

ID:39550935

大小:79.00 KB

页数:11页

时间:2019-07-06

【转】基于DS18B20数字温度计C语言程序设计_第1页
【转】基于DS18B20数字温度计C语言程序设计_第2页
【转】基于DS18B20数字温度计C语言程序设计_第3页
【转】基于DS18B20数字温度计C语言程序设计_第4页
【转】基于DS18B20数字温度计C语言程序设计_第5页
资源描述:

《【转】基于DS18B20数字温度计C语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、sbitPS2=P2^6;//数码管十位,位选sbitPS1=P2^7;//数码管个位,段选sbitP_L=P1^0;//测量指示sbitDQ=P2^2;//DS18B20数据接口voiddelay(uint);//延时函数voidDS18B20_init(void);//DS18B20初始化voidget_temper(void);//读取温度程序voidDS18B20_write(ucharin_data);//DS18B20写数据函数ucharDS18B20_read(void);////读取数据程序ucharhtd(

3、uchara);//进制转换函数voiddisplay(void);//显示函数uchartemp;//温度寄存器bitDS18B20;//18B20存在标志,1---存在0---不存在uchartab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//字段转换表voidmain(void) {    uinta;    while(1)    {      get_temper();//测量温度     for(a=0;a<200;a++);//显示,兼有延

4、时的作用     display();    } } /****************************DS18B20读取温度函数**************************//*函数原型:voidget_temper(void)/*函数功能:DS18B20读取温度/*输入参数:无/*输出参数:无/*调用模块:/*建立时间:2005/11/14/*作者:站长/**********************************************************************/voidg

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

6、则返回     {        DS18B20_write(0xcc);//跳过ROM匹配       DS18B20_write(0xbe);//发出读温度命令       T_L=DS18B20_read();//数据读出       T_H=DS18B20_read();        k=T_H&0xf8;        if(k==0xf8)        T_sign=1;//温度是负数       else        T_sign=0;//温度是正数       T_H=T_H&0x07;        

7、temp=(T_H*256+T_L)*0.0625;//温度转换常数     }    } } /****************************DS18B20写数据函数**************************//*函数原型:voidDS18B20_write(ucharin_data)/*函数功能:DS18B20写数据/*输入参数:要发送写入的数据/*输出参数:无/*调用模块:_cror_()/*建立时间:2005/11/14/*作者:站长/*******************************

8、***************************************/voidDS18B20_write(ucharin_data)//写DS18B20的子程序(有具体的时序要求){    uchari,out_data,k;    out_data=in_data;    fo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。