求解,微控制器幫忙設計簡易的數字電壓表

2021-03-03 20:39:08 字數 3794 閱讀 7368

1樓:匿名使用者

你好!原理圖確定了嗎?是**還是做實物。程式可以嘗試完成

2樓:做而論道

參考。

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

3樓:匿名使用者

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)  }

微控制器課設簡單直流數字電壓表設計

這樣的課題設計,我個人建議,還是自己程式設計練習練習的好,這對以後出來工作是很有幫助的 如果實在真的想不出辦法來解決,來找找我也是可以的 電路板做好了還是?hi我 微控制器設計簡單數字直流電壓表 這是我以前用的,範圍可能只有0 5v,你找人幫改改就可以了outbit equ 08002houtseg...

畢設 基於微控制器的數字電壓表的設計

2路3相應該算6路 0.5 的話只要8bit就夠了 找一個帶ad的51 max232 串列埠通訊 c8051f320也可以 奢侈了點 輸入用電阻分壓 加運放就可以了 還有幾個按鍵和數碼管顯示電路 不是很複雜 關於測量2路三相交流電源中的 2路 我的理解除了任意兩條相線,還有一種可能是同時監測兩條供電...

微控制器IO口擴充套件的幾個問題。謝謝了,大神幫忙啊

1 可以擴充套件 來。可以用74ls164,74hc573等等器件擴自展。你可以bai看一些這些整合塊du的zhi資料。74ls164只需要兩個daoi o口 2 能,這些都很簡單,你可以多看一下別人的程式列子,沒有的話我可以給你。常用的擴充套件晶片有8255,可以抄多擴充套件出3組並行i o口,具...