<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I-wire總線(單總線)讀寫(xiě)51程序

          I-wire總線(單總線)讀寫(xiě)51程序

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          //-----------------------函數(shù)聲明,變量定義--------------------------------------------------------

          #include
          sbit DQ=P1^0;// 將p1.0口模擬時(shí)鐘輸出

          本文引用地址:http://www.ex-cimer.com/article/201611/321915.htm

          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: delay
          // 入口參數(shù): N
          // 函數(shù)功能:延時(shí)子程序,實(shí)現(xiàn)(16*N+24)us的延時(shí)
          // 系統(tǒng)采用11.0592MHz的時(shí)鐘時(shí),延時(shí)滿足要求,其它情況需要改動(dòng)
          //--------------------------------------------------------------------------------------------------
          void delay(unsignedint N)
          {
          int i;
          for(i=0;i
          }
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: Reset
          // 入口參數(shù): 無(wú)
          // 返回deceive_ready
          // 函數(shù)功能:復(fù)位
          //--------------------------------------------------------------------------------------------------
          unsigned char Reset(void)
          {
          unsignedchar deceive_ready;
          DQ=0;//拉低DQ線
          delay(29);//延時(shí)至少480us~960us
          DQ=1;//將DQ線設(shè)置位邏輯高
          delay(3);//延時(shí)等待deceive_ready響應(yīng)
          deceive_ready=DQ;//采樣deceive_ready信號(hào)
          delay(25);//等待時(shí)序結(jié)束
          return(deceive_ready);//有deceive_ready信號(hào)時(shí)返回0,否則返回1
          }
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱:read_bit
          // 入口參數(shù): 無(wú)
          // 返回接收的數(shù)據(jù)
          // 函數(shù)功能:讀一個(gè)bit子程序
          //--------------------------------------------------------------------------------------------------
          unsigned char read_bit(void)
          {
          unsigned char i;
          DQ=0;//拉低DQ線開(kāi)始時(shí)序
          DQ=1;//升高DQ線//延時(shí)至?xí)r序開(kāi)始15us
          for(i=0;i<3;i++);//延時(shí)15us
          return(DQ);//返回DQ值
          }
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: write_bit
          // 入口參數(shù): bitval
          // 函數(shù)功能:寫(xiě)一個(gè)bit子程序
          //--------------------------------------------------------------------------------------------------
          void write_bit(unsigned char bitval)
          {
          DQ=0;//拉低DQ線開(kāi)始時(shí)序
          if(bitval==1)
          DQ=1;//如果寫(xiě)邏輯為高
          delay(5);//延時(shí)
          DQ=1;//升高DQ線
          }
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: write_byte
          // 入口參數(shù): val
          // 函數(shù)功能:寫(xiě)一個(gè)byte子程序
          //--------------------------------------------------------------------------------------------------
          void write_byte(unsigned char val)
          {
          unsigned char i,temp;
          for(i=0;i<8;i++)
          {
          temp=val>>i;//將val位右移i位賦值給比temp
          temp=temp&0x01;//取temp最低位
          write_bit(temp);
          delay(5);//延時(shí)至?xí)r序結(jié)束
          }
          }
          //--------------------------------------------------------------------------------------------------
          // 函數(shù)名稱: read_byte
          // 返回接收的數(shù)據(jù) value
          // 函數(shù)功能:讀一個(gè)byte子程序
          //--------------------------------------------------------------------------------------------------
          unsigned char read_byte(void)
          {unsigned char i,m,receive_data;
          m=1;receive_data=0;//初始化
          for(i=0;i<8;i++)
          {
          if(read_bit())
          {
          receive_data=receive_data+(m<}//每讀一位數(shù)據(jù)據(jù),左移一位
          delay(6);//延時(shí)至?xí)r序結(jié)束
          }
          return(receive_data);//返回value
          }



          關(guān)鍵詞: I-wire總線單總線51程

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();