您的位置 首页 主动

DS18B20 数字温度传感程序

*名称:单片机读取DS18b20时钟芯片

////////////////////////////////////////////////////////////////////*称号:单片机读取DS18b20时钟芯片                                  //*作者:周光亮                                                    //*时刻:2010年12月6日                                             //*功用:                                                          //*                                                                //*                                                                ////////////////////////////////////////////////////////////////////*/#include #define uchar unsigned char#define uint unsigned intsbit DQ=P2^3;bit SIGN_FLAG;////////////////////////void yanshids18b20(uint t){while(t--);}//////////////////////////初始化chushids18b20(){uchar dushu=0;DQ=1;yanshids18b20(8);DQ=0;yanshids18b20(80);DQ=1;yanshids18b20(14);dushu=DQ;yanshids18b20(60);return(dushu);}////////////////////////读一个字节duds18b20(){uchar i,j;uchar temp=0;for(i=0;i<8;i++){DQ=0;temp>>=1;DQ=1;for(j=0;j<3;j++);if(DQ)temp|=0x80;yanshids18b20(4);}return(temp);}/////////////////////////写一个字节xieds18b20(uchar shuju){uchar i;for(i=0;i<8;i++){DQ=0;DQ=shuju&0x01;yanshids18b20(5);DQ=1;shuju>>=1;}yanshids18b20(1);}///////////////////////////////发动温度转化qidongds18b20(){chushids18b20();if(~chushids18b20()){xieds18b20(0xcc);xieds18b20(0x44);}}/////////////////////////读取温度duquds18b20(){uchar c1,c2;uchar temp1,temp2,temp3;float tt=0;chushids18b20();xieds18b20(0xcc);xieds18b20(0xbe);c1=duds18b20();c2=duds18b20();temp1=c1>>4;temp2=c2<<4;temp3=temp1+temp2;if(temp2&0x80){temp3=256-temp3;SIGN_FLAG=1;}else SIGN_FLAG=0;return(temp3);}/////////////////////////////////////

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/319393.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部