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口,具...