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

2021-05-21 11:31:43 字數 4176 閱讀 5801

1樓:

^#include

unsigned char code dispbitcode=;

unsigned char code dispcode=;

unsigned char dispbuf[8]=;

unsigned char dispcount;

unsigned char getdata;

unsigned int temp;

unsigned char i;

sbit st=p3^0;

sbit oe=p3^1;

sbit eoc=p3^2;

sbit clk=p3^3;

void main(void)

dispbuf[i]=temp;

st=1;

st=0;

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

void t1(void) interrupt 3 using 0dispcount++;

if(dispcount==8)}

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

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

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

可用l7107製作三位半數字電壓表.l7107 7.00元1只.參考電子報93下181頁.求一簡易數字電壓表的電路原理圖 28 數字電壓表 1 實驗任務 利用微控制器at89s51與adc0809設計一個數字電壓表,能夠測量0 5v之間的直流電壓值,四位數碼顯示,但要求使用的元器件數目最少。2 電路...

微控制器零基礎者做簡易數字電壓表,微控制器原理一個簡易數字電壓表

微控制器的ad模組和顯示模組 adc讀取被測電壓 微控制器是5v的 被測電壓 5v的直接可以接入測量 大於5v的串聯電阻分壓測試 學習一下微控制器就可以了 速成 微控制器原理一個簡易數字電壓表 這個電路的時鐘訊號是由晶振crystal通過xtal1端和xtal2端產生的,這兩個埠內部有閘電路,與晶振...

急求機械製造工藝學的課程設計

可以參考一下這個設計如何。機械工藝課程設計說明書 一 零件的分析 零件的作用 題目給出的零件是ca6140的槓桿。它的主要的作用是用來支承 固定的。要求零件的配合是符合要求。二 零件的工藝分析 槓桿的 25孔的軸線合兩個端面有著垂直度的要求。現分述如下 本夾具用於在立式銑床上加工槓桿的小平面和加工 ...