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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)的多功能數(shù)控電流源設(shè)計(jì)

          基于51單片機(jī)的多功能數(shù)控電流源設(shè)計(jì)

          作者: 時(shí)間:2012-06-14 來源:網(wǎng)絡(luò) 收藏

          1.5 人機(jī)接口
          為了能夠更好地顯示更多信息,且能直接輸入值。使用4x4鍵盤和LCD顯示屏構(gòu)成人機(jī)接口。使用AT89S52、薄膜鍵盤和LCD顯示屏YM12864R構(gòu)成人機(jī)接口。

          2 系統(tǒng)軟件
          系統(tǒng)的主程序流程圖如圖5所示,由主程序?qū)崿F(xiàn)整體控制,系統(tǒng)的功能子程序主要包括A/D轉(zhuǎn)換子程序,A/D轉(zhuǎn)換處理子程序,延時(shí)子程序,鍵盤處理子程序,液晶顯示子程序等。
          程序開始運(yùn)行后,首先進(jìn)行系統(tǒng)初始化,顯示初始設(shè)定的值和實(shí)際采樣得到的值,然后檢測(cè)是否有鍵按下,若有則進(jìn)入按鍵處理子程序。由于采樣電阻隨溫度變化,因此軟件中需根據(jù)實(shí)際測(cè)得的變差數(shù)據(jù),根據(jù)實(shí)際電流與電流理論值直接的函數(shù)關(guān)系進(jìn)行溫度補(bǔ)償,使實(shí)際輸出電流值與預(yù)設(shè)電流值之間的變差保持在誤差允許范圍內(nèi)。
          2.1 D/A轉(zhuǎn)換部分
          D/A轉(zhuǎn)換器選用TLV5618,TLV5618是串行輸入的12位高精度快速D/A轉(zhuǎn)換器,能夠輸出二倍于基準(zhǔn)電壓的電壓信號(hào)。其基準(zhǔn)電壓是由MC1403提供的2.5 V電壓,因此經(jīng)D/A轉(zhuǎn)換后得到的輸出為0~5 V。12位D/A轉(zhuǎn)換器,分辨率為1/4 096,選采樣電阻為0.1Ω,D/A輸出分辨率為1 mA的電流,實(shí)現(xiàn)步進(jìn)10 mA,能夠滿足本的要求。
          TLV5618的時(shí)序轉(zhuǎn)換圖如圖6所示。

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

          d.jpg


          根據(jù)上述時(shí)序圖,編寫DA轉(zhuǎn)換子程序,其流程圖如圖7所示。

          e.jpg


          2.2 A/D轉(zhuǎn)換部分
          A/D轉(zhuǎn)換選用12位串行轉(zhuǎn)換器MAX187,其內(nèi)部?jī)?nèi)置4.096 V電源,轉(zhuǎn)換精度高,速度快,滿足本題目設(shè)計(jì)要求。根據(jù)其芯片參考資料給出的時(shí)序轉(zhuǎn)換圖編寫A/D轉(zhuǎn)換子程序,A/D轉(zhuǎn)換子程序流程圖如圖8所示。

          f.jpg

          基爾霍夫電流相關(guān)文章:基爾霍夫電流定律




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