陳萬勛,楊 頂,蔣小輝
(1.中國電建集團貴州工程有限公司,貴州 貴陽 550003;2.三峽大學 計算機與信息學院,湖北 宜昌 443002;3.三峽大學科技學院 機電系,湖北 宜昌 443002)
基于單片機的數字電壓表從傳統的測量領域擴展到自動控制、通信及傳感領域,具有很大的應用前景。隨著單片機技術的發展和軟件方功能的完善,使得的數字電壓表具備讀數直觀準確、分辨率高、性能可靠穩定、擴展方便等優點,易實現網絡化和智能化。
基于單片機的數字電壓表包括硬件系統和軟件系統。硬件系統結構主要包括單片機系統、信號采集及轉換回路、顯示回路、通信接口及功能回路,功能回路一般有過限報警、繼電器輸出等。軟件系統主要包括數據采集處理、通信及功能程序。數字電壓表按照其工作原理通常分成4種類型[1]:(1)比較式數字電壓表,工作原理是被測試的電壓和已經知道的基準電壓對比,測量速度較快;(2)電壓-時間變換式數字電壓表,工作原理是被測的電壓被轉換為脈沖信號進行對比測量;(3)電壓-頻率變換式數字電壓表,工作原理將被測電壓轉換為頻率脈沖信號而直接測量;(4)復合式數字電壓表,包含了上面3種模數轉換的工作原理。數字電壓表主要具有抗干擾能力強、可擴展性好、集成方便、能夠與PC端進行通信和測量精度高5個優點。
基于ATmega16單片機的智能型數字電壓表硬件電路由單片機、模數轉換器、顯示電路、通信接口及鍵盤電路5個主體部分構成,如圖1所示[2]。單片機采用ATmega16型單片機,設計其最小工作系統電路;模數轉換器基于ADC模數轉換模塊,包括其工作電源回路;顯示電路主要包括LED顯示器及其與ATmega16型單片機P口之間的連接電路;通信接口主要采用基于RS485協議的9針RJ型接口,可與PC機之間直接通信;鍵盤電路主要由鍵盤矩陣和轉換電路構成。

圖1 基于ATmega16單片機的智能型數字電壓表
基于ATmega16單片機的智能型數字電壓表的軟件系統程序主要包括主程序、A/D轉換子程序和中斷顯示程序,如圖2所示。主程序包括初始化部分、調用A/D轉換子程序、顯示程序、通信程序和功能程序[3-4]。初始化的主要作用是上電時將系統輸出置為低位。A/D轉換子程序用于對多路輸入模擬電壓值進行模數轉換。顯示程序采用軟中斷功能,當輸出處理完成后將程序中斷,使電壓值傳輸給LED進行顯示。當輸出處理完成后,將電壓值通過基于RS485協議的9針RJ型接口傳輸至PC。功能程序由開發員根據工程需要實時開發。

圖2 基于ATmega16單片機的智能型數字電壓表工作流程
根據圖1設計電路,并利用Proteus進行仿真。通過電位器輸入可變模擬量電壓值與數字電壓輸出值對比測試,結果如表1所示。
當通過電位器輸入2 V電壓時,Proteus仿真結果如圖3所示。
本文基于ATmega16單片機設計了一款智能型數字電壓表,包括信號采集及轉換回路、顯示回路、通信接口及過限報警等功能回路和相應的軟件程序,并基于Proteus設計相應的回路進行10組數據的測試及仿真。驗證發現,它的精度滿足要求,同時抗干擾能力強、可擴展性好、集成方便、易與PC機實現通信,整體應用價值較高。

表1 測試電壓數據表

圖3 2 V輸入電壓下的Proteus仿真圖