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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機的ds18b20驅(qū)動程序

          51單片機的ds18b20驅(qū)動程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          //////////////////////////////////////////////////////頭文件///////////////////////////////////////////////////////
          /*******************************************************************************
          * 標(biāo)題: 18b20溫度芯片驅(qū)動程序 *
          * 文件: 18b20.h 18b20.c *
          * 日期: 2010-3-11 *
          * 版本: 1.12(試驗通過版)可用51hei單片機開發(fā)板 *
          * 郵箱: acsdf139@163.com qq:526083029 *
          * 網(wǎng)站: 無 *
          ********************************************************************************
          * 描述: *
          * 用法:首先在主程序內(nèi)添加頭文件#include"18b20.c" *
          * 在程序中使用ReadTemp();獲取溫度芯片內(nèi)數(shù)據(jù) *
          * 使用 temp_to_str();函數(shù)將時間數(shù)據(jù)轉(zhuǎn)換液晶字符 *
          * *
          ********************************************************************************
          *【版權(quán)】自己參照網(wǎng)上,朋友,以及書本資料上寫的,所以沒有版權(quán) *
          *【聲明】此程序,可用于學(xué)習(xí),參考及實際設(shè)計中,歡迎轉(zhuǎn)載復(fù)制以及建議批評 *
          *【技術(shù)支持】qq:526083029 小張 *
          ********************************************************************************/
          #ifndef _18B20_H_
          #define _18B20_H_
          #define uchar unsigned char
          #define rerom1820 0x33 // 讀ROM指令
          #define matchrom1820 0x55 // 匹配ROM指令
          #define skiprom1820 0xCC // 跳過ROM指令
          #define searchrom1820 0xF0 // 搜索ROM指令
          #define alarmsearch1820 0xEC // 報警搜索指令
          #define wrscratchpad1820 0x4E // 寫暫存寄存器指令
          #define rescratchpad1820 0xBE // 讀暫存寄存器指令
          #define copyscratchpad1820 0x48 // 復(fù)制暫存寄存器指令
          #define convert1820 0x44 // 啟動溫度轉(zhuǎn)換指令
          #define recalle21820 0xB8 // 重新調(diào)出E2PROM的數(shù)據(jù)
          /***********ds18b20延遲子函數(shù)*******/
          extern void delaydq(uchar i);
          /**********ds18b20初始化函數(shù)**********************/
          extern void dqinit(void);
          /***********ds18b20讀一個字節(jié)**************/
          extern uchar re1820b(void);
          /*************ds18b20寫一個字節(jié)****************/
          extern void wr1820b(uchar dat);
          extern void ReadTemp(void);
          extern void temp_to_str();
          #endif
          ///////////////////////////////////////////////////////////c程序//////////////////////////////////////////////
          #include
          #include "18b20.h"
          #include
          //管腳定義
          sbit DQ=P3^0;
          uchar TempBuffer[8];
          uchar temp_value,temp2,xs,fflag;
          /*************************************
          函數(shù)名:delaydq
          函數(shù)功能:延時
          參數(shù):i(秒數(shù))
          返回:無
          備注:無
          *************************************/
          void delaydq(uchar i)
          {
          while(i--);
          }
          /*************************************
          函數(shù)名:dqinit
          函數(shù)功能:初始化
          參數(shù):無
          返回:無
          備注:無
          *************************************/
          void dqinit(void)
          {
          uchar x=0;
          DQ = 1; //DQ復(fù)位
          delaydq(8); //稍做延時
          DQ = 0; //單片機將DQ拉低
          delaydq(80); //精確延時 大于 480us
          DQ = 1; //拉高總線
          delaydq(14);
          x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
          delaydq(20);
          }
          上一頁 1 2 下一頁

          評論


          技術(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); })();