• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于51的簡易數字電壓表設計與制作

    基于51的簡易數字電壓表設計與制作

    作者: 時間:2014-03-25 來源:網絡 收藏

    1.引言

    本文引用地址:http://www.czjhyjcfj.com/article/235291.htm

    在電量的測量中,電壓、電流和頻率是最基本的三個被測量,而電壓的測量最為常見,現在學生使用的數字萬用表能夠測量多種電量,并且具有一定的精度,使用方便。為了讓學生更好地了解數字電壓表的工作原理,從而激發他們對單片機課程的學習興趣。本文從軟硬件設計、仿真、制作實物、誤差分析幾個方面著手,闡述數字電壓表的工作原理、數據的程序處理方法、數字信號軟件濾波原理。

    2.硬件設計

    硬件電路設計由4個部分組成:a/d轉換電路,單片機系統,led顯示系統、測量電壓輸入電路。硬件電路設計框圖如圖1所示。其總設計框圖如下:

    ?

    ?

    此電路的工作原理是:+5v模擬電壓信號通過變阻器vr1分壓后由adc08008的in0通道進入(由于使用的in0通道,所以adda,addb,addc均接低電平),經過模/數轉換后,產生相應的數字量經過其輸出通道d0-d7傳送給芯片的p0口,負責把接收到的數字量經過數據處理,產生正確的7段數碼管的顯示段碼傳送給四位led,同時它還通過其四位i/o口p2.0、p2.1、p2.2、p2.3產生位選信號控制數碼管的亮滅。

    簡易數字直流電壓表的硬件電路已經設計完成,就可以選取相應的芯片和元器件,利用pROTEUS軟件繪制出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。但要真正實現電路對電壓的測量和顯示的功能,還需要有相應的軟件配合,才能達到設計要求。

    3.軟件設計

    根據模塊的劃分原則,將該程序劃分初始化模塊,a/d轉換子程序和顯示子程序,這三個程序模塊構成了整個系統軟件的主程序,如圖2所示。

    ?

    ?

    整個程序設計的核心在于對a/d轉換的數據進行處理,包括數字濾波處理,數據小數位數的處理等。a/d轉換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數值存入相應的內存單元。

    顯示子程序采用動態掃描實現四位數碼管的數值顯示,在采用動態掃描顯示方式時,要使得led顯示的比較均勻,又有足夠的亮度,需要設置適當的掃描頻率,當掃描頻率在70hz左右時,能夠產生比較好的顯示效果,一般可以采用間隔10MS對led進行動態掃描一次,每一位led的顯示時間為1MS.

    4.結果及誤差分析

    由于單片機at89c51為8位處理器,當輸入電壓為5.00v時,adc0808輸出數據值為255(ffh),因此單片機最高的數值分辨率為0.0196v(5/255)。這就決定了電壓表的最高分辨率只能到0.0196v,從表1可看到,測試電壓一般以0.01v的幅度變化。

    當in0口輸入電壓值為13.5v時,顯示結果如圖3所示。測量誤差為0.1v.

    ?

    ?

    從表1可以看出,簡易數字電壓表測得的值基本上比標準電壓值偏大0-0.01v,這可以通過校正adc0808的基準電壓來解決或者通過軟件校準的方式來降低誤差。因為該電壓表設計時直接用5v的供電電源作為電壓,所以電壓可能有偏差。當要測量大于5v的電壓時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數進行調整就可以了。

    ?

    ?

    從測試的數據看,其絕對誤差均控制在1v以下,而相對誤差均在1%以下,能夠滿足大部分場合應用的需要,如采用實驗數據歸納的方法,將得出的數據繪制成曲線,再使用更為合理的算法,將得到更加準確的結果。

    萬用表相關文章:萬用表怎么用


    51單片機相關文章:51單片機教程


    數字濾波器相關文章:數字濾波器原理


    關鍵詞: at89c51 proteus

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 乌兰察布市| 宁乡县| 莱西市| 德昌县| 赤城县| 横山县| 北京市| 潞城市| 密山市| 寻甸| 望江县| 涞源县| 邹城市| 商河县| 南通市| 利辛县| 彰化县| 龙门县| 武城县| 鄂尔多斯市| 繁昌县| 商城县| 呼和浩特市| 葵青区| 桐柏县| 五寨县| 丘北县| 沈阳市| 绥棱县| 泰顺县| 佛山市| 罗源县| 涟源市| 蓬莱市| 和平区| 拉萨市| 铁力市| 凯里市| 樟树市| 锡林浩特市| 万州区|