『壹』 利用單片機設計數字電壓表,測量電壓范圍0~5V
可以用AD0809去做,也可以用STC12C5A60S2自帶AD轉換的晶元做模擬信號採集
『貳』 利用單片機AT89C51與ADC0808設計一個數字電壓表,能夠測量0~5V的直流電壓值,精度越高越好
本文介紹了用ADC0808集成電壓轉換晶元和AT89C51單片機設計製作的數字直流電壓表。在測量儀器中,電壓表是必須的,而且電壓表的好壞直接影響到測量精度。具有一個精度高、轉換速度快、性能穩定的電壓表才能符合測量的要求。為此,我們設計了數字電壓表,此作品主要由A/D0808轉換器和單片機AT89C51構成,A/D轉換器在單片機的控制下完成對模擬信號的採集和轉換功能,最後由數碼管顯示採集的電壓值。此設計通過調試完全滿足設計的指標要求。電路設計簡單,設計製作方便有較強的實用性。
關鍵詞:
ADC0808;單片機AT89C51;數字電壓表
Abstract:
In this paper, with ADC0808 voltage converter integrated chips and microcontroller designed AT89C51 the number of DC voltage table. In measuring instruments, voltage meter is necessary, and voltage meter will have a direct impact on measurement accuracy. With a high precision, the conversion speed and stable performance of the voltage meter to conform to the requirements of measurement. To this end, we design a digital voltage meter, this works mainly by A/D0808 converter and a microcontroller AT89C51, A / D converter under the control of the MCU to complete the acquisition and analog signal conversion functions, from the final Acquisition of the digital display voltage value. This design through debugging to fully meet the design requirements of the target. Circuit design simple, designed to facilitate a more practical.
Key words:
ADC0808; SCM AT89C51; Digital Voltmeter
目 錄
1.設計方案……………………………………………………………………………………1
2. 系統硬體設計……………………………………………………………………………2
2.1單片機晶元……………………………………………………………………………2
2.1.1.單片機晶元選擇……………………………………………………………2
2.1.2.單片機管腳說明……………………………………………………………3
2.2.A/D轉換器……………………………………………………………………………5
2.2.1.A/D轉換器晶元選擇………………………………………………………5
2.2.2.A/D轉換器管腳說明………………………………………………………6
2.3.電壓顯示電路…………………………………………………………………………7
3.系統程序設計……………………………………………………………………………………8
3.1.軟體總體框架設計……………………………………………………………………8
4.系統總圖及程序…………………………………………………………………………………9
5.參考文獻………………………………………………………………………………………………12
6.結束語……………………………………………………………………………………………………13
1.設計方案
在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經常。而且隨著電子技術的發展,更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量儀器。數字電壓表(Digital Voltmeter)簡稱DVM,它是採用數字化測量技術,把連續的模擬量(直流或交流輸入電壓)轉換成不連續、離散的數字形式並加以顯示的儀表。由於數字式儀器具有讀數准確方便、精度高、誤差小、靈敏度高和解析度高、測量速度快等特點而倍受青睞。本設計從各個角度分析了由單片機組成的數字電壓表的設計過程及各部分電路的組成及其原理,並且分析了程序如何驅動單片機進而使系統運行起來的原理及方法。框圖如下:
本設計主要分為兩部分:硬體電路及軟體程序。而硬體電路又大體可分為A/D轉換電路、LED顯示電路,各部分電路的設計及原理將會在硬體電路設計部分詳細介紹;程序的設計使用匯編語言編程,利用WAVE和PROTEUS 軟體對其編譯和模擬,詳細的設計演算法將會在程序設計部分詳細介紹。
2.系統硬體電路設計
2.1 單片機晶元
2.1.1.單片機晶元選擇
AT89C51簡介
AT89C51是一種帶4K位元組閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。由於將多功能8位CPU和閃爍存儲器組合在單個晶元中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖所示
圖2.1_1 AT89C51引腳圖
2.1.2.單片機管腳說明
主要特性:
?與MCS-51 兼容
?4K位元組可編程閃爍存儲器
?壽命:1000寫/擦循環
?數據保留時間:10年
?全靜態工作:0Hz-24Hz
?三級程序存儲器鎖定
?128×8位內部RAM
?32可編程I/O線
?兩個16位定時器/計數器
?5個中斷源
?可編程串列通道
?低功耗的閑置和掉電模式
?片內振盪器和時鍾電路
管腳接法說明:
VCC:供電電壓我們接+5V。
GND:接地。
P0口:在這個設計中我們將AT89C51做為BCD碼的輸出口與LED顯示器相連。由於P0口輸出驅動電路中沒有上拉電阻,所以我們在外接電路上接上拉電阻。
P1口:把AT89C51中的P1口與ADC0808的輸出端相連,做為數字信號的接收端。
P2口:我們把P2口做為位碼輸出口,以P2.0—2.3輸出位控線與LED顯示器相連.
P3口:利用P3.0,P3.1,P3.2,P3.4,P3.5,P3.6分別與ADC0808的OE,EOC,START/ALE,A,B,C端相連。
XTAL1 ,XTAL2:外接一振盪電路。
圖2.1.2 振盪電路
RST:在此端接一復位電路。
圖2.1.3 復位電路
2.2 A/D轉換器與單片機介面電路
2.2.1.A/D轉換器晶元選擇
A/D轉換器是模擬量輸入通道中的一個環節,單片機通過A/D轉換器把輸入模擬量變成數字量再處理。
隨著大規模集成電路的發展,目前不同廠家已經生產出了多種型號的A/D轉換器,以滿足不同應用場合的需要。如果按照轉換原理劃分,主要有3種類型,即雙積分式A/D轉換器、逐次逼近式A/D轉換器和並行式A/D轉換器。目前最常用的是雙積分和逐次逼近式。
雙積分式A/D轉換器具有抗干擾能力強、轉換精度高、價格便宜等優點,比如ICL71XX系列等,它們通常帶有自動較零、七段碼輸出等功能。與雙積分相比,逐次逼近式A/D轉換的轉換速度更快,而且精度更高,比如ADC0808、ADC0809等,它們通常具有8路模擬選通開關及地址解碼、鎖存電路等,它們可以與單片機系統連接,將數字量送入單片機進行分析和顯示。
本設計中,由於對精度沒做很大要求,我們採用逐次逼近式A/D轉換ADC0808,精度為0.02,所以四位LED顯示中的最後一位我們設置為V。
圖2.2.1 ADC0808引腳圖
2.2.2.A/D轉換器ADC0808的管腳說明:
IN0~IN7:為模擬量的輸入口,我們選取IN3口為入口,外接可變電阻,通過改變阻值來控制模擬量的輸入。
A、B、C:3位地址輸入,2個地址輸入端的不同組合選擇八路模擬量輸入。這里我們將A,B接高電平,C為低電平。
ALE:地址鎖存啟動信號,在ALE的上升沿,將A、B、C上的通道地址鎖存到內部的地址鎖存器。
D0~D7:八位數據輸出線,A/D轉換結果由這8根線傳送給單片機。
OE:允許輸出信號。當OE=1時,即為高電平,允許輸出鎖存器輸出數據。
START:啟動信號輸入端,START為正脈沖,其上升沿清除ADC0808的內部的各寄存器,其下降沿啟動A/D開始轉換。
EOC:轉換完成信號,當EOC上升為高電平時,表明內部A/D轉換已完成。
CLK:時鍾輸入信號,選用頻率500KHZ。
圖2.2.2 時鍾信號
2.3 電壓顯示電路:
設計中採用的是4段LED數碼管來顯示電壓值。LED具有耗電低、亮度高、視角大、線路簡單、耐震及壽命長等優點,它由4個發光二極體組成,其中3個按『8』字型排列,另一個發光二極體為圓點形狀,位於右下角,常用於顯示小數點。把4個發光二極體連在一起,公共端接高電平,叫共陽極接法,相反,公共端接低電平的叫共陰極接法,我們採用共陰極接法。當發光二極體導通時,相應的一段筆畫或點就發亮,從而形成不同的發光字元。其8段分別命名為dp g f e d c b a。例如,要顯示「0」,則dp g f e d c b a分別為:00111111B;若要顯示多個數字,只要讓若干個數碼管的位碼循環為高電平就可以了。
根據設計要求,顯示電路需要至少4位LED數碼管來顯示電壓值,我們再多加一位用來顯示電壓單位「V」,則有7位LED循環顯示。利用單片機的I/O口驅動LED數碼管的亮滅,設計中由P0口驅動LED的段碼顯示,即顯示字元,由P2口選擇LED位碼,即選擇點
亮哪位LED來顯示。
圖2.3 LED管
另外,一般I/O介面晶元的驅動能力是很有限的,在LED顯示器介面電路中,輸出口所能提供的驅動電流一般是不夠的尤其是設計中需要用到多位LED,此時就需要增加LED驅動電路。驅動電路有多種,常用的是TTL或MOS集成電路驅動器,在本設計中採用了ADC0808晶元驅動電路。
3.系統程序設計
3.1軟體總體框架設計
在編寫匯編語言時,先存放數碼管的段碼,再存放轉換後的數據,選取通道並設值.再將AD轉換結果轉換成BCD碼,通過換算LED上顯示.
再換算中,利用關系得到LED上個位,十位,百位的顯示,然後設置小數點:
開始
預設初值
選取通道3
啟動A/D轉換
否
是
數碼顯示子程序
延時顯示結果
結束
在系統上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然後再測。
4.系統總圖及程序
LED_0 EQU 30H;
LED_1 EQU 31H;
LED_2 EQU 32H;
LED_3 EQU 33H;
ADC EQU 35H;
ST BIT P3.2;
OE BIT P3.0;
EOC BIT P3.1;
ORG 00H;
START: MOV LED_0,#00H;
MOV LED_1,#00H;
MOV LED_2,#00H;
MOV LED_3,#00H;
MOV DPTR,#TABLE;
SETB P3.4;
SETB P3.5;
CLR P3.6;
WAIT: CLR ST;
SETB ST;
CLR ST;
JNB EOC,$;
SETB OE;
MOV ADC,P1;
CLR OE;
MOV A,ADC;
MOV B,#51;
DIV AB;
MOV LED_3,A;
MOV A,B;
MOV B,#5;
DIV AB;
MOV LED_2,A;
MOV LED_1,B;
LCALL DISP;
SJMP WAIT;
DISP: MOV A,#3EH;
CLR P2.3;
MOV P0,A;
LCALL DELAY;
SETB P2.3;
MOV A,LED_1;
MOVC A,@A+DPTR;
CLR P2.2;
MOV P0,A;
LCALL DELAY;
SETB P2.2;
MOV A,LED_2;
MOVC A,@A+DPTR;
CLR P2.1;
MOV P0,A;
LCALL DELAY;
SETB P2.1;
MOV A,LED_3;
MOVC A,@A+DPTR;
ORL A,#80H;
CLR P2.0;
MOV P0,A;
LCALL DELAY;
SETB P2.0;
RET;
DELAY: MOV R6,#10;
D1: MOV R7,#250;
DJNZ R7,$;
DJNZ R6,D1;
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,
END
數字直流電壓表的總圖
『叄』 二、設計一單片機系統檢測外部的兩個電壓信號(電壓為0V~5V),並通過數碼管顯示出來,具體要
斷的方式通知單片機進行數據讀入操作。數碼管利用P
『肆』 怎麼用單片機做一個智能蓄電池檢測的設計,檢測電壓,電流,內阻,容量,放電率。謝謝,請您給看下。
1、檢測電壓用A/D,2、檢測電流先用采樣電阻(0.1m高精度)把電流量轉化為電壓量再用A/D,3、內阻用單片機檢測兩步電壓(1、空載時電壓E 2、工作是的電壓U)r=(E-U)/I, 4、容量不好檢測(他是一個持續的量,就像一個杯子里的水一樣,想要知道杯里的水有多少?你得把他倒出來才知道。但應該可以更據蓄電池的時間——壓降特性粗略的估計),5、放電功率P=UI.
最後補充下鑒於蓄電池的電壓量程可能搞高於A/D的量程建議用運放電路構成比例放大電路,同理如果電流量程過低影響精度,也可採用運放電路。
『伍』 設計一台基於8051單片機的數字電壓表,能夠直接測量0-2V范圍內的直流電壓.
你是實際需要還是作業?如果是實際需要,不必用單片機,用LM7107可以檢測,同時可輸出給七段LED數碼管顯示。有關資料網上太多了。
『陸』 我現在想用單片機檢測0~100之間的電壓,AD是10bit的,精度應該是0.1V,硬體部分該如何設計
你既然是檢測AC0V-100V,就不能用穩壓管,而且,也不能用全橋進行整流。設計思路是,輸出電壓經過分壓電阻,精密運放整流濾波之後,得到的電壓在AD的采樣電壓范圍。可以參考萬用表的交流測量電路
『柒』 單片機設計家電狀態檢測電路
這個用C51顯示,顯然有點大材小用,搞復雜了。
如果只想看狀態顯示的話,簡便更好:
將每一版路家電的權電源插座或電源饋線撥出一根,套上磁環作電流檢測器,然後整流濾波,用單管放大一下,或用門電路驅動直接進LED顯示。
多簡便實用!呵呵。
『捌』 單片機電壓檢測
可以使用一個內部帶A/D的單片機來完成這個檢測。如果你對51單片機很熟,可以使用STC12C52XXAD系列單片機,它內部帶一個8位的AD轉換器,檢測電壓范圍0~5V,最多可以有8個通道,而且該晶元價格也不算貴,只要幾塊錢而已。
主晶元確定下來了,其它的就很簡單了,自己外圍搭個顯示電壓電路,再寫個AD採集及顯示的程序就OK了。
『玖』 基於單片機AT89c52兩路電壓巡檢儀的設計
電壓表主要是要看檢測電壓的范圍和是交流還是直流,兩路原理都一樣,如果范圍大可以用電阻分壓的原理,交流的話,可以先整流後采樣,經過計算就能准確得到對應的值,不懂可以問我,樂意為你解答。
『拾』 設計一個儀器利用單片機測電壓和電流
電壓直接用ADC取樣送給單片機
電流的話需要在測量點串一個
取樣電阻
,把取樣電阻兩端的電壓通過ADC送給單片機,通過
歐姆定律
計算得到電流值