基于單片機的數字電壓表設計與仿真
摘要:由于純硬件數字電壓表結構復雜,測量精度低,價格高,而在日常使用中,使用頻率高,導致萬用表經常損壞,故障率高,給使用和維修帶來很多不便。為了設計一種高精度數字電壓表,采用AT89C52單片機和ADC0809模/數轉換相結合的方法,做了大量Proteus仿真實驗,獲得了普通純硬件數字電壓表無法達到的測量效果。實驗結果證明,使用軟硬件相結合設計的數字電壓表,具有結構簡單,測量精度高,故障率低等功能。
關鍵詞:數字電壓表;測量精度;AT89C52;ADC0809
0 引言
在電子測量中,電壓值的測量顯得尤其重要。然而測量電壓的儀表很多,有各種類型和款式的數字電壓表,它們大多數都是采用傳統的純硬件電路設計的,由于結構復雜、測量精度低、日后維修麻煩、成本高等缺點,因此,木文設計了一種數字電壓表,采用軟件和硬件相結合的設計模式,利用單片機和A/D轉換,對現場電壓進行采集和測量,可以實現測量數據的傳遞,又可借助PC進行測量數據的處理。所以,這種類型的數字電壓表具有結構簡單、精度高、維護方便、成本低、故障率低等優點,無論在功能和實際應用上都具有傳統數字電壓表無法比擬的優點,使得它的開發和應用都具有良好的前景。
1 系統硬件電路構成
本設計硬件電路大體可分為單片機最小系統電路、穩壓電路、A/D轉換電路及數碼顯示電路,其原理圖如圖1所示,由于單片機具有體積小、重量輕、價格便宜、控制靈活等特點,所以本系統采用AT89C52單片機作為控制核心器件,ADC0809作為模擬信號轉換為數字信號用。
ADC0809是8位的模/數轉換芯片,片內有8路模擬選通開關以及相應的通道鎖存譯碼電路,轉換時間大約為100μs左右。在電路應用中,首先要指定ADC0809的數據通道,當外部電壓進入芯片后,STATR信號由高到低,在脈沖的下降沿ADC0809開始轉換,同時管腳EOC電平變低,表示轉換正在進行,轉換完成之后,管腳EOC的電平變高,表示一次轉換結束。
2 系統軟件實現與主程序流程
軟件采用單片機C語言編寫,C語言具有通俗易懂、修改方便、語句簡單等優點,本設計通過ADC0809把直流電壓(模擬量)轉換為數字量再通過AT89C52單片機進行數據處理,通過數碼管顯示。主程序一開始進行初始化,設置并啟動A/D轉換以及鍵盤掃描,檢測是否有鍵按下,并分析。當有按鍵按下,通道數加一,并在第一位數碼管上顯示當前的通道數,然后調用顯示子程序,在數碼管上顯示當前的電壓值,主
程序流程圖如圖2所示。
3 A/D轉換子程序
A/D轉換子程序用來控制對輸入的模擬電壓信號進行采集測量,并將對應的數值存入相應的內存單元,驅動數碼管進行顯示,流程圖如圖3所示。
評論