楊凌職業技術學院機電工程分院 劉 紅
智能數字電壓表的設計
楊凌職業技術學院機電工程分院 劉 紅
數字電壓表在電測領域有著非常廣泛的使用,本文介紹了一種智能數字電壓表,以AT89S52單片機為核心,采用ADC0808芯片進行A/D轉換,4位LED數碼管顯示數據,實現了數字電壓表的功能,具有較高的應用價值。
單片機;萬用表;AD轉換
數字電壓表采用數字化測量技術,可以將模擬量轉換成數字量并通過顯示器顯示出來,具有使用簡便、數據準確、抗干擾能力強等特點,是電測領域有著非常廣泛的應用。本文介紹一種以單片機為核心處理器的智能數字電壓表。
單片機采用Atmel 公司生產的AT89S52,其典型工作頻率12MHz,具有8K字節Flash存儲器、32個I/0口、三個16位定時器/計數器等資源,指令和引腳上與51單片機兼容。AD轉換芯片采用ADC0808,該芯片是CMOS型,以逐次逼近原理進行模/數轉換的器件,內部包含8路模擬開關、地址鎖存、譯碼器、比較器等資源[1-3],數據輸出端與P0口的倒序順序,這里只使用通道IN0,所以將A、B、C接地,直接選中通道IN0。顯示電路采用LED型4位數碼管,隨著變阻器的滑動,被測電壓時發生改變時,數碼管上顯示0-5V的電壓值。電路如圖1所示。

圖1 硬件電路圖

圖2 主程序流程圖
ADC0808沒有時鐘端,需外接時鐘信號,采用定時器中斷的方式,在中斷服務程序中對P3.0取反,從而產生時鐘脈沖信號。轉換結束信號端EOC經一反相器后與外部中斷0連接,所以數據傳送采用中斷方式。軟件整體設計思路是以動態顯示作為主程序,將轉換完成的數據轉換后顯示出來。主程序流程圖如圖2所示,外部中斷0的中斷服務程序如圖3所示。
部分程序如下:
MAIN: SETB IT0;開中斷
SETB EA
SETB EX0
MOV TMOD,#02H ;定時器初始化,采用工作方式2
MOV TH0,#245
MOV TL0,#245
SETB ET0
SETB TR0;啟動定時器
MOVX @DPTR,A ;啟動A/D轉換LOOP: MOV A,#00H;顯示第一位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,#00H
MOV P1,A
CLR P2.0
LCALL DELAY
SETB P2.0
MOV A,R0;轉換后的數據除以51
MOV B,#51
DIV AB
MOVC A,@A+DPTR ;顯示第二位
MOV P1,#00H
MOV P1,A
SETB P1.7
CLR P2.1
LCALL DELAY
SETB P2.1
MOV A,B;余數除以5
MOV B,#5
DIV AB
MOVC A,@A+DPTR ;顯示第三位
MOV P1,#00H
MOV P1,A
CLR P2.2
LCALL DELAY
SETB P2.2
MOV A,B;顯示第四位
MOVC A,@A+DPTR
MOV P1,#00H
MOV P1,A
CLR P2.3
LCALL DELAY
SETB P2.3
LJMP LOOP
本設計以單片機為控制核心,以ADC0808為模/數轉換芯片,介紹了數字電壓表的硬件電路設計及軟件程序的設計。該電壓表轉換速度快、測量準確、性能可靠、結構簡單、外接元件少等優點,具有較高的實用價值。
[1]趙靜,劉少聰,丁浩,等.基于單片機的數字電壓表設計[J].數字技術與應用,2011,06:121-121,125.
[2]陳高峰,熊剛,胡啟迪.單片機原理及應用[M].北京:北京大學出版社,2012.
[3]王瑾.基于Proteus的數字電壓表仿真設計[J].電子設計工程,2013,21(01):122-124,128.
劉紅(1970—),女,陜西漢中人,實驗師,研究方向:電氣自動化技術。