• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      ds18b20讀取溫度的完整程序
      文章長度[2244] 加入時間[2007/1/8] 更新時間[2025/5/9 9:18:51] 級別[0] [評論] [收藏]

      //mega8 7.3728MHz gcc編譯通過,_delay_us(us) _delay_ms(ms)調用庫函數
      //初始化把dq設置為輸出
      #define ds18b20_dq PC5
      #define set_ds18b20_dq_ddr() DDRC|=1<<ds18b20_dq
      #define set_ds18b20_dq() PORTC|=1<<ds18b20_dq
      #define clr_ds18b20_dq() PORTC&=~(1<<ds18b20_dq)
      #define clr_ds18b20_dq_ddr() DDRC&=~(1<<ds18b20_dq)
      #define in_ds18b20_dq() PINC&(1<<ds18b20_dq)

      #define ds18b20_read_rom 0x33
      #define ds18b20_match_rom 0x55
      #define ds18b20_skip_rom 0xcc
      #define ds18b20_search_rom 0xf0
      #define ds18b20_alarm_search_rom 0xec
      #define ds18b20_write_ram 0x4e
      #define ds18b20_read_ram 0xbe
      #define ds18b20_copy_ram 0x48
      #define ds18b20_convert_tem 0x44
      #define ds18b20_eecall_eeprom 0xb8
      #define ds18b20_read_power_supply 0xb4
      void reset_ds18b20(void)
      {
      clr_ds18b20_dq();
      _delay_us(198);//100us
      _delay_us(198);//100us
      _delay_us(198);//100us
      _delay_us(198);//100us
      set_ds18b20_dq();
      _delay_us(38);//20us
      }
      void ack_ds18b20(void)
      {
      while(in_ds18b20_dq());
      while(!(in_ds18b20_dq()));
      _delay_us(38);//20us
      }
      uchar read_ds18b20(void)
      {
      uchar data=0;
      uchar i=0;
      for(i=0;i<8;i++)
      {
      data>>=1;
      clr_ds18b20_dq();
      _delay_us(1);//1us
      set_ds18b20_dq();
      _delay_us(2);//2us
      if(in_ds18b20_dq()) data|=0x80;
      _delay_us(118);//60us
      }
      return(data);
      }
      void write_ds18b20(uchar data)
      {
      uchar i=0;
      for(i=0;i<8;i++)
      {
      if(data&0x01){
      clr_ds18b20_dq();
      _delay_us(14);//8us
      set_ds18b20_dq();
      _delay_us(108);//55us
      }
      else
      {
      clr_ds18b20_dq();
      _delay_us(108);//55us
      set_ds18b20_dq();
      _delay_us(14);//8us
      }
      data>>=1;
      }
      }
      void convert_ds18b20(void)
      {
      reset_ds18b20();
      ack_ds18b20();
      _delay_ms(1);
      write_ds18b20(ds18b20_skip_rom);
      write_ds18b20(ds18b20_convert_tem);
      }
      void read_temperature(void)
      {
      reset_ds18b20();
      ack_ds18b20();
      _delay_ms(1);
      write_ds18b20(ds18b20_skip_rom);
      write_ds18b20(ds18b20_read_ram);
      temperature_low=read_ds18b20();
      temperature_high=read_ds18b20();
      }

      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版