久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5785|回復: 1
打印 上一主題 下一主題
收起左側

一個簡單的onewire(單總線)溫度測試小程序

[復制鏈接]
跳轉到指定樓層
樓主
        onewire(單總線)是DALLAS公司推出的外圍串行擴展總線,傳輸時鐘信號又傳輸數據,而且能夠進行雙向通信,具有節省I/O口線、資源結構簡單、成本低廉、便于總線擴展和維護等諸多優點。常用到單總線的器件,一般是穩定傳感器,如DS18B20、DS2431。

以下是一個簡單的onewire(單總線)溫度測試程序,希望大家能夠喜歡。
  1. // LCD module connections
  2. sbit LCD_RS at P2_0_bit;
  3. sbit LCD_EN at P2_1_bit;

  4. sbit LCD_D4 at P2_2_bit;
  5. sbit LCD_D5 at P2_3_bit;
  6. sbit LCD_D6 at P2_4_bit;
  7. sbit LCD_D7 at P2_5_bit;
  8. // End LCD module connections

  9. // OneWire pinout
  10. sbit OW_Bit at P1_2_bit;
  11. // end OneWire definition


  12. //  Set TEMP_RESOLUTION to the corresponding resolution of used DS18x20 sensor:
  13. //  18S20: 9  (default setting; can be 9,10,11,or 12)
  14. //  18B20: 12
  15. const unsigned short TEMP_RESOLUTION = 9;

  16. char *text = "000.0000";
  17. unsigned temp;

  18. void Display_Temperature(unsigned int temp2write) {
  19.   const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
  20.   char temp_whole;
  21.   unsigned int temp_fraction;

  22.   // check if temperature is negative
  23.   if (temp2write & 0x8000) {
  24.     text[0] = '-';
  25.     temp2write = ~temp2write + 1;
  26.   }

  27.   // extract temp_whole
  28.   temp_whole = temp2write >> RES_SHIFT;

  29.   // convert temp_whole to characters
  30.   if (temp_whole/100)
  31.      text[0] = temp_whole/100  + 48;
  32.   else
  33.      text[0] = '0';

  34.   text[1] = (temp_whole/10)%10 + 48;             // Extract tens digit
  35.   text[2] =  temp_whole%10     + 48;             // Extract ones digit

  36.   // extract temp_fraction and convert it to unsigned int
  37.   temp_fraction  = temp2write << (4-RES_SHIFT);
  38.   temp_fraction &= 0x000F;
  39.   temp_fraction *= 625;

  40.   // convert temp_fraction to characters
  41.   text[4] =  temp_fraction/1000    + 48;         // Extract thousands digit
  42.   text[5] = (temp_fraction/100)%10 + 48;         // Extract hundreds digit
  43.   text[6] = (temp_fraction/10)%10  + 48;         // Extract tens digit
  44.   text[7] =  temp_fraction%10      + 48;         // Extract ones digit

  45.   // print temperature on LCD
  46.   Lcd_Out(2, 5, text);
  47. }

  48. void main() {

  49.   Lcd_Init();                                    // Initialize LCD
  50.   Lcd_Cmd(_LCD_CLEAR);                           // Clear LCD
  51.   Lcd_Cmd(_LCD_CURSOR_OFF);                      // Turn cursor off
  52.   Lcd_Out(1, 1, " Temperature:   ");
  53.   // Print degree character, 'C' for Centigrades
  54.   Lcd_Chr(2,13,223);  // different LCD displays have different char code for degree
  55.                       // if you see greek alpha letter try typing 178 instead of 223

  56.   Lcd_Chr(2,14,'C');

  57.   //--- main loop
  58.   do {
  59.     //--- perform temperature reading
  60.     Ow_Reset();                                  // Onewire reset signal
  61.     Ow_Write(0xCC);                              // Issue command SKIP_ROM
  62.     Ow_Write(0x44);                              // Issue command CONVERT_T
  63.     Delay_us(120);

  64.     Ow_Reset();
  65.     Ow_Write(0xCC);                              // Issue command SKIP_ROM
  66.     Ow_Write(0xBE);                              // Issue command READ_SCRATCHPAD

  67.     temp =  Ow_Read();
  68.     temp = (Ow_Read() << 8) + temp;

  69.     //--- Format and display result on Lcd
  70.     Display_Temperature(temp);

  71.     Delay_ms(500);
  72.   } while (1);
  73. }
復制代碼
相關信息:http://www.zg4o1577.cn/bbs/dpj-136722-1.html







評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:258566 發表于 2018-10-30 17:33 | 只看該作者
帶庫的編譯器mikroe
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 视频在线一区二区 | 亚洲精品中文在线 | 在线欧美亚洲 | 国产一级片免费视频 | 日韩精品成人在线 | 免费人成在线观看网站 | 国产欧美在线观看 | 欧美成人aaa级毛片在线视频 | 久久亚洲一区二区三区四区 | 国产一区二区三区四区三区四 | 亚洲日本三级 | 国产在线观看 | 给我免费的视频在线观看 | 亚洲精品视频在线 | 亚洲一区二区三区在线视频 | 国产精品一区二区三区四区五区 | 古典武侠第一页久久777 | 亚洲国产网站 | 日韩成人免费视频 | www四虎com | 三级视频网站 | 亚洲精品电影在线 | 婷婷综合 | 久久精品久久久久久 | 在线免费观看成人 | 综合久久av | 国产精品免费高清 | 亚洲精品www. | 免费看黄色小视频 | 一区二区在线免费播放 | 天堂视频一区 | 久久久久国产一区二区三区 | 国产真实精品久久二三区 | 99久久免费精品国产男女高不卡 | 精品日韩一区 | 国产高清久久久 | 在线视频成人 | 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 中文字幕av网站 | 国产美女在线免费观看 | 免费国产一区二区 |