數(shù)字電壓表是一種測(cè)量電信號(hào)電壓的電子儀器。它用于各種應(yīng)用,包括電子、電力系統(tǒng)和自動(dòng)化領(lǐng)域。在本文中,我們將討論使用8051微控制器的數(shù)字電壓表的實(shí)現(xiàn)。
8051微控制器是一種廣泛使用的微控制器,適用于各種應(yīng)用。它具有 4KB 片上 ROM、128 字節(jié)片上 RAM、32 個(gè) I/O 引腳和一個(gè) 16位定時(shí)器。微控制器可以用匯編語言或高級(jí)語言(如C)進(jìn)行編程。
該微控制器具有多種特性,非常適合用作數(shù)字電壓表,例如內(nèi)置ADC(模數(shù)轉(zhuǎn)換器)和8位定時(shí)器。
所需組件
要使用 8051 微控制器構(gòu)建數(shù)字電壓表,我們需要以下組件:
8051微控制器(AT89C51)。
LCD 顯示屏 –(7 段 4 位)。
模數(shù)轉(zhuǎn)換器(ADC0804 IC)。
電壓傳感器(25V)。
電池或直流適配器。
微控制器編程板。
晶體振蕩器 = 12MHz。
3 個(gè)電阻數(shù) = 10kΩ。
4 個(gè)電容器 = 2 個(gè) 33pF,1 個(gè) 150pF,第四個(gè)為 10μF/16V。
電路圖
電路概述:
使用8051微控制器的數(shù)字電壓表電路由多個(gè)組件組成,例如8051微控制器、LCD顯示器、分壓器網(wǎng)絡(luò)和一些其他無源組件。分壓器網(wǎng)絡(luò)用于將電壓降低到微控制器可以讀取的水平。
分壓器電路(ADC0804 IC)
分壓器電路用于將輸入信號(hào)的ADC范圍增加到25V或?qū)⑤斎腚妷航祲旱桨踩剑@可以通過微控制器進(jìn)行測(cè)量。電位器用于調(diào)節(jié)電壓表的電壓范圍。ADC用于將模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并可顯示在LCD顯示屏上。
分壓器電路由兩個(gè)電阻R1和R2組成,串聯(lián)連接。輸入電壓施加在R1和R2的串聯(lián)組合上,輸出電壓施加在R2上。R2與(R1+R2)之比決定了輸出電壓。我們可以通過改變R1和R2的值來調(diào)整輸出電壓范圍。
ADC通過將輸入電壓與基準(zhǔn)電壓進(jìn)行比較,將模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。ADC的分辨率取決于轉(zhuǎn)換器中使用的位數(shù)。例如,8位ADC可以測(cè)量0-5V的電壓范圍,每步分辨率為19.53
mV。
數(shù)字電壓表的軟件是用匯編語言或C語言編寫的。該軟件從ADC讀取電壓信號(hào),將其轉(zhuǎn)換為數(shù)字值,并將其顯示在LCD顯示屏上。該軟件還可以編程以實(shí)現(xiàn)其他功能,例如峰值電壓測(cè)量、電壓平均和電壓記錄。
總而言之,使用8051微控制器的數(shù)字電壓表是一種簡(jiǎn)單且經(jīng)濟(jì)高效的解決方案,用于測(cè)量各種應(yīng)用中的電壓信號(hào)。它需要一個(gè)分壓器電路、一個(gè)ADC、一個(gè)電位計(jì)和一個(gè)LCD顯示器。微控制器可以用匯編語言或C語言進(jìn)行編程,以實(shí)現(xiàn)其他功能。
電路工作:
分壓器網(wǎng)絡(luò)由兩個(gè)串聯(lián)電阻組成。其中一個(gè)電阻器是電位計(jì),可以調(diào)節(jié)以校準(zhǔn)電壓表。分壓器網(wǎng)絡(luò)的輸出連接到微控制器的模擬輸入引腳。微控制器使用其內(nèi)置ADC將模擬電壓轉(zhuǎn)換為數(shù)字值。
然后,數(shù)字值顯示在LCD顯示屏上。LCD顯示屏通過數(shù)字接口連接到微控制器。微控制器將數(shù)字值發(fā)送到LCD顯示屏,然后LCD顯示屏以可讀格式顯示。
微控制器的編程包括初始化ADC,讀取模擬電壓,將其轉(zhuǎn)換為數(shù)字值,然后將其發(fā)送到LCD顯示器。微控制器持續(xù)讀取電壓并更新顯示。
如何為數(shù)字電壓表編程微控制器AT89C51?
上述過程概述了測(cè)試已編程和構(gòu)建的電路的步驟(電路圖和項(xiàng)目代碼如下所述)。以下是比較和更詳細(xì)解釋的步驟:
將程序刻錄到 AT89C51 微控制器:此步驟涉及使用程序員將編譯的程序代碼傳輸?shù)轿⒖刂破鳌3绦虼a通常用編程語言(如 C
或匯編語言)編寫。程序代碼包含微控制器為執(zhí)行所需功能而執(zhí)行的指令。
連接電路:將程序刻錄到微控制器上后,可以使用電路圖作為指導(dǎo)組裝電路。該電路包括at89c51微控制器、電壓傳感器和顯示元件。應(yīng)小心連接,以確保電路接線正確且所有組件均正確供電。
連接電壓源:電壓源連接到電壓傳感器的輸入端。確保最大模擬輸入電壓小于25V DC以防止損壞電路非常重要。
連接數(shù)字萬用表:數(shù)字萬用表連接到電壓傳感器的輸入端子。萬用表用于驗(yàn)證LCD和萬用表上顯示的電壓讀數(shù)是否相同或非常相似。
打開電路板電源:電路的電源已打開。這為微控制器和電路的其他組件提供電源。
觀察顯示:LCD和數(shù)字萬用表顯示器應(yīng)顯示相同或非常相似的電壓讀數(shù)。這表明電壓表工作正常。
改變輸入電壓:如果可能,可以緩慢改變輸入電壓,以驗(yàn)證電壓表是否繼續(xù)顯示準(zhǔn)確的讀數(shù)。
關(guān)閉電路板電源:關(guān)閉電路的電源以關(guān)閉組件的電源。
編程代碼:
#include
#define lcd P3
#define dat P2
sbit rs=P1^6;
sbit e=P1^7;
void delay (int);
void display (unsigned char);
void cmd (unsigned char);
void init (void);
void string (char *);
void intro (void);
char i=0;
void delay (int d)
{
unsigned char i=0;
for(;d >0;d--)
{
for(i=250;i >0;i--);
for(i=248;i >0;i--);
}
}
void cmd (unsigned char c)
{
lcd=c;
rs=0;
e=1;
delay(10);
e=0;
}
void display (unsigned char c)
{
lcd=c;
rs=1;
e=1;
delay(10);
e=0;
}
void string (char *c)
{
while(*c)
{
display(*c++);
}
}
void init (void)
{
cmd(0x38);
cmd(0x01);
cmd(0x0c);
cmd(0x80);
}
void intro (void)
{
string(" Electronics ");
cmd(0xc0);
string(" Hub ");
delay(2000);
cmd(0x01);
string(" Digital ");
cmd(0xc0);
string(" Voltmeter ");
delay(2000);
cmd(0x01);
cmd(0x80);
}
void main()
{
unsigned int temp=0;
unsigned int temp1=0;
float val=0.0;
init();
intro();
dat=0xff;
while(1)
{
if(i==0)
{
string(" Volts - ");
i++;
}
val=dat*0.02; // 0.02 is resolution of adc
val=val/0.2; // 0.2 is nothing but (R2/(R1+R2)) resistor values in the voltage sensor
cmd(0x89);
if((val >=1.0) && (val< 10.0)) { display(' '); temp=val*1000; temp1=((temp/1000)+48); display(temp1); display('.'); temp1=(((temp/100)%10)+48); display(temp1); } else if((val >=10.0) && (val< 100.0))
{
temp=val*100;
temp1=((temp/1000)+48);
display(temp1);
temp1=(((temp/100)%10)+48);
display(temp1);
display('.');
temp1=(((temp/10)%10)+48);
display(temp1);
}
else
{
display(' ');
string("0.0");
}
delay(1000);
}
while(1);
}
使用8051微控制器的數(shù)字電壓表的優(yōu)點(diǎn):
1.數(shù)字電壓表比模擬電壓表更準(zhǔn)確,更精密。
- 微控制器可以編程為執(zhí)行除測(cè)量電壓之外的其他任務(wù)。
3.數(shù)字顯示易于閱讀和解釋。
4.電路簡(jiǎn)單,建造成本低廉。
5.電壓表可以使用電池供電,便于攜帶,易于現(xiàn)場(chǎng)使用。
局限性
該電路只能用于測(cè)量低壓應(yīng)用(高達(dá)25V)。
模擬電壓的輸入信號(hào)應(yīng)在0V至5V之間。
該系統(tǒng)在任何給定時(shí)間只能測(cè)量單個(gè)模擬輸入值。
-
微控制器
+關(guān)注
關(guān)注
48文章
7926瀏覽量
153928 -
8051
+關(guān)注
關(guān)注
3文章
311瀏覽量
52204 -
數(shù)字電壓表
+關(guān)注
關(guān)注
4文章
189瀏覽量
33508 -
電子儀器
+關(guān)注
關(guān)注
2文章
1342瀏覽量
23610
發(fā)布評(píng)論請(qǐng)先 登錄
EDA數(shù)字電壓表的研究和設(shè)計(jì)應(yīng)用
單片機(jī)的數(shù)字電壓表
采用CPLD實(shí)現(xiàn)的智能數(shù)字電壓表設(shè)計(jì)
直流數(shù)字電壓表設(shè)計(jì) 精選資料推薦
數(shù)字電壓表的VHDL設(shè)計(jì)與實(shí)現(xiàn)

數(shù)字電壓表的設(shè)計(jì)

基于Proteus的數(shù)字電壓表仿真設(shè)計(jì)

電壓表protues仿真 基于51數(shù)字電壓表仿真設(shè)計(jì) 電壓表程序
數(shù)字電壓表的設(shè)計(jì)方案匯總(六款數(shù)字電壓表的設(shè)計(jì)原理圖詳解)

基于LabVIEW8.2的虛擬數(shù)字電壓表的設(shè)計(jì)和實(shí)現(xiàn)

直流數(shù)字電壓表設(shè)計(jì)

評(píng)論