新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的數字電容表設計

        基于單片機的數字電容表設計

        作者: 時間:2013-02-18 來源:網絡 收藏

          5 軟件設計

          程序用C語言編寫。軟件部分由主程序、定時中斷服務子程序等模塊組成。定時器T0作被測電容器充電時間的計數用。定時器T1用于定時中斷服務,定時時間為5 ins,即5 ms產生一次中斷。數組BitTab[4]用來存儲位驅動碼,DispTab[11]用來存儲字形碼,數組DispBtlf[4]的4個元素分別用來存儲從定時器T0讀出的數據的個、十百千位的4位數字。程序顯示每一位數碼的時間為5 ms,因此顯示完整的4位數的周期為20 ms(4次中斷)。每過240 ms(48次中斷)刷新一下數據,即每過240 ms測一次電容量,測量時間小于2 ms,由于這一時間小于中斷的時間5 ms,因此在測量過程中不會出現中斷現象。測量電容時P1.2口輸出高電平,電容開始充電,與此同時定時器T0開始計數,當電容器充電達到基準電壓時,P3.6口輸出高電平,據此程序做出判斷停止T0的計數,并讀出數據送數碼管顯示。如果被測電容器的容量超出測試檔的量程,則計數值大于或等于2 000,顯示結果為千位數顯示1,其他三位數不顯示。經仿真和電路測試,發現判斷P3.6口是否輸出高電平要花3個機器周期,這會使顯示值增加3,因此在程序中對此誤差進行了修正,對計數值減去了3。字形碼的輸出用了P3口的P3.0~P3.5,P3.7,P3.6為空,P3口輸出的數據通過數組DispTab獲得。數據位和字形的對應關系如表1所示。


          6 安裝與調試

          該設計用集成電路,X1用12 MHz的石英晶體,S1選用1×4的波段開關,DS1~DS4選用共陰LED數碼管。安裝前先將C語言源程序用KEIL 51編譯成目標文件即HEX文件,再用編程器將HEX文件寫入芯片。調試工作主要是通過對RP1的調節來調整基準電壓,最好是通過對一個精度比較高的的電容器的測量來進行調節,而不是直接測量基準電壓。具體方法是,選一個經確認容量比較準確的電容器,如15 nF的電容器,將S1置于20 nF檔上,調節RP1是測量顯示值為1 500。選擇的電容器容量至少要大于相應量程的50%,最好是接近滿量程,才能調得比較準確。該檔調試好后其他各檔也就調試好了。如果發現某檔精度有問題,可改變其相應充電電阻的阻值來進行調整。在使用過程中,當S1置于2 nF檔時,在沒有接人測試電容器時,有10 pF左右的顯示值是正常的,因為這是電壓比較器的輸入電容和電路的分布電容。

          只要在測量讀數時間去掉這一數值即可。因此在調試時不要選擇該檔,以免因分布電容影響調試得準確性。

          C文件源程序如下:




        參考文獻:

        [1].datasheethttp://www.dzsc.com/datasheet/AT89C2051_html.
        [2].AT89C51datasheethttp://www.dzsc.com/datasheet/AT89C51_810155.html.
        [3].DS1datasheethttp://www.dzsc.com/datasheet/DS1_1106249.html.
        [4].DS4datasheethttp://www.dzsc.com/datasheet/DS4_1106244.html.


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 胶南市| 岗巴县| 右玉县| 金乡县| 余姚市| 新安县| 桂林市| 柳州市| 靖边县| 乐东| 迁安市| 京山县| 渝中区| 改则县| 鹤庆县| 赤城县| 静乐县| 长武县| 荆门市| 河津市| 财经| 韶关市| 蚌埠市| 大荔县| 霍山县| 苗栗县| 淄博市| 云南省| 那坡县| 板桥市| 邵东县| 隆林| 永福县| 买车| 长春市| 孝感市| 巴东县| 彭山县| 正阳县| 儋州市| 衡东县|