使用8051微控制器的數(shù)字電壓表
在這個(gè)項(xiàng)目中,我將展示如何使用8051單片機(jī)設(shè)計(jì)一個(gè)數(shù)字電壓表,并解釋其工作原理。電壓表是一種測(cè)量?jī)x器,用于測(cè)量電網(wǎng)中兩點(diǎn)之間的電壓差。一般來(lái)說(shuō),有兩種類型的電壓表 - 一個(gè)是模擬電壓表,另一個(gè)是數(shù)字電壓表。
本文引用地址:http://www.ex-cimer.com/article/202304/445266.htm在模擬電壓表中,指針在刻度上移動(dòng)以表示電壓。數(shù)字電壓表在模數(shù)轉(zhuǎn)換器的幫助下,直接以數(shù)字顯示電壓。這篇文章解釋了如何用兩種方法設(shè)計(jì)數(shù)字電壓表:1)使用8051單片機(jī);2)使用IC L7017。
使用8051單片機(jī)和電壓傳感器的數(shù)字電壓表 圖片1
使用8051單片機(jī)的數(shù)字電壓表
這個(gè)項(xiàng)目測(cè)量0V到25V的輸入電壓。在這里,輸入電壓應(yīng)該是直流電壓,以便在LCD上獲得準(zhǔn)確的輸出。如果你應(yīng)用交流電壓作為輸入,那么在LCD上會(huì)看到連續(xù)運(yùn)行的數(shù)字,因?yàn)榻涣麟妷翰粩嘧兓?/p>
這個(gè)項(xiàng)目的主要部件是8051微控制器,一個(gè)電壓傳感器模塊和一個(gè)ADC IC ADC0804。在這個(gè)項(xiàng)目中,我們使用模擬到數(shù)字的轉(zhuǎn)換過(guò)程來(lái)顯示電壓。
模擬到數(shù)字的轉(zhuǎn)換
在現(xiàn)實(shí)世界中,我們大多發(fā)現(xiàn)模擬數(shù)據(jù)。為了使用數(shù)字系統(tǒng)處理這些數(shù)據(jù),我們需要將模擬數(shù)據(jù)轉(zhuǎn)換為數(shù)字,這樣微處理器或微控制器就能理解和處理這些數(shù)據(jù)。
物理量與數(shù)字系統(tǒng)的銜接
換能器: 換能器或傳感器用于將物理量轉(zhuǎn)換為電能。光敏電阻、溫度傳感器、濕度傳感器、氣體傳感器等都是傳感器的例子。
ADC(模擬到數(shù)字轉(zhuǎn)換器): ADC將輸入的電氣電壓轉(zhuǎn)換為數(shù)字值。
數(shù)字系統(tǒng):該系統(tǒng)讀取輸入的數(shù)字?jǐn)?shù)據(jù),并在LCD上顯示物理量,以便理解。
這里的ADC IC根據(jù)輸入的電電壓生成輸出的數(shù)字值。8051微控制器讀取這個(gè)數(shù)字值并顯示在LCD上。
使用8051單片機(jī)的數(shù)字電壓表電路圖
AT89C51微控制器
ADC0804集成電路
25V電壓傳感器
AT89C51編程板
可變電阻(用于演示程序)
直流適配器或電池
使用8051單片機(jī)的數(shù)字電壓表電路設(shè)計(jì)
在上述電路中,模數(shù)轉(zhuǎn)換器IC的數(shù)據(jù)位被連接到PORT2。LCD數(shù)據(jù)引腳連接到控制器的POTR3,控制引腳RS和EN分別連接到P1.6和P1.7。
ADC0804
這是一個(gè)8位的模數(shù)轉(zhuǎn)換器。該芯片使用逐次逼近法將模擬值轉(zhuǎn)換為數(shù)字值。它只能接受一個(gè)模擬數(shù)據(jù)作為輸入。這個(gè)IC的步長(zhǎng)是通過(guò)改變引腳9的參考電壓來(lái)改變的。如果這個(gè)引腳沒(méi)有連接,VCC將是參考電壓。
當(dāng)步長(zhǎng)為5V時(shí),輸入電壓每上升19.53mV,輸出就增加1個(gè)值。該芯片的轉(zhuǎn)換時(shí)間取決于時(shí)鐘源。
ADC特點(diǎn)
0到5V的模擬輸入電壓。
內(nèi)置的時(shí)鐘發(fā)生器。
差分式模擬輸入。
可調(diào)節(jié)的參考電壓。
下表顯示了不同參考電壓的不同步長(zhǎng)。
在上面的電路圖中,第9針(Vref/2)是開(kāi)放的,所以輸入電壓跨度可以是0到5V。
步長(zhǎng) = Vref/(2 pow(n))
其中n是分辨率。對(duì)于ADC0804,分辨率n=8。數(shù)字輸出可以用以下公式來(lái)計(jì)算
Dout = Vin/stepsize。
Vin - 模擬輸入電壓
例如,假設(shè)模擬輸入電壓為4V,那么數(shù)字輸出為Dout=4/19.53mV=204。
將模擬輸入轉(zhuǎn)換為數(shù)字輸入的步驟
從PORT2讀取ADC值。
#define dat P2
val=dat*0.02;
乘以100后,得到一個(gè)三位數(shù)的正整數(shù)值。
val1=val*100;
分開(kāi)各個(gè)數(shù)字并在LCD上打印,包括小數(shù)點(diǎn)。
temp=(((val1/100)%10)+48);
display(temp);
display('.');
temp=(((val1/10)%10)+48);
display(temp);
temp=((val1%10)+48);
display(temp);
電壓傳感器
電壓傳感器模塊是一個(gè)簡(jiǎn)單的分壓器網(wǎng)絡(luò),將ADC的模擬輸入范圍增加到25V左右。
將電壓傳感器與Arduino的電壓傳感器引腳連接起來(lái)
代碼
數(shù)字電壓表電路如何使用8051單片機(jī)工作?
首先將程序刻錄到at89c51單片機(jī)上。
現(xiàn)在按照電路圖給出連接。
在電壓傳感器的輸入端連接一個(gè)電池或任何電壓源。
確保最大的模擬輸入電壓應(yīng)小于25V DC。
在電壓傳感器的輸入端連接一個(gè)數(shù)字多用表。
現(xiàn)在打開(kāi)電路板的電源。
現(xiàn)在觀察LCD和數(shù)字多用表,兩者都顯示相同的電壓(或非常相似的電壓)。
如果可能的話,試著慢慢改變模擬輸入電壓?,F(xiàn)在你可以觀察到萬(wàn)用表和LCD顯示相同的電壓,這樣我們就可以說(shuō)電壓表工作正常了。
關(guān)閉電路板上的電源。
數(shù)字電壓表電路應(yīng)用
該系統(tǒng)用于測(cè)量低電壓應(yīng)用中的電壓。
用于測(cè)量玩具電池。
我們可以用這個(gè)系統(tǒng)測(cè)量物理量,如溫度、濕度、氣體等,只需稍加修改。
數(shù)字電壓表電路的局限性
輸入的模擬電壓范圍應(yīng)該是0到5V。
使用這個(gè)系統(tǒng),我們一次只能測(cè)量一個(gè)模擬輸入值。
使用ICL7107的數(shù)字電壓表電路
電壓表也可以在不使用任何微控制器的情況下設(shè)計(jì)。以下是使用L7017集成電路的電壓表電路
在這里,我們?cè)O(shè)計(jì)了一個(gè)模擬數(shù)字轉(zhuǎn)換器,作為數(shù)字電壓表使用,該轉(zhuǎn)換器為低功耗的三位半A/D轉(zhuǎn)換器ICL7107,具有內(nèi)部7段解碼器,顯示驅(qū)動(dòng)器,參考和時(shí)鐘。
一個(gè)優(yōu)點(diǎn)是這個(gè)IC可以直接驅(qū)動(dòng)非復(fù)用的七段顯示器,而不需要任何外部解碼電路。該電路可以在200mV到2V的范圍內(nèi)測(cè)量電壓,間隔為0.001V。
電路背后的原理
這個(gè)電路是基于使用ICL7107作為模擬到數(shù)字轉(zhuǎn)換器的原理。整個(gè)操作分為兩個(gè)階段--模數(shù)轉(zhuǎn)換和解碼。
模擬到數(shù)字的轉(zhuǎn)換是通過(guò)積分和參考積分的過(guò)程完成的。換句話說(shuō),首先對(duì)輸入信號(hào)進(jìn)行積分,使積分器的輸出成為斜率信號(hào),然后對(duì)一個(gè)相反極性的參考電壓進(jìn)行積分,使積分器的輸出回到零。
然后用顯示解碼器對(duì)得到的數(shù)字代碼進(jìn)行解碼,以驅(qū)動(dòng)顯示單元。
使用ICL7107的數(shù)字電壓表電路圖
如何設(shè)計(jì)數(shù)字電壓表電路?
設(shè)計(jì)電路需要適當(dāng)?shù)剡x擇以下的元件:
振蕩電路元件的選擇: 對(duì)于48KHz的典型振蕩頻率,振蕩電阻被選擇為100K左右,電容為100pF左右。
參考電容: 參考電容器的值被選擇為0.1uF和1uF之間。這里我們選擇一個(gè)0.5uF的電解質(zhì)電容。
自動(dòng)調(diào)零電容器: 自動(dòng)調(diào)零電容器的選擇要使其值在0.01uF和1uF之間。這里我們選擇一個(gè)0.1uF的電容。
積分電容: 積分電容構(gòu)成了積分電路的一個(gè)重要部分。其值由積分周期t、最佳積分電流I和積分電壓Vint決定。對(duì)于83mSec的時(shí)間周期,4uA的電流和2V的電壓,電容的價(jià)值被認(rèn)為是大約0.16uF。這里選擇一個(gè)0.22uF的電容。
積分電阻: 這個(gè)電阻的值是由滿刻度模擬輸入電壓和最佳積分電流決定的。我們選擇一個(gè)500K的電阻,滿刻度的輸入電壓為2V。
如何操作數(shù)字電壓表電路?
該IC由一個(gè)+/-5V的雙電源供電。一旦電路通電,通過(guò)調(diào)整參考電阻來(lái)設(shè)置參考信號(hào)。參考電壓需要約為輸入電壓的一半。振蕩元件--電阻和電容決定了該設(shè)備的振蕩或時(shí)鐘頻率。
參考電容器被充電到參考電壓。然后,一個(gè)反饋回路被關(guān)閉,為自動(dòng)調(diào)零電容器充電,以便補(bǔ)償電壓的任何波動(dòng)。隨后,轉(zhuǎn)換器將輸入端的差分電壓在一個(gè)固定的時(shí)間內(nèi)進(jìn)行積分,這樣積分器的輸出就是一個(gè)斜率信號(hào)。
然后,一個(gè)已知的參考電壓被施加到積分器的輸入端,并允許其斜升,直到積分器的輸出變?yōu)榱?。輸出回到零的時(shí)間與輸入信號(hào)成正比,數(shù)字讀數(shù)為::
顯示計(jì)數(shù)=(Vin/Vref)*1000。
下一個(gè)過(guò)程包括對(duì)數(shù)字計(jì)數(shù)進(jìn)行解碼,以產(chǎn)生一個(gè)七段兼容信號(hào),從而驅(qū)動(dòng)顯示器。然后,數(shù)字輸出被顯示在復(fù)用的7段顯示器上。
數(shù)字電壓表電路的應(yīng)用
該電路可用于數(shù)字萬(wàn)用表,提供測(cè)量電壓的數(shù)字讀數(shù)。
它可以用來(lái)測(cè)量交流和直流電壓。
它可以用來(lái)測(cè)量物理量,如壓力、溫度、使用傳感器電路和信號(hào)調(diào)節(jié)電路的壓力。
它可以用于需要高精度和高分辨率的應(yīng)用中。
數(shù)字電壓表電路的局限性
它只能在低范圍內(nèi)測(cè)量電壓。
使用的集成電路是CMOS器件,具有高度的靜態(tài)性。
正負(fù)輸入電壓的參考電壓不同會(huì)導(dǎo)致翻轉(zhuǎn)誤差,即共模誤差。
使用2V的滿刻度負(fù)輸入電壓有時(shí)會(huì)導(dǎo)致積分器的輸出飽和。
LED驅(qū)動(dòng)器的內(nèi)部發(fā)熱會(huì)導(dǎo)致性能下降。
參考溫度系數(shù)、內(nèi)部芯片耗散和封裝熱阻往往會(huì)增加噪聲水平。
評(píng)論