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