跪求高人簡易數字電壓表電路圖

2021-03-19 18:20:02 字數 6101 閱讀 2503

1樓:匿名使用者

可用l7107製作三位半數字電壓表.

l7107-7.00元1只.

參考電子報93下181頁.

求一簡易數字電壓表的電路原理圖

2樓:匿名使用者

28.    數字電壓表

1. 實驗任務

利用微控制器at89s51與adc0809設計一個數字電壓表,能夠測量0-5v之間的直流電壓值,四位數碼顯示,但要求使用的元器件數目最少。

2. 電路原理圖

圖1.28.1

3. 系統板上硬體連線

a)         把「微控制器系統」區域中的p1.0-p1.7與「動態數碼顯示」區域中的abcdefgh埠用8芯排線連線。

b)        把「微控制器系統」區域中的p2.0-p2.7與「動態數碼顯示」區域中的s1s2s3s4s5s6s7s8埠用8芯排線連線。

c)        把「微控制器系統」區域中的p3.0與「模數轉換模組」區域中的st端子用導線相連線。

d)        把「微控制器系統」區域中的p3.1與「模數轉換模組」區域中的oe端子用導線相連線。

e)         把「微控制器系統」區域中的p3.2與「模數轉換模組」區域中的eoc端子用導線相連線。

f)         把「微控制器系統」區域中的p3.3與「模數轉換模組」區域中的clk端子用導線相連線。

g)        把「模數轉換模組」區域中的a2a1a0端子用導線連線到「電源模組」區域中的gnd端子上。

h)        把「模數轉換模組」區域中的in0端子用導線連線到「三路可調電壓模組」區域中的vr1端子上。

i)          把「微控制器系統」區域中的p0.0-p0.7用8芯排線連線到「模數轉換模組」區域中的d0d1d2d3d4d5d6d7端子上。

4. 程式設計內容

i.              由於adc0809在進行a/d轉換時需要有clk訊號,而此時的adc0809的clk是接在at89s51微控制器的p3.3埠上,也就是要求從p3.

3輸出clk訊號供adc0809使用。因此產生clk訊號的方法就得用軟體來產生了。

ii.              由於adc0809的參考電壓vref=vcc,所以轉換之後的資料要經過資料處理,在數碼管上顯示出電壓值。實際顯示的電壓值 (d/256*vref)

5. 彙編源程式

adc0809中文資料

adc0809是帶有8位a/d轉換器、8路多路開關以及微處理機相容的控制邏輯的cmos元件。它是逐次逼近式a/d轉換器,可以和微控制器直接介面。

(1)adc0809的內部邏輯結構

由下圖可知,adc0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個a/d轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8 路模擬量分時輸入,共用a/d轉換器進行轉換。三態輸出鎖器用於鎖存a/d轉換完的數字量,當oe端為高電平時,才可以從三態輸出鎖存器取走轉換完的數 據。

(2). adc0809引腳結構

adc0809各腳功能如下:

d7-d0:8位數字量輸出引腳。

in0-in7:8位模擬量輸入引腳。

vcc:+5v工作電壓。

gnd:地。

ref(+):參考電壓正端。

ref(-):參考電壓負端。

start:a/d轉換啟動訊號輸入端。

ale:地址鎖存允許訊號輸入端。

(以上兩種訊號用於啟動a/d轉換).

eoc:轉換結束訊號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。

oe:輸出允許控制端,用以開啟三態資料輸出鎖存器。

clk:時鐘訊號輸入端(一般為500khz)。

a、b、c:地址輸入線。

adc0809對輸入模擬量要求:訊號單極性,電壓範圍是0-5v,若訊號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加取樣保持電路。

地址輸入和控制線:4條

ale為地址鎖存允許輸入線,高電平有效。當ale線為高電平時,地址鎖存與譯碼器將a,b,c三條地址線的地址訊號進行鎖存,經譯碼後被選中的通道的模 擬量進轉換器進行轉換。a,b和c為地址輸入線,用於選通in0-in7上的一路模擬量輸入。

通道選擇表如下表所示。

c b a 選擇的通道

0 0 0 in0

0 0 1 in1

0 1 0 in2

0 1 1 in3

1 0 0 in4

1 0 1 in5

1 1 0 in6

1 1 1 in7

數字量輸出及控制線:11條

st為轉換啟動訊號。當st上跳沿時,所有內部暫存器清零;下跳沿時,開始進行a/d轉換;在轉換期間,st應保持低電平。eoc為轉換結束訊號。

