<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于微控制器的數字電壓表設計方案,使用8051微控制器的數字電壓表的實現方法

科技觀察員 ? 來源:electricaltechnology ? 作者:electricaltechnology ? 2023-07-18 16:07 ? 次閱讀

數字電壓表是一種測量電信號電壓的電子儀器。它用于各種應用,包括電子、電力系統和自動化領域。在本文中,我們將討論使用8051微控制器的數字電壓表的實現。

8051微控制器是一種廣泛使用的微控制器,適用于各種應用。它具有 4KB 片上 ROM、128 字節片上 RAM、32 個 I/O 引腳和一個 16位定時器。微控制器可以用匯編語言或高級語言(如C)進行編程。

該微控制器具有多種特性,非常適合用作數字電壓表,例如內置ADC模數轉換器)和8位定時器。

所需組件

要使用 8051 微控制器構建數字電壓表,我們需要以下組件:

8051微控制器(AT89C51)。

LCD 顯示屏 –(7 段 4 位)。

模數轉換器(ADC0804 IC)。

電壓傳感器(25V)。

電池或直流適配器。

微控制器編程板。

晶體振蕩器 = 12MHz。

3 個電阻數 = 10kΩ。

4 個電容器 = 2 個 33pF,1 個 150pF,第四個為 10μF/16V。

電路圖

1.png

電路概述:

使用8051微控制器的數字電壓表電路由多個組件組成,例如8051微控制器、LCD顯示器、分壓器網絡和一些其他無源組件。分壓器網絡用于將電壓降低到微控制器可以讀取的水平。

分壓器電路(ADC0804 IC)

分壓器電路用于將輸入信號的ADC范圍增加到25V或將輸入電壓降壓到安全水平,這可以通過微控制器進行測量。電位器用于調節電壓表的電壓范圍。ADC用于將模擬電壓信號轉換為數字信號,并可顯示在LCD顯示屏上。

分壓器電路由兩個電阻R1和R2組成,串聯連接。輸入電壓施加在R1和R2的串聯組合上,輸出電壓施加在R2上。R2與(R1+R2)之比決定了輸出電壓。我們可以通過改變R1和R2的值來調整輸出電壓范圍。

ADC通過將輸入電壓與基準電壓進行比較,將模擬電壓信號轉換為數字信號。ADC的分辨率取決于轉換器中使用的位數。例如,8位ADC可以測量0-5V的電壓范圍,每步分辨率為19.53
mV。

數字電壓表的軟件是用匯編語言或C語言編寫的。該軟件從ADC讀取電壓信號,將其轉換為數字值,并將其顯示在LCD顯示屏上。該軟件還可以編程以實現其他功能,例如峰值電壓測量、電壓平均和電壓記錄。

總而言之,使用8051微控制器的數字電壓表是一種簡單且經濟高效的解決方案,用于測量各種應用中的電壓信號。它需要一個分壓器電路、一個ADC、一個電位計和一個LCD顯示器。微控制器可以用匯編語言或C語言進行編程,以實現其他功能。

電路工作:

分壓器網絡由兩個串聯電阻組成。其中一個電阻器是電位計,可以調節以校準電壓表。分壓器網絡的輸出連接到微控制器的模擬輸入引腳。微控制器使用其內置ADC將模擬電壓轉換為數字值。

然后,數字值顯示在LCD顯示屏上。LCD顯示屏通過數字接口連接到微控制器。微控制器將數字值發送到LCD顯示屏,然后LCD顯示屏以可讀格式顯示。

微控制器的編程包括初始化ADC,讀取模擬電壓,將其轉換為數字值,然后將其發送到LCD顯示器。微控制器持續讀取電壓并更新顯示。

如何為數字電壓表編程微控制器AT89C51?

上述過程概述了測試已編程和構建的電路的步驟(電路圖和項目代碼如下所述)。以下是比較和更詳細解釋的步驟:

將程序刻錄到 AT89C51 微控制器:此步驟涉及使用程序員將編譯的程序代碼傳輸到微控制器。程序代碼通常用編程語言(如 C
或匯編語言)編寫。程序代碼包含微控制器為執行所需功能而執行的指令。

連接電路:將程序刻錄到微控制器上后,可以使用電路圖作為指導組裝電路。該電路包括at89c51微控制器、電壓傳感器和顯示元件。應小心連接,以確保電路接線正確且所有組件均正確供電。

連接電壓源:電壓源連接到電壓傳感器的輸入端。確保最大模擬輸入電壓小于25V DC以防止損壞電路非常重要。

