劉帥 周世杰 鄭凡非
摘要:本文以STC89C52為主控制器,利用ADC0832設(shè)計(jì)數(shù)字電壓表,控制核心STC89C52對(duì)轉(zhuǎn)換結(jié)果進(jìn)行轉(zhuǎn)換和處理,并通過數(shù)碼管和LED小燈分別進(jìn)行動(dòng)態(tài)顯示數(shù)值和檔位。數(shù)碼管用兩片74HC573驅(qū)動(dòng),LED燈點(diǎn)亮顯示電壓值檔位,并進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,基于ADC0832的數(shù)字電壓表可進(jìn)行簡(jiǎn)單的電壓測(cè)量,使用方便,測(cè)量精確。
關(guān)鍵詞:ADC0832;單片機(jī);74HC573;數(shù)字電壓表
中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)02-0166-02
0 引言
電壓、電流和頻率一致是最基本的三個(gè)測(cè)量量,電壓的測(cè)量最常見,在測(cè)控和智能儀表等領(lǐng)域內(nèi),數(shù)字電壓表作為一種理想選擇一直有著廣泛的應(yīng)用。以單片機(jī)技術(shù)結(jié)合A/D轉(zhuǎn)換原理設(shè)計(jì)的數(shù)字電壓表可以較為精確測(cè)量電壓 [1]。本文以STC89C52單片機(jī)為基礎(chǔ),利用ADC0832采集模擬電壓值并通過數(shù)碼管顯示(顯示格式為X.XX),模擬電壓可用電位器調(diào)節(jié),選用ADC0832的第2路輸入通道[2]。
1 系統(tǒng)設(shè)計(jì)方案
本設(shè)計(jì)以單片機(jī)最小系統(tǒng)為基礎(chǔ)。而以A/D轉(zhuǎn)換器作為數(shù)字電壓表的內(nèi)部核心器件對(duì)數(shù)字電壓表的測(cè)量精確度影響很大,本設(shè)計(jì)運(yùn)用ADC0832 作為A/D轉(zhuǎn)換器,轉(zhuǎn)換輸入的模擬信號(hào)為數(shù)字信號(hào),用STC89C52單片機(jī)對(duì)采集的8位數(shù)據(jù)值進(jìn)行運(yùn)算處理。通過兩片74HC573鎖存器驅(qū)動(dòng)七段共陰極數(shù)碼管顯示測(cè)量電壓值。并由單片機(jī)對(duì)轉(zhuǎn)換數(shù)值進(jìn)行判斷,通過LED燈模塊顯示當(dāng)前電壓值檔位。系統(tǒng)硬件連接框架圖如圖1所示。
2 硬件電路設(shè)計(jì)
本設(shè)計(jì)實(shí)驗(yàn)中,以STC89C52單片機(jī)為主控模塊的電路,能實(shí)現(xiàn)的電壓測(cè)量范圍是0~5V[3]。
2.1 AD轉(zhuǎn)換接口的電路設(shè)計(jì)
ADC0832是8腳雙列直插式雙通道A/D轉(zhuǎn)換器,能分別對(duì)兩路模擬信號(hào)實(shí)現(xiàn)?!獢?shù)轉(zhuǎn)換,可以用在單端輸入方式和差分方式下工作。8位的分辨率(較高分辨可達(dá)256級(jí)),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。而本文采用單端第二路輸入方式,即CH1通道輸入。并通過CS使能端控制芯片的轉(zhuǎn)換工作。
2.2 數(shù)碼管顯示電路設(shè)計(jì)
本次設(shè)計(jì)采用兩片74HC573鎖存器對(duì)七段共陰極數(shù)目管進(jìn)行驅(qū)動(dòng)構(gòu)成數(shù)碼管顯示電路。芯片引腳圖如2所示。將兩片74HC573芯片的D0~D7引腳與單片機(jī)的P1口連接,并由單片機(jī)P3^5,P3^6引腳分別連接74HC573 的鎖存端。并將鎖存器的輸出端分別與分立數(shù)碼管的位選端連接,通過段選端和位選端實(shí)現(xiàn)對(duì)分立數(shù)碼管的驅(qū)動(dòng)。
2.3 檔位電路設(shè)計(jì)
將五個(gè)LED燈分別與單片機(jī)的P2^0~P2^4端口相連,由單片機(jī)對(duì)數(shù)值范圍進(jìn)行判斷并控制P2口引腳輸出值實(shí)現(xiàn)檔位功能電路。完成的數(shù)字電壓表原理圖如圖2:
3 程序設(shè)計(jì)
為了實(shí)現(xiàn)設(shè)計(jì)所需的功能,程序設(shè)計(jì)包括端口初始化、啟動(dòng)A/D轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換、顯示函數(shù)、數(shù)值判斷等,具體內(nèi)容如下:
3.1 A/D轉(zhuǎn)換子程序設(shè)計(jì)
A/D轉(zhuǎn)換子程序核心功能是設(shè)定ADC0832的CH1端采集電壓輸入,并將采集到模擬值轉(zhuǎn)換為8位二進(jìn)制數(shù)值,范圍是0~256,所測(cè)量范圍為0~5V電壓,對(duì)應(yīng)的采集電壓精度為約19.53mv,即5/256。
3.2 數(shù)據(jù)轉(zhuǎn)換子程序
為了使數(shù)碼管正確顯示數(shù)值(X.XX),所以需要寫明一個(gè)數(shù)據(jù)轉(zhuǎn)換的函數(shù),將采集電壓值轉(zhuǎn)換為帶小數(shù)點(diǎn)的三位有數(shù)字。
3.3 定時(shí)器中斷子程序
為了使數(shù)碼管能動(dòng)態(tài)顯示實(shí)時(shí)測(cè)量值,則需要中斷延時(shí)程序,達(dá)到一段時(shí)間抽樣一次的效果,使數(shù)碼管顯示數(shù)值更加穩(wěn)定,本次設(shè)計(jì)中使用定時(shí)器中斷延時(shí)程序。
3.4 數(shù)碼管顯示子程序
本設(shè)計(jì)采用共陰極數(shù)碼管,低電平點(diǎn)亮,不亮則在對(duì)應(yīng)并行口引腳送高電平。在程序設(shè)計(jì)時(shí)可將0~F等16個(gè)字符的段選碼和帶小數(shù)點(diǎn)字符的段選碼字定義在數(shù)組中。通過顯示函數(shù)調(diào)用轉(zhuǎn)換后的數(shù)據(jù),再把調(diào)用的數(shù)據(jù)通過數(shù)碼管顯示出來。先點(diǎn)亮第一個(gè)數(shù)碼管,顯示個(gè)位和小數(shù)點(diǎn),再逐次點(diǎn)亮第二、三個(gè)數(shù)碼管顯示小數(shù)點(diǎn)后第一、二位[5]。電壓就可以顯示了。
3.5 數(shù)值判斷子程序
將轉(zhuǎn)換后的數(shù)值與對(duì)應(yīng)范圍作比較進(jìn)行判斷,從而讓不同的LED燈點(diǎn)亮。
4 實(shí)驗(yàn)調(diào)試
此次設(shè)計(jì)采用Keil軟件進(jìn)行編程,在程序調(diào)試無錯(cuò)后, 使用下載程序軟件,將程序下載到了實(shí)驗(yàn)板上,完成的電壓表如圖3所示。
5 結(jié)語
在實(shí)際生活中,測(cè)微與控制技術(shù)的應(yīng)用越來越廣泛,因此以單片機(jī)為基礎(chǔ)的數(shù)字電壓表有著巨大的優(yōu)勢(shì),本設(shè)計(jì)以單片機(jī)STC89C52單片機(jī)和ADC0832為核心部件,可以實(shí)時(shí)測(cè)量0~5V的電壓值,同時(shí)帶有LED顯示和電壓檔位功能,在實(shí)踐中很好地實(shí)現(xiàn)了其功能并都達(dá)到了預(yù)期的效果。
參考文獻(xiàn)
[1] 馮占嶺.數(shù)字電壓表及數(shù)字多用表檢測(cè)技術(shù)[M].北京:中國計(jì)量出版社,2003.
[2] 宋鳳娟,孫軍,李國忠.基于89c51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2007,29(02):89-90,93.
[3] 胡卓敏,王麗娟.基于STC89C51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].電子元器件應(yīng)用,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