劉帥 周世杰 鄭凡非
摘要:本文以STC89C52為主控制器,利用ADC0832設計數(shù)字電壓表,控制核心STC89C52對轉(zhuǎn)換結果進行轉(zhuǎn)換和處理,并通過數(shù)碼管和LED小燈分別進行動態(tài)顯示數(shù)值和檔位。數(shù)碼管用兩片74HC573驅(qū)動,LED燈點亮顯示電壓值檔位,并進行實驗。實驗結果表明,基于ADC0832的數(shù)字電壓表可進行簡單的電壓測量,使用方便,測量精確。
關鍵詞:ADC0832;單片機;74HC573;數(shù)字電壓表
中圖分類號:TP368.1 文獻標識碼:A 文章編號:1007-9416(2019)02-0166-02
0 引言
電壓、電流和頻率一致是最基本的三個測量量,電壓的測量最常見,在測控和智能儀表等領域內(nèi),數(shù)字電壓表作為一種理想選擇一直有著廣泛的應用。以單片機技術結合A/D轉(zhuǎn)換原理設計的數(shù)字電壓表可以較為精確測量電壓 [1]。本文以STC89C52單片機為基礎,利用ADC0832采集模擬電壓值并通過數(shù)碼管顯示(顯示格式為X.XX),模擬電壓可用電位器調(diào)節(jié),選用ADC0832的第2路輸入通道[2]。
1 系統(tǒng)設計方案
本設計以單片機最小系統(tǒng)為基礎。而以A/D轉(zhuǎn)換器作為數(shù)字電壓表的內(nèi)部核心器件對數(shù)字電壓表的測量精確度影響很大,本設計運用ADC0832 作為A/D轉(zhuǎn)換器,轉(zhuǎn)換輸入的模擬信號為數(shù)字信號,用STC89C52單片機對采集的8位數(shù)據(jù)值進行運算處理。通過兩片74HC573鎖存器驅(qū)動七段共陰極數(shù)碼管顯示測量電壓值。并由單片機對轉(zhuǎn)換數(shù)值進行判斷,通過LED燈模塊顯示當前電壓值檔位。系統(tǒng)硬件連接框架圖如圖1所示。
2 硬件電路設計
本設計實驗中,以STC89C52單片機為主控模塊的電路,能實現(xiàn)的電壓測量范圍是0~5V[3]。
2.1 AD轉(zhuǎn)換接口的電路設計
ADC0832是8腳雙列直插式雙通道A/D轉(zhuǎn)換器,能分別對兩路模擬信號實現(xiàn)模—數(shù)轉(zhuǎn)換,可以用在單端輸入方式和差分方式下工作。8位的分辨率(較高分辨可達256級),可以適應一般的模擬量轉(zhuǎn)換要求。而本文采用單端第二路輸入方式,即CH1通道輸入。并通過CS使能端控制芯片的轉(zhuǎn)換工作。
2.2 數(shù)碼管顯示電路設計
本次設計采用兩片74HC573鎖存器對七段共陰極數(shù)目管進行驅(qū)動構成數(shù)碼管顯示電路。芯片引腳圖如2所示。將兩片74HC573芯片的D0~D7引腳與單片機的P1口連接,并由單片機P3^5,P3^6引腳分別連接74HC573 的鎖存端。并將鎖存器的輸出端分別與分立數(shù)碼管的位選端連接,通過段選端和位選端實現(xiàn)對分立數(shù)碼管的驅(qū)動。
2.3 檔位電路設計
將五個LED燈分別與單片機的P2^0~P2^4端口相連,由單片機對數(shù)值范圍進行判斷并控制P2口引腳輸出值實現(xiàn)檔位功能電路。完成的數(shù)字電壓表原理圖如圖2:
3 程序設計
為了實現(xiàn)設計所需的功能,程序設計包括端口初始化、啟動A/D轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換、顯示函數(shù)、數(shù)值判斷等,具體內(nèi)容如下:
3.1 A/D轉(zhuǎn)換子程序設計
A/D轉(zhuǎn)換子程序核心功能是設定ADC0832的CH1端采集電壓輸入,并將采集到模擬值轉(zhuǎn)換為8位二進制數(shù)值,范圍是0~256,所測量范圍為0~5V電壓,對應的采集電壓精度為約19.53mv,即5/256。
3.2 數(shù)據(jù)轉(zhuǎn)換子程序
為了使數(shù)碼管正確顯示數(shù)值(X.XX),所以需要寫明一個數(shù)據(jù)轉(zhuǎn)換的函數(shù),將采集電壓值轉(zhuǎn)換為帶小數(shù)點的三位有數(shù)字。
3.3 定時器中斷子程序
為了使數(shù)碼管能動態(tài)顯示實時測量值,則需要中斷延時程序,達到一段時間抽樣一次的效果,使數(shù)碼管顯示數(shù)值更加穩(wěn)定,本次設計中使用定時器中斷延時程序。
3.4 數(shù)碼管顯示子程序
本設計采用共陰極數(shù)碼管,低電平點亮,不亮則在對應并行口引腳送高電平。在程序設計時可將0~F等16個字符的段選碼和帶小數(shù)點字符的段選碼字定義在數(shù)組中。通過顯示函數(shù)調(diào)用轉(zhuǎn)換后的數(shù)據(jù),再把調(diào)用的數(shù)據(jù)通過數(shù)碼管顯示出來。先點亮第一個數(shù)碼管,顯示個位和小數(shù)點,再逐次點亮第二、三個數(shù)碼管顯示小數(shù)點后第一、二位[5]。電壓就可以顯示了。
3.5 數(shù)值判斷子程序
將轉(zhuǎn)換后的數(shù)值與對應范圍作比較進行判斷,從而讓不同的LED燈點亮。
4 實驗調(diào)試
此次設計采用Keil軟件進行編程,在程序調(diào)試無錯后, 使用下載程序軟件,將程序下載到了實驗板上,完成的電壓表如圖3所示。
5 結語
在實際生活中,測微與控制技術的應用越來越廣泛,因此以單片機為基礎的數(shù)字電壓表有著巨大的優(yōu)勢,本設計以單片機STC89C52單片機和ADC0832為核心部件,可以實時測量0~5V的電壓值,同時帶有LED顯示和電壓檔位功能,在實踐中很好地實現(xiàn)了其功能并都達到了預期的效果。
參考文獻
[1] 馮占嶺.數(shù)字電壓表及數(shù)字多用表檢測技術[M].北京:中國計量出版社,2003.
[2] 宋鳳娟,孫軍,李國忠.基于89c51單片機的數(shù)字電壓表設計[J].制造業(yè)自動化,2007,29(02):89-90,93.
[3] 胡卓敏,王麗娟.基于STC89C51單片機的數(shù)字電壓表設計[J].電子元器件應用,2009,11(11):14-16.
Design and Implementation of Digital Voltmeter Based on MCU
LIU Shuai, ZHOU Shi-jie, ZHENG Fan-fei
(School of Information Engineering, North China University of Technology, Tangshan? Hebei? 063210)
Abstract:This paper takes STC89C52 as the main controller, uses ADC0832 to design digital voltmeter, controls the core STC89C52 to convert and process the conversion results, and dynamically displays the value and gear through digital tube and LED lamp respectively. The digital tube is driven by two pieces of 74HC573. The LED lamp lights up the voltage level and carries out experiments. The experimental results show that the digital voltmeter based on ADC 0832 can be used to measure the voltage simply, conveniently and accurately.
Key words:ADC0832; MCU; 74HC573; digital voltmeter