當 eoc為高電平時,表明轉換結束;否則,表明正在進行a/d轉換。oe為輸出允許訊號,用於控制三條輸出鎖存器向微控制器輸出轉換得到的資料。oe=1,輸 出轉換得到的資料;oe=0,輸出資料線呈高阻狀態。

d7-d0為數字量輸出線。

clk為時鐘輸入訊號線。因adc0809的內部沒有時鐘電路,所需時鐘訊號必須由外界提供,通常使用頻率為500khz,

vref(+),vref(-)為參考電壓輸入。

2. adc0809應用說明

(1). adc0809內部帶有輸出鎖存器,可以與at89s51微控制器直接相連。

(2). 初始化時,使st和oe訊號全為低電平。

(3). 送要轉換的哪一通道的地址到a,b,c埠上。

(4). 在st端給出一個至少有100ns寬的正脈衝訊號。

(5). 是否轉換完畢,我們根據eoc訊號來判斷。

(6). 當eoc變為高電平時,這時給oe為高電平,轉換的資料就輸出給微控制器了。

3. 實驗任務

如下圖所示,從adc0809的通道in3輸入0-5v之間的模擬量,通過adc0809轉換成數字量在數碼管上以十進位制形成顯示出來。adc0809的vref接+5v電壓。

4. adc0809應用電路原理圖

6. 程式設計內容

(1). 進行a/d轉換時,採用查詢eoc的標誌訊號來檢測a/d轉換是否完畢,若完畢則把資料通過p0埠讀入,經過資料處理之後在數碼管上顯示。

(2). 進行a/d轉換之前,要啟動轉換的方法:

abc=110選擇第三通道

st=0,st=1,st=0產生啟動轉換的正脈衝訊號 .

c語言源程式

#include

unsigned char code dispbitcode=;

unsigned char code dispcode=;

unsigned char dispbuf[8]=;

unsigned char dispcount;

sbit st="p3"^0;

sbit oe="p3"^1;

sbit eoc="p3"^2;

unsigned char channel="0xbc";//in3

unsigned char getdata;

void main(void)

}void t0(void) interrupt 1 using 0

dispbuf[i]=temp;

st=1;

st=0;

} }} void t0(void) interrupt 1 using 0

void t1(void) interrupt 3 using 0

dispcount++;

if(dispcount==8)  }

求數字電壓表製作電路圖

3樓:匿名使用者

去51dz網購買套件,有詳細的製作資料。是學習實踐的好幫手。

求一個數字電壓表的原理圖

4樓:匿名使用者

基於pc的數字電壓表設計

本文運用at89s51和ad678進行a/d轉換,根據資料採集的工作原理,設計實現數字電壓表,最後完成微控制器與pc的資料通訊,傳送所測量的電壓值

數字電壓表的設計和開發,已經有多種型別和款式。傳統的數字電壓表各有特點,它們適合在現場做手工測量,要完成遠端測量並要對測量資料做進一步分析處理,傳統數字電壓表是無法完成的。然而基於pc通訊的數字電壓表,既可以完成測量資料的傳遞,又可藉助pc,做測量資料的處理。

所以這種型別的數字電壓表無論在功能和實際應用上,都具有傳統數字電壓表無法比擬的特點,這使得它的開發和應用具有良好的前景。

新型數字電壓表的整機設計

該新型數字電壓表測量電壓型別是直流,測量範圍是-5~+5v。整機電路包括:資料採集電路的微控制器最小化設計、微控制器與pc介面電路、微控制器時鐘電路、復位電路等。

下位機採用at89s51晶片,a/d轉換採用ad678晶片。通過rs232序列口與pc進行通訊,傳送所測量的直流電壓資料。整機系統電路如圖1所示。

資料採集電路的原理

在微控制器資料採集電路的設計中,做到了電路設計的最小化,即沒用任何附加邏輯器件做介面電路,實現了微控制器對ad678轉換晶片的操作。

ad678是一種高檔的、多功能的12位adc,由於其內部自帶有采樣保持器、高精度參考電源、內部時鐘和三態緩衝資料輸出等部件,所以只需要很少的外部元件就可以構成完整的資料採集系統,而且一次a/d轉換僅需要5ms。

在電路應用中,ad678採用同步工作方式,12位數字量輸出採用8位操作模式,即12位轉換數字量採用兩次讀取的方式,先讀取其高8位,再讀取其低4位。根據時序關係,在晶片選擇/cs=0時,轉換端/sc由高到低變化一次,即可啟動a/d轉換一次。再查詢轉換結束端/eoc,看轉換是否已經結束,若結束則使輸出使能/oe變低,輸出有效。

