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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DS1318與8051微控制器的接口

          DS1318與8051微控制器的接口

          ——
          作者: 時(shí)間:2007-01-26 來(lái)源:《EDN電子設(shè)計(jì)技術(shù)》 收藏

          本應(yīng)用筆記演示了使用ds1318歷時(shí)計(jì)數(shù)器計(jì)算天數(shù)。軟件實(shí)例中包括基本的操作程序,并給出了應(yīng)用電路的原理圖。

          計(jì)數(shù)器概述
          該應(yīng)用筆記演示了如何使用ds1318歷時(shí)計(jì)數(shù)器,ds1318具有44位計(jì)數(shù)器,可提供244μs的計(jì)時(shí)分辨率。44位計(jì)數(shù)器通過(guò)6個(gè)8位寄存器(圖1)進(jìn)行訪問(wèn)。

          從概念上來(lái)說(shuō),44位計(jì)數(shù)器可以分成一個(gè)12位亞秒級(jí)計(jì)數(shù)器和一個(gè)分辨率為一秒的32位計(jì)數(shù)器(圖2)。如果應(yīng)用種不需要亞秒級(jí)分辨率,則可訪問(wèn)32位秒計(jì)數(shù)器。

          在本應(yīng)用筆記提供的示例中,軟件子程序每秒一次連續(xù)讀取32位秒計(jì)數(shù)器的數(shù)值,并通過(guò)8051微控制器(μc)的uart接口以ascii碼格式輸出時(shí)間和日期。時(shí)間和日期基于從1970年1月1日,00:00:00起所經(jīng)歷的時(shí)間,單位為秒。00000000h對(duì)應(yīng)的時(shí)間是1970年1月1日,00:00:00;42c924c0h對(duì)應(yīng)的時(shí)間為2005/7/4 12:00:00。

          另一子程序?qū)⑵骷渲贸深l率為1hz的周期性中斷,每次發(fā)生中斷,中斷處理程序讀取計(jì)數(shù)器數(shù)據(jù),將時(shí)間轉(zhuǎn)換成日期格式,并通過(guò)urat以ascii格式輸出數(shù)據(jù)。

          我們還提供其它例程,在其它例程中可以對(duì)ds1318進(jìn)行以下操作:可以將用戶(hù)輸入數(shù)據(jù)寫(xiě)入寄存器;將用戶(hù)輸入的時(shí)間和日期轉(zhuǎn)換成自1970年1月1日起所經(jīng)歷的時(shí)間,單位為秒;向計(jì)數(shù)器寫(xiě)入數(shù)據(jù)。另一子程序用于讀取ds1318寄存器,并以十六進(jìn)制格式輸出數(shù)據(jù)。


          工作原理
          本應(yīng)用筆記中的硬件電路將ds1318的數(shù)據(jù)放入μc的數(shù)據(jù)存儲(chǔ)空間。μc通過(guò)讀、寫(xiě)正確地址的數(shù)據(jù)存儲(chǔ)器訪問(wèn)ds1318寄存器。
          本實(shí)例中采用ds80c323低電壓、8051兼容微控制器。用戶(hù)輸入數(shù)據(jù)和程序輸出數(shù)據(jù)都將傳遞到μc,通過(guò)pc終端仿真器的rs-232接口進(jìn)行通信。有關(guān)本應(yīng)用筆記中ds80c323微控制器的詳細(xì)信息可從公司網(wǎng)站下載。

          程序清單如圖3所示,電路原理圖如圖4所示。


           


          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();