連接數字萬用表:數字萬用表連接到電壓傳感器的輸入端子。萬用表用于驗證LCD和萬用表上顯示的電壓讀數是否相同或非常相似。

打開電路板電源:電路的電源已打開。這為微控制器和電路的其他組件提供電源。

觀察顯示:LCD和數字萬用表顯示器應顯示相同或非常相似的電壓讀數。這表明電壓表工作正常。

改變輸入電壓:如果可能,可以緩慢改變輸入電壓,以驗證電壓表是否繼續顯示準確的讀數。

關閉電路板電源:關閉電路的電源以關閉組件的電源。
編程代碼:

#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微控制器的數字電壓表的優點:

1.數字電壓表比模擬電壓表更準確,更精密。

  1. 微控制器可以編程為執行除測量電壓之外的其他任務。

3.數字顯示易于閱讀和解釋。

4.電路簡單,建造成本低廉。

5.電壓表可以使用電池供電,便于攜帶,易于現場使用。

局限性

該電路只能用于測量低壓應用(高達25V)。

模擬電壓的輸入信號應在0V至5V之間。

該系統在任何給定時間只能測量單個模擬輸入值。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6868

    瀏覽量

    148299
  • 8051
    +關注

    關注

    3

    文章

    309

    瀏覽量

    51043
  • 數字電壓表
    +關注

    關注

    4

    文章

    182

    瀏覽量

    32850
  • 電子儀器
    +關注

    關注

    2

    文章

    1338

    瀏覽量

    22901
收藏 人收藏

    評論

    相關推薦

    簡易數字電壓表的設計

    簡易數字電壓表的設計簡易數字電壓表可以測量0~5CV的8路輸入電壓值,并在4位LED數碼管上輪流顯示或單路選擇顯示。測量最小分辨率為0.01
    發表于 12-14 17:21

    EDA數字電壓表的研究和設計應用

    電壓表  數字電子系統通常由ASIC芯片和外圍硬件設備組成,具有靈活性不強等缺陷。如圖1所示的數字電壓表,A/D轉換
    發表于 10-26 15:43

    數字電壓表

    這個是數字電壓表的設計(源程序是匯編語言)
    發表于 01-16 17:08

    數字電壓表

    請問AT89C51等單片機所制做成的數字電壓表與ICL7107所制做成的數字電壓表相比有什么優點?
    發表于 05-22 15:32

    數字電壓表仿真

    數字電壓表仿真
    發表于 05-31 22:27

    簡易數字電壓表的設計

    設計采用計數 74LS160、 74LS161、 V-F轉換 LM331、集成運算放大器、 555 定時、石英晶體震蕩 和共陽極數碼管為主要硬件,分析了
    發表于 04-28 15:10

    單片機的數字電壓表

    以單片機為核心控制器設計一個能夠測量直流電壓數字電壓表,具體要求如下:1.可實現對至少四路直流電壓
    發表于 07-07 11:08

    采用CPLD實現的智能數字電壓表設計

    求一款以CPLD為控制核心的16位高精度數字電壓表設計方案
    發表于 04-13 06:59

    請問如何利用CPLD實現智能數字電壓表的設計?

    如何利用CPLD實現智能數字電壓表的設計?數字電壓表系統是如何組成的?其工作原理是什么?如何實現
    發表于 04-13 06:07

    求一種數字電壓表設計方案

    求一種以CPLD為核心處理電路的數字電壓表設計方案
    發表于 04-28 07:14

    怎樣去設計新型數字電壓表?

    新型數字電壓表的工作原理是什么?怎樣去設計新型數字電壓表?
    發表于 04-28 06:46

    怎么利用FPGA實現數字電壓表的設計

    怎么利用FPGA實現數字電壓表的設計?
    發表于 05-06 10:19

    直流數字電壓表設計程序

    直流數字電壓表設計程序,積分式直流數字電壓表By SCU Team任務在不采用專用A/D轉換芯片的前提下,設計并制作積分型直流
    發表于 07-22 08:33

    直流數字電壓表設計 精選資料推薦

    分辨率0.01V,誤差在0.05V范圍內。關鍵詞:數字電壓表;STC15F2K60S2;共陰數碼管目錄一、數字電壓表簡介5二、數字
    發表于 07-28 09:42

    基于Proteus的數字電壓表仿真設計

    為了提高電壓表的測量精度和性價比,提出了一種以AT89C51單片機為控制核心的,基于Proteus仿真技術的數字電壓表設計方案。詳細介紹了
    發表于 01-30 14:24 ?337次下載
    基于Proteus的<b class='flag-5'>數字</b><b class='flag-5'>電壓表</b>仿真設計
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>