基于89c51單片機(jī)的數(shù)字電壓表設(shè)計
摘要:在現(xiàn)代檢測技術(shù)中,常需用高精度數(shù)字電壓表進(jìn)行現(xiàn)場檢測,將檢測到的數(shù)據(jù)送入微計算機(jī)系統(tǒng),完成計算、存儲、控制和顯示等功能。本文中數(shù)字電壓表的控制系統(tǒng)采用AT89c51單片機(jī),A/D轉(zhuǎn)換器采用ADC0809為主要硬件,實現(xiàn)數(shù)字電壓表的硬件電路與軟件設(shè)計。該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,調(diào)節(jié)工作可實現(xiàn)自動化。還可以方便地進(jìn)行8路A/D轉(zhuǎn)換量的測量,遠(yuǎn)程測量結(jié)果傳送等功能。數(shù)字電壓表可以測量o~5V的8路輸入電壓值,并在四位LED數(shù)碼管上輪流顯示或單路選擇顯示。
關(guān)鍵詞:單片機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;模擬信號
0引言
數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ),電壓表的數(shù)字化是將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,這有別于傳統(tǒng)的以指針加刻度盤進(jìn)行讀數(shù)的方法,避免了讀數(shù)的視差和視覺疲勞。目前數(shù)字萬用表的內(nèi)部核心部件是A/D轉(zhuǎn)換器,轉(zhuǎn)換器的精度很大程度上影響著數(shù)字萬用表的準(zhǔn)確度,本文AID轉(zhuǎn)換器采用ADC0809對輸入模擬信號進(jìn)行轉(zhuǎn)換,控制核心AT89C51N對轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算和處理,最后驅(qū)動輸出裝置顯示數(shù)字電壓信號。
1數(shù)字電壓表硬件電路設(shè)計
硬件電路設(shè)計主要包括:89C51單片機(jī)系統(tǒng),~D轉(zhuǎn)換電路,顯示電路。測量最大電壓為5V,顯示最大值為5.00V.圖l是數(shù)字電壓表硬件電路原理圖。
1.1 89C51單片機(jī)系統(tǒng)和顯示電路
由于單片機(jī)體積小、重量輕、價格便宜,所以本系統(tǒng)采用89C51單片機(jī),其原理圖如圖1所示。
89C51內(nèi)部有4KB的EEPROM,128字節(jié)的RAM,所以一般都要根據(jù)系統(tǒng)所需存儲容量的大小來擴(kuò)展,ROM和RAM.本電路/EA接高電平,沒有擴(kuò)展片外ROM和RAM.
89C51的P1、P3.0~P3.3端口作為四位LED數(shù)碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P3.6端口用作單路顯示時選擇通道。P0端口作0809的A/D轉(zhuǎn)換數(shù)據(jù)讀入用,P2端口用作0809的A/D轉(zhuǎn)換控制。
1.2 A/D轉(zhuǎn)換電路
圖1數(shù)字電壓表電路原理圖
A/D轉(zhuǎn)換由集成電路0809完成。0809具有8路模擬信號輸入端口,地址線(23~25腳)可決定對哪一路模擬信號進(jìn)行A/D轉(zhuǎn)換。22腳為地址鎖存控制,當(dāng)輸入為高電平時,對地址信號進(jìn)行鎖存。6腳為測試控制,當(dāng)輸入一個21xs寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為0809的時鐘輸入端,利用單片機(jī)30引腳的六分頻晶振頻率再通過14024二分頻得到1MHz時鐘。
2數(shù)字電壓表系統(tǒng)的軟件設(shè)計
主程序和A/D轉(zhuǎn)換測量程序流程圖如圖2所示。
2.1初始化程序
系統(tǒng)上電,初始化程序?qū)?0H~77H內(nèi)存單元清0,P2口置0.系統(tǒng)默認(rèn)為循環(huán)顯示8個通道的電壓值,當(dāng)進(jìn)行一次測量后,將顯示每一通道的A/D轉(zhuǎn)換值,每個通道顯示時間為1s.70H~77H內(nèi)存單元存放采樣值,78H~7BH內(nèi)存單元存放顯示數(shù)據(jù),依次為個位、十位、百位、通道標(biāo)志位。
2.2 A/D轉(zhuǎn)換子程序
A/D轉(zhuǎn)換子程序用來控制對0809/k路模擬輸入電壓的A/D轉(zhuǎn)換,并將對應(yīng)的數(shù)值存入70H~77H內(nèi)存單元。
2.3示子程序
顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示。測量數(shù)據(jù)在顯示時需轉(zhuǎn)換成BCD碼放在78H~7BH內(nèi)存單元中,其中7BH存放通道標(biāo)志數(shù)。
R3作為8路循環(huán)控制,R0用作顯示數(shù)據(jù)指針。
3結(jié)論
數(shù)字電壓表可以測量0~5的8路電壓值。89C51為8位處理器,當(dāng)0809輸入電壓為5.00V時,輸出數(shù)據(jù)為255(FFH)。因此最大分辯率為O.0196V(5/255)。如要獲得更高的精度要求,應(yīng)采用12位、13位的A/D轉(zhuǎn)換器。數(shù)字電壓顯示可能有偏差,可以通過校正0809的基準(zhǔn)電壓來解決,或者用軟件編程來校正測量值。
本系統(tǒng)用單片機(jī)89C51構(gòu)成數(shù)字電壓表控制系統(tǒng),具有精度高、速度快、性能穩(wěn)定和電路簡單且工作可靠等特點,具有很好的使用價值。