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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于89c51單片機(jī)的數(shù)字電壓表設(shè)計

          基于89c51單片機(jī)的數(shù)字電壓表設(shè)計

          作者: 時間:2013-01-22 來源:網(wǎng)絡(luò) 收藏

          主程序和A/D轉(zhuǎn)換測量程序流程圖

            2.1初始化程序

            系統(tǒng)上電,初始化程序?qū)?0H~77H內(nèi)存單元清0,P2口置0.系統(tǒng)默認(rèn)為循環(huán)顯示8個通道的電壓值,當(dāng)進(jìn)行一次測量后,將顯示每一通道的A/D轉(zhuǎn)換值,每個通道顯示時間為1s.70H~77H內(nèi)存單元存放采樣值,78H~7BH內(nèi)存單元存放顯示數(shù)據(jù),依次為個位、十位、百位、通道標(biāo)志位。

            2.2 A/D轉(zhuǎn)換子程序

            A/D轉(zhuǎn)換子程序用來控制對0809/k路模擬輸入電壓的A/D轉(zhuǎn)換,并將對應(yīng)的數(shù)值存入70H~77H內(nèi)存單元。

            2.3示子程序

            顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示。測量數(shù)據(jù)在顯示時需轉(zhuǎn)換成BCD碼放在78H~7BH內(nèi)存單元中,其中7BH存放通道標(biāo)志數(shù)。

            R3作為8路循環(huán)控制,R0用作顯示數(shù)據(jù)指針。

            3結(jié)論

            可以測量0~5的8路電壓值。89C51為8位處理器,當(dāng)0809輸入電壓為5.00V時,輸出數(shù)據(jù)為255(FFH)。因此最大分辯率為O.0196V(5/255)。如要獲得更高的精度要求,應(yīng)采用12位、13位的A/D轉(zhuǎn)換器。數(shù)字電壓顯示可能有偏差,可以通過校正0809的基準(zhǔn)電壓來解決,或者用軟件編程來校正測量值。

            本系統(tǒng)用89C51構(gòu)成控制系統(tǒng),具有精度高、速度快、性能穩(wěn)定和電路簡單且工作可靠等特點,具有很好的使用價值。

          參考文獻(xiàn):

          [1].ATdatasheethttp://www.dzsc.com/datasheet/AT_810155.html.
          [2].ADC0809datasheethttp://www.dzsc.com/datasheet/ADC0809_123186.html.
          [3].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
          [4].BCDdatasheethttp://www.dzsc.com/datasheet/BCD_1225719.html


          上一頁 1 2 下一頁

          評論


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