<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 帶小數點(diǎn)DS18B20程序

帶小數點(diǎn)DS18B20程序

作者: 時(shí)間:2012-10-20 來(lái)源:網(wǎng)絡(luò ) 收藏
#include REGX52.H>#define uchar unsigned charsbit DQ=P2^0;       //數據傳輸線(xiàn)接單片機的相應的引腳unsigned char tempL=0;    //低位(無(wú)符號字符變量)unsigned char tempH=0;   //高位unsigned int tempa;      //溫度值(整型變量)uchar display_data[4]={0};void DS18_delay(int useconds)//{int s;for (s=0; suseconds;s++);}unsigned char Init_(void){unsigned char x=0;DQ=0;               //發(fā)送復位脈沖DS18_delay(29);           //延時(shí)(>480ms)DQ=1;             //拉高數據線(xiàn)DS18_delay(3);         //等待(15~60ms) 等待存在脈沖x=DQ;  //獲得存在信號(用于判斷是否有器件)DS18_delay(25);  // 等待時(shí)間隙結束return(x);  //返回存在信號,0 = 器件存在, 1 = 無(wú)器件}ReadOneChar(void)//讀一個(gè)字節{unsigned char i=0;   unsigned char dat=0;for (i=8;i>0;i--)    {DQ=1;DS18_delay(1);DQ=0;      dat>>=1;//復合賦值運算,等效dat=dat>>1(dat=dat右移一位后的值)DQ=1;if(DQ)dat|=0x80;DS18_delay(4);}return(dat);}WriteOneChar(unsigned char dat)//有參函數,功能是"寫(xiě)",而寫(xiě)的內容就是括號內的參數{ unsigned char i=0;   for(i=8;i>0;i--)   {DQ=0;     DQ=dat0x01;DS18_delay(5);DQ=1;dat>>=1;//復合賦值運算,等效dat=dat>>1(dat=dat右移一位后的值)}DS18_delay(4);}unsigned int ReadTemperature(void)//返回讀取的溫度.{  Init_();   //初始化,調用初始化函數WriteOneChar(0xcc);    //跳過(guò)讀序列號的操作,調用寫(xiě)函數,寫(xiě)0xcc指令碼(跳過(guò)讀序列號)WriteOneChar(0x44);   //啟動(dòng)溫度轉換,調用寫(xiě)函數,寫(xiě)0x44指令碼(啟動(dòng)溫度轉換)DS18_delay(125);       //轉換需要一點(diǎn)時(shí)間,延時(shí)Init_();    //初始化,調用初始化函數WriteOneChar(0xcc);    //跳過(guò)讀序列號的操作,調用寫(xiě)函數,寫(xiě)0xcc指令碼(跳過(guò)讀序列號?WriteOneChar(0xbe);   //調用寫(xiě)函數,寫(xiě)0xbe指令碼,讀溫度寄存器(頭兩個(gè)值分別為溫度的低位和高位)tempL=ReadOneChar();   //讀出溫度的低位LSBtempH=ReadOneChar();   //讀出溫度的高位MSB  tempa=((tempH*256)+tempL)*6.25;  //溫度轉換,擴大100返回//DS18_delay(10);//tempa=tempL+tempH;return(tempa);//運算結果返回到函數 }void display()//顯示函數{unsigned char i,j,k=0x80;unsigned char code dis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};for(i=0;i4;i++){P2=0x0f;if(i==1)P0=dis[display_data[i]]+0x80;elseP0=dis[display_data[i]];P2=k;k=k>>1;for(j=250;j>0;j--);}P2=0x0f;}void main(){unsigned int temp;uchar i;while(1){temp=ReadTemperature(); display_data[0]=temp/1000;display_data[1]=(temp/100)%10;display_data[2]=(temp/10)%10;display_data[3]=temp%10; for(i=0;i250;i++) display();}}


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>