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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于FPGA的新型數(shù)字電壓表研究與設(shè)計

          一種基于FPGA的新型數(shù)字電壓表研究與設(shè)計

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

            3.2 檔位轉(zhuǎn)換電路

            為了增加的測量范圍,設(shè)計了檔位選擇電路。采用精密電阻分壓方法,簡潔實用。ADC0809有8路數(shù)據(jù)輸入端口,原理上可以分為8個檔位。從實用性出發(fā),只分了兩檔,如圖5所示。圖5中電位器負(fù)責(zé)電阻校準(zhǔn)。盡管采用精密電阻,各電阻值的制造誤差不可避免,用電位器來微調(diào)校準(zhǔn)以保證測量精度。ADC0809的輸入范圍為0~5 V,檔位的切換是通過程序來控制ADC0809各個通道的選通來自動實現(xiàn)。只要輸入的電壓范圍超過5 V,則檔位自動切換到另一檔,即選通通道INl。

          檔位轉(zhuǎn)換電路

            當(dāng)輸入電壓范圍為O~5 V時,INO導(dǎo)通。此時U=U26,當(dāng)輸入電壓范圍為5~50 V時,判斷選擇檔位,INl導(dǎo)通。此時有U=U27即U=(R1+R3)/(R1+R2+R3)=U26/10。

            由于ADC0809數(shù)字量輸出為8位,數(shù)字量化范圍為0~255,當(dāng)輸入電壓為滿量程5 V時,轉(zhuǎn)換電路對輸入電壓的分辨能力為:

          公式

            3.3 內(nèi)部模塊設(shè)計

            (1)碼制轉(zhuǎn)換模塊。在此碼制變換模塊DATA_CONVERSION功能是將AD0809采樣送來的8位二進制數(shù)轉(zhuǎn)換為可被LCD識別的字符型LCD碼。首先,將8位二進制碼變換為BCD碼;然后,再分別進行轉(zhuǎn)換,得到字符型碼,并送入譯碼顯示模塊。

            (2)譯碼驅(qū)動模塊。數(shù)字電壓值的顯示由LCD實現(xiàn)。選用了HY系列字符型液晶顯示模塊HD44780。實現(xiàn)了低功耗,而且可帶單位雙排顯示,字體美觀大方。

            整個電路十分簡潔。系統(tǒng)工作過程:芯片EP2C5T144對ADC0809及LCD進行初始化。當(dāng)有輸入信號Vi時,由FPGA向ADC0809傳送控制信號控制字,使其對輸入的模擬信號進行轉(zhuǎn)換,變?yōu)?位的數(shù)字信號并送到輸出端。由FPGA經(jīng)過碼制變換等處理后,再通過LCD的接口驅(qū)動,向其發(fā)送數(shù)據(jù)。當(dāng)ADC0809采樣完成后,F(xiàn)PGA中的碼字轉(zhuǎn)換模塊將數(shù)據(jù)轉(zhuǎn)換為LCD可識別的字符型數(shù)據(jù),然后送至驅(qū)動模塊,由其驅(qū)動LCD,將字符型數(shù)據(jù)送到LCD的DO~D7端,實現(xiàn)顯示。

            4 關(guān)鍵算法實現(xiàn)

            4.1 檔位自動切換算法

            將分為兩個檔位,分別是0~5 V,0~50 V。檔位切換算法如下:

            設(shè)定初始量程為0~5 V。采集100個數(shù)據(jù)點,對輸入信號Vi的采樣值取絕對值的最大值,將其作為Vi的最大值的估計值。如果Vi的最大絕對值估計值小于5 V,則將檔位切換到O~5 V,否則,切換到0~50 V。



          關(guān)鍵詞: FPGA 數(shù)字電壓表 A/D

          評論


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