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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于串口通信的單片機仿真和C語言開發(fā)

          基于串口通信的單片機仿真和C語言開發(fā)

          作者: 時間:2012-08-28 來源:網(wǎng)絡(luò) 收藏

          1)先將數(shù)據(jù)線置高電平1;2) 延時(該時間要求不是很嚴格,但是要盡可能短一些);3) 數(shù)據(jù)線拉到低電平0;4) 延時 750us(該時間范圍可以在480~960us);5) 數(shù)據(jù)線拉到高電平1;6)延時等待。如果初始化成功則在15~60ms內(nèi)產(chǎn)生一個由DS18B20 返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是要注意,不能無限地等待,不然會使程序進入死循環(huán),所以要進行超時判斷;7) 若 CPU 讀到數(shù)據(jù)線上的低電平0 后,還要進行延時,其延時時間從發(fā)出高電平算起最少要480us;8)將數(shù)據(jù)線再次拉到高電平后結(jié)束。

          2. DS18B20 寫數(shù)據(jù)

          圖3.3 寫數(shù)據(jù)時序圖
          圖3.3 寫數(shù)據(jù)時序圖

          1) 數(shù)據(jù)線先置低電平0;

          2)延時確定的時間為15us;

          3) 按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位);

          4) 延時時間為 45us;

          5) 將數(shù)據(jù)線拉到高電平1;

          6) 重復(fù) 1)到5)步驟,直到發(fā)送完整個字節(jié);

          7)最后將數(shù)據(jù)線拉高到1.

          3. DS18B20 讀數(shù)據(jù)

          圖3.4 讀數(shù)據(jù)時序圖
          圖3.4 讀數(shù)據(jù)時序圖

          1)將數(shù)據(jù)線拉高為1;

          2) 延時 2us ;

          3) 將數(shù)據(jù)線拉低0 ;

          4) 延時 6us ;

          5) 將數(shù)據(jù)線拉高1 ;

          6)延時 4us ;

          7) 讀數(shù)據(jù)線的狀態(tài)得到1 個狀態(tài)位,并且進行數(shù)據(jù)處理;

          8) 延時 30us ;

          9) 重復(fù) 1)到7)步,知道讀取完一個字節(jié)。

          4 硬件設(shè)計

          4.1 時鐘電路及復(fù)位電路

          1.時鐘電路

          時鐘電路可以產(chǎn)生CPU 校準時序,是的控制核心,本次設(shè)計是通過外接12MHz的晶振來實現(xiàn)時鐘電路的時序控制。在使用片內(nèi)振蕩器時,XTAL1 和XTAL2 分別為反向放大器的輸入端和輸出端。外接晶體以及電容C3 和C5 構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。當用外部時鐘驅(qū)動時,XTAL2引腳應(yīng)懸空,而由XTAL1引腳上的信號驅(qū)動,外部振蕩器通過一個2 分頻的觸發(fā)器而成為內(nèi)部時鐘信號,故對外部信號的占空比沒有什么要求,但最小和最大的高電平持續(xù)時間和低電平持續(xù)時間應(yīng)符合技術(shù)要求。電路如圖4.1 所示。

          圖 4.1 晶振電路
          圖 4.1 晶振電路



          評論


          相關(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); })();