亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 18b20_1602.lst

?? 基于c51單片機的18b20實時溫度檢測
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 226   1       bit b = 0;
 227   1      
 228   1       DO = 0; //產生讀時隙  
 229   1       i++;    //維持低電平至少1us
 230   1      
 231   1       DO = 1; //1us以上后拉高
 232   1       Delayus(2); //延時8us,DO下降沿15內ds18b20輸出的數據才有效
 233   1      
 234   1      
 235   1       b = DO; //讀取數據
 236   1       Delayus(40);    //每個讀時隙至少持續(xù)60us
 237   1      
 238   1       return(b);
 239   1      } 
 240          
C51 COMPILER V8.12   18B20_1602                                                            07/30/2008 10:40:15 PAGE 5   

 241          /*讀取一個字節(jié)*/
 242          uchar Readbyte()
 243          {
 244   1       uchar byte_read = 0;
 245   1       uchar i, j;
 246   1      
 247   1       for(i=0; i<8; i++)
 248   1        {
 249   2         j = Readbit();
 250   2         byte_read = (j<<i) | byte_read; //低位讀起
 251   2        }
 252   1      
 253   1       return(byte_read);
 254   1      } 
 255          
 256          /*寫一個字節(jié)*/
 257          void Writebyte(uchar byte_to_write)
 258          {
 259   1       uchar i = 0;
 260   1       uchar j = 0;
 261   1       bit write_bit = 0;
 262   1      
 263   1       for(j=0; j<8; j++)
 264   1        {
 265   2         write_bit =  (byte_to_write & 0x01);
 266   2          if(write_bit == 1) //寫1
 267   2               {
 268   3                DO = 0;  //產生寫時隙
 269   3                Delayus(3);      //延時15us
 270   3                
 271   3                DO = 1;  //寫1
 272   3                Delayus(40);   //延時,寫時隙不得低于60us
 273   3               }
 274   2              else
 275   2               {
 276   3                DO = 0;  //產生寫時隙
 277   3                Delayus(50);   //延時,保持低約60us~120us 
 278   3                DO = 1;  
 279   3                i++;
 280   3               }
 281   2         byte_to_write = byte_to_write >> 1;
 282   2        }
 283   1      }
 284          
 285          
 286          /*啟動溫度轉換*/
 287          void StartConvert()
 288          {
 289   1       Resetpaulse();   // 發(fā)出復位脈沖,每次操作都從復位開始
 290   1       Delay(1);
 291   1       EA = 0;
 292   1       Writebyte(0xcc); //skip room命令
 293   1       Writebyte(0x44); //啟動溫度轉換命令
 294   1       EA = 1;
 295   1      }
 296          
 297          /*讀取溫度值*/
 298          void ReadTempreture()
 299          {
 300   1       EA = 0;
 301   1       Resetpaulse();   // 發(fā)出復位脈沖,每次操作都從復位開始
 302   1       Delay(1);
C51 COMPILER V8.12   18B20_1602                                                            07/30/2008 10:40:15 PAGE 6   

 303   1       Writebyte(0xcc); //skip room命令
 304   1       Writebyte(0xbe); //讀取暫存器命令
 305   1       temp_l = Readbyte(); //存儲溫度低字節(jié)值 (整數部分低四位和小數部分)
 306   1       temp_h = Readbyte(); //存儲溫度高字節(jié)值 (其中高五位為符號位)
 307   1       EA = 1;
 308   1      }
 309          
 310          /*數據處理程序*/
 311          void Digital_process()
 312          {
 313   1       uchar total = 0;
 314   1       uchar low = 0;
 315   1       uint  dicimal = 0;
 316   1      
 317   1       tempsign = (temp_h >> 7) & 0x01; //得出符號位
 318   1       total = ((temp_h << 4)&0xf0) | ((temp_l >> 4)&0x0f); //取整數位
 319   1       low =  temp_l & 0x0f; //取小數位
 320   1      
 321   1       if(tempsign == 0)
 322   1        {
 323   2         temp_integer[0] = total / 100 + '0'; //計算百、十、個位                
 324   2         temp_integer[1] = (total%100)/10 + '0';
 325   2         temp_integer[2] = (total%100)%10 + '0'; 
 326   2         temp_integer[3] = '\0';
 327   2          if(temp_integer[0] == '0')
 328   2               {
 329   3                 if(temp_integer[1] != '0')
 330   3                      {
 331   4                   temp_integer[0] = '\0'; //百位零消隱
 332   4                   
 333   4                   }
 334   3                 else if(temp_integer[1] == '0')
 335   3                  {
 336   4                       temp_integer[0] = '\0';  //百位,十位零都消隱
 337   4                       temp_integer[1] = '\0';
 338   4                       }
 339   3               }
 340   2         dicimal = low * 625;          //計算小數
 341   2         temp_dicimal[0] = dicimal / 1000 + '0';      //十分位
 342   2         temp_dicimal[1] = dicimal % 1000 /100 + '0';  //百分位
 343   2         temp_dicimal[2] = dicimal % 100 / 10 + '0';   //千分位
 344   2         temp_dicimal[3] = dicimal % 10 + '0';                //萬分位
 345   2         temp_dicimal[4] = '\0';        //數組加一個空字符(好像系統(tǒng)也會自動加上的?)
 346   2        }
 347   1      
 348   1        else if(tempsign == 1)          //負數處理
 349   1        {
 350   2         if(low == 0x00)              //負數要取反加一再乘以0.0625就是實際溫度值了,我這里沒有設那么多int型變量,
 351   2           {
 352   3                total = ~total + 1;  //所以就用了這么一個計算方法
 353   3                low &= 0x0f;
 354   3                }                                /*具體一點講,小樹低四位為全零時取反加一要有進位,此時只要整數位取反加一即可,
 355   2                               小數位不用理會,其余情況整數位取反,小數位取反加一*/
 356   2         else
 357   2           {
 358   3                total = ~total ;
 359   3                low = (~low) + 1;
 360   3                low &= 0x0f;    //注意高四位要變成零
 361   3                }               
 362   2         temp_integer[1] = (total%100)/10 + '0'; //計算十、個位
 363   2         temp_integer[2] = (total%100)%10 + '0'; 
 364   2         temp_integer[3] = '\0';
C51 COMPILER V8.12   18B20_1602                                                            07/30/2008 10:40:15 PAGE 7   

 365   2      
 366   2      
 367   2         if(temp_integer[1] == '0')
 368   2          {
 369   3               temp_integer[1] = '\0';
 370   3          }
 371   2         dicimal = low * 625;
 372   2         temp_dicimal[0] = dicimal / 1000 + '0';
 373   2         temp_dicimal[1] = dicimal % 1000 /100 + '0';
 374   2         temp_dicimal[2] = dicimal % 100 / 10 + '0';
 375   2         temp_dicimal[3] = dicimal % 10 + '0';
 376   2         temp_dicimal[4] = '\0';
 377   2        }
 378   1       
 379   1      
 380   1      }
 381          
 382          
 383          
 384          void main()
 385          {
 386   1       bit palse = 0;
 387   1       Initial_LCD();
 388   1      
 389   1       GotoXY(0,0);
 390   1       Print("CHECKING...",12);
 391   1       Delay(3000);
 392   1       
 393   1      
 394   1       palse = Resetpaulse();   //檢測DS18B20是否響應
 395   1       if(palse)
 396   1        {
 397   2         Initial_LCD();
 398   2         GotoXY(0,0);
 399   2         Print("DS18B20 OK",11);
 400   2         }
 401   1       else
 402   1         {
 403   2         Initial_LCD();
 404   2         GotoXY(0,0);
 405   2         Print("DS18B20 ERROR",13);
 406   2         while(1);
 407   2      
 408   2         } 
 409   1       
 410   1       do{
 411   2         Delay(1);
 412   2         StartConvert();
 413   2         Delay(1020);
 414   2         ReadTempreture();
 415   2         Digital_process();
 416   2      
 417   2         if(tempsign == 0)     //顯示正值溫度
 418   2         {
 419   3           GotoXY(0,1);
 420   3               Print("TEMP:",5);
 421   3               GotoXY(5,1);
 422   3           Print(temp_integer,3);
 423   3           GotoXY(8,1);
 424   3           Print(".",1);
 425   3           GotoXY(9,1);
 426   3           Print(temp_dicimal,4);
C51 COMPILER V8.12   18B20_1602                                                            07/30/2008 10:40:15 PAGE 8   

 427   3              }
 428   2         else                              //顯示負值溫度
 429   2          {
 430   3               GotoXY(0,1);
 431   3               Print("TEMP:",5);
 432   3               GotoXY(5,1);
 433   3               Print("-",1);
 434   3               GotoXY(6,1);
 435   3           Print(temp_integer + 1,2);
 436   3           GotoXY(8,1);
 437   3           Print(".",1);
 438   3           GotoXY(9,1);
 439   3           Print(temp_dicimal,4);
 440   3              }
 441   2         }
 442   1       while(1); 
 443   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    991    ----
   CONSTANT SIZE    =     47    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       5
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产wwwccc36天堂| 调教+趴+乳夹+国产+精品| 欧美日韩一区二区在线观看| 久久99国产精品麻豆| 亚洲综合一区二区| 国产精品久久久久久久久动漫| 色狠狠一区二区| 国产在线播放一区三区四| 亚洲第一福利一区| 国产精品久久久久久久岛一牛影视 | 99久久国产综合精品女不卡| 午夜久久久久久| 亚洲乱码国产乱码精品精可以看| 久久久亚洲精品一区二区三区| 欧美在线免费播放| 成人网在线播放| 韩国成人精品a∨在线观看| 一区二区激情视频| 亚洲日本中文字幕区| 亚洲第一成年网| 国产精品午夜春色av| 2017欧美狠狠色| 制服丝袜亚洲网站| 欧美三级日韩三级| 在线一区二区三区四区五区| 国产.精品.日韩.另类.中文.在线.播放| 婷婷综合五月天| 一区二区三区国产豹纹内裤在线| 中文字幕一区二区三区精华液| 久久久国产精品午夜一区ai换脸 | 国产精品久久久久精k8 | 久久久久久毛片| 精品国产凹凸成av人网站| 欧美日本韩国一区二区三区视频| 91伊人久久大香线蕉| 成人h动漫精品一区二区| 国产综合久久久久久鬼色| 免费观看在线色综合| 日韩和的一区二区| 日日摸夜夜添夜夜添国产精品| 亚洲久草在线视频| 亚洲视频在线一区| 亚洲精品乱码久久久久久日本蜜臀| 综合分类小说区另类春色亚洲小说欧美 | 午夜国产不卡在线观看视频| 亚洲成a人片综合在线| 首页欧美精品中文字幕| 免费观看成人鲁鲁鲁鲁鲁视频| 日本中文一区二区三区| 蜜臀国产一区二区三区在线播放| 日韩av一区二| 精品一区二区在线视频| 国产成a人亚洲精品| 91视频com| 欧美艳星brazzers| 欧美一区欧美二区| 26uuu国产日韩综合| 国产欧美精品一区二区色综合朱莉| 亚洲国产岛国毛片在线| 综合网在线视频| 亚洲成人高清在线| 老司机午夜精品| 国产成人免费在线观看不卡| av综合在线播放| 国产午夜精品一区二区三区嫩草| 国产精品免费久久久久| 亚洲美女淫视频| 视频一区欧美精品| 国内久久精品视频| 成av人片一区二区| 欧美乱妇15p| 久久综合久久综合亚洲| 中文字幕在线观看不卡视频| 亚洲电影欧美电影有声小说| 蜜桃av一区二区三区电影| 丁香激情综合国产| 欧美日韩在线免费视频| 欧美精品一区二区久久婷婷| 中文字幕在线不卡| 全国精品久久少妇| www..com久久爱| 欧美一区二区三区精品| 国产精品久久久久国产精品日日| 日韩av一区二区三区四区| 国产不卡免费视频| 在线不卡一区二区| 国产精品国产三级国产普通话蜜臀| 三级久久三级久久| 99久久99久久精品免费看蜜桃 | 国产三级精品三级在线专区| 亚洲精品你懂的| 国产一区二区精品久久99| 色视频成人在线观看免| 精品国产电影一区二区| 一区二区高清免费观看影视大全| 精品亚洲aⅴ乱码一区二区三区| 91麻豆福利精品推荐| 日韩三区在线观看| 亚洲精品视频免费观看| 极品少妇一区二区| 欧美日韩在线不卡| 中文字幕一区二区三区在线观看 | 91亚洲永久精品| 日韩欧美中文字幕公布| 亚洲在线视频网站| 成人av中文字幕| 久久久不卡网国产精品二区| 免费视频一区二区| 欧美日韩一卡二卡| 亚洲三级小视频| 国产成人丝袜美腿| 日韩欧美精品在线视频| 一区av在线播放| 成人av网站在线| 久久久久久久久伊人| 免费人成网站在线观看欧美高清| 在线欧美日韩国产| 亚洲欧洲av在线| 成人v精品蜜桃久久一区| 久久久久久久久久久电影| 99久久国产综合色|国产精品| 久久午夜色播影院免费高清| 日韩av在线播放中文字幕| 欧美日韩欧美一区二区| 亚洲综合色在线| 在线视频一区二区三| 自拍偷拍国产精品| 99热99精品| 亚洲欧洲精品一区二区三区| 国产一区二区视频在线| 精品欧美一区二区久久 | 亚洲图片欧美视频| 在线亚洲欧美专区二区| 亚洲乱码日产精品bd| 91丨porny丨蝌蚪视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产大片一区二区| 国产午夜一区二区三区| 国产.欧美.日韩| 国产精品久久久久久久浪潮网站 | www.在线成人| 自拍偷自拍亚洲精品播放| 色一情一乱一乱一91av| 亚洲激情成人在线| 欧美日韩一区二区三区在线看 | 国产精品无遮挡| 波多野结衣精品在线| 国产精品久久久久影院亚瑟| 91视视频在线观看入口直接观看www | 国产成人精品网址| 国产精品久久久久久久久图文区| 99re这里只有精品首页| 亚洲视频一二三区| 欧美日韩国产美女| 波多野结衣中文字幕一区| 中文字幕一区二区三区在线播放| 日本韩国欧美一区二区三区| 亚州成人在线电影| 日韩欧美成人激情| 国产suv精品一区二区883| 亚洲私人影院在线观看| 精品视频色一区| 精品一区二区三区在线视频| 国产色产综合色产在线视频| 91影院在线观看| 视频一区视频二区在线观看| 欧美电影免费观看完整版| 国产成人亚洲综合a∨婷婷| 亚洲日本护士毛茸茸| 51久久夜色精品国产麻豆| 国产精品456| 一区二区三区色| 2021久久国产精品不只是精品 | 久久亚洲二区三区| 99久久精品国产麻豆演员表| 舔着乳尖日韩一区| 国产日韩欧美a| 欧美三级三级三级爽爽爽| 国产一区二区调教| 亚洲一区二区在线播放相泽| 日韩欧美中文字幕一区| 9i看片成人免费高清| 美女免费视频一区| 综合网在线视频| 精品sm捆绑视频| 欧美亚洲综合色| 风间由美一区二区三区在线观看 | 国产精品一二三| 亚洲午夜电影在线| 国产精品免费久久| 亚洲一区二区欧美日韩| 久久久久国产成人精品亚洲午夜| 欧美网站大全在线观看| 国产成人一区在线| 久久精品av麻豆的观看方式| 亚洲一区二区成人在线观看| 国产精品毛片大码女人| 久久综合久久鬼色中文字| 欧美无乱码久久久免费午夜一区| 成人高清在线视频|