12位數字量的讀取則要控制高位元組有效端/hbe,先讀取高位元組,再讀取低位元組。整個a/d操作大致如此,在實際開發應用中調整。

由於電路中採用ad678的雙極性輸入方式,輸入電壓範圍是-5~+5v,根據公式vx10(v)/4096*dx,即可計算出所測電壓vx值的大小。式中dx為被測直流電壓轉換後的12位數字量值。

rs232介面電路的設計

at89s51與pc的介面電路採用晶片max232。max232是德州儀器公司(ti)推出的一款相容rs232標準的晶片。該器件包含2個驅動器、2個接收器和1個電壓發生器電路提供tia/eia-232-f電平。

max232晶片起電平轉換的功能,使微控制器的ttl電平與pc的rs232電平達到匹配。

串列埠通訊的rs232介面採用9針串列埠db9,串列埠傳輸資料只要有接收資料針腳和傳送針腳就能實現:同一個串列埠的接收腳和傳送腳直接用線相連,兩個串列埠相連或一個串列埠和多個串列埠相連。在實驗中,用定時器t1作波特率發生器,其計數初值x按以下公式計算:

序列通訊波特率設定為1200b/s,而**od=1,fosc=6mhz,計算得到計數初值x=0f3h。在程式設計中將其裝入tl1和thl中即可。

為了便於觀察,當每次測量電壓採集資料時,微控制器有埠輸出時,用發光二極體led指示。

軟體程式設計

軟體程式主要包括:下位機資料採集程式、上位機視覺化介面程式、微控制器與pc串列埠通訊程式。微控制器採用c51語言程式設計,上位機的操作顯示介面採用vc++6.

0進行視覺化程式設計。在串列埠通訊除錯過程中,藉助「串列埠除錯助手」工具,有效利用這個工具為整個系統提高效率。

微控制器程式設計

下位機微控制器的資料採集通訊主程式流程如圖2所示、中斷子程式如圖3所示、採集子程式如圖4所示。微控制器的程式設計**除錯藉助wave2000**器,本系統有整合的isp**除錯環境。

在採集程式中,微控制器的程式設計操作要完全符合ad678的時序規範要求,在實際開發中,要不斷加以除錯。最後將下位機除錯成功而生成的.bin檔案固化到at89s51的flash單元中。

人機介面程式設計

開啟vc++6.0,建立一個基於對話方塊的mfc應用程式,串列埠通訊採用ms***m控制元件來實現。其他操作此處不贅述,程式設計實現一個良好的人機介面。

數字直流電壓表的操作介面如圖5所示。執行vc++6.0程式設計實現的windows程式,整個樣機功能得以實現。

功能結果

根據上面所述工作原理及實施方案,在實踐中很好地實現了整個樣機的功能,各項指標達到了預先的設計要求。電路工作穩定,每次測量均伴有led發光指示,視覺化介面顯示也正常。

ad678轉換精度是12位,它的解析度為1/4096。這為整機系統的高精度提供了保障。為了提高測量精度,運用了ad678自帶的校準電路,這樣使其a/d轉換精度更高。

在實際測量中,整機測量精度達到了0.8%。

如何分辨電路圖中電壓表測哪用電器

判斷電壓表測誰的電壓步驟 1 先弄清楚電流的方向,即從電源的正極出發,用不同顏色的筆,標出幹路以及支路上電流的方向 2 檢查電壓表連個接線柱之間有幾個用電器,若只有一個用電器,則電壓表就是測定這個用電器的兩端的電壓 若有幾個用電器串聯,則電壓表測的是幾個串聯用電器的總電壓 若有幾個用電器並聯,則電壓...

急求簡易數字電壓表課程設計(原理圖加彙編c程式)用adc

include unsigned char code dispbitcode unsigned char code dispcode unsigned char dispbuf 8 unsigned char dispcount unsigned char getdata unsigned int ...

怎麼在電路圖中區分電壓表測得是電源的電壓還是用電器的電壓?求詳解

就看電壓表的兩端是不是直接接在電源的兩端,如果是直接接電源兩端,那麼就是測電源電壓。注意 直接 二字。否則,就是測用電器。如圖,就是測電源電壓。是什麼樣子的電路?正常情況下,測得的都是輸出電壓,如果可以直接並聯接電源側下看看。請問在電路圖中怎麼判定電壓表測的是電源電壓,還是用電器電壓?用電器的端電壓...