版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
6.1A/D和D/A器件工作原理6.2ADC0809數(shù)據(jù)采集6.3用DAC0832產(chǎn)生任意波形
6.4用DAC0832控制直流電機(jī)轉(zhuǎn)速6.5小結(jié)習(xí)題
6.1.1ADC0809的結(jié)構(gòu)和工作原理
ADC0809是8位逐次逼近式單片A/D轉(zhuǎn)換芯片,可對8路0~5?V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。ADC0809的分辨率為8位,轉(zhuǎn)換時間約100?
s,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5?V電源供電。
1.ADC0809的引腳和內(nèi)部結(jié)構(gòu)
ADC0809的引腳和內(nèi)部結(jié)構(gòu)如圖6-1所示。6.1A/D和D/A器件工作原理圖6-1ADC0809的引腳圖和內(nèi)部結(jié)構(gòu)圖
ADC0809芯片有28條引腳,采用雙列直插式封裝,其引腳分布如下:
(1)電源線(4條)。
(2)輸入線(11條)。
模擬輸入中的一路,在ALE有效時被鎖存。選通8路模擬輸入的真值表如表6-1所示。
(3)輸出線(8條)。表6-1ADDA、ADDB、ADDC真值表
2.ADC0809的工作原理
ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。主要控制信號說明如圖6-2所示。圖6-2ADC0809控制信號6.1.2DAC0832的結(jié)構(gòu)和工作原理
DAC0832是8位雙緩沖器A/D轉(zhuǎn)換芯片,可對8路0~5?V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。單電源供電,從+5~+15?V均可正常工作?;鶞?zhǔn)電壓的范圍為-10~+10?V;電流建立時間為1?ms;CMOS工藝,低功耗20?mW。
1.DAC0832的引腳和內(nèi)部結(jié)構(gòu)
DAC0832的引腳和內(nèi)部結(jié)構(gòu)如圖6-3所示。圖6-3DAC0832的引腳圖和內(nèi)部結(jié)構(gòu)圖
DAC0832的輸出方式為電流輸出:IOUT1+?IOUT2=?常數(shù)。
DAC0832是電流輸出,為了取得電壓輸出,需在電流輸出端接運(yùn)算放大器,RFE即為運(yùn)算放大器的反饋電阻端。運(yùn)算放大器的接法如圖6-4所示。
DAC0832輸出電壓值為-D×VREF/255。其中,D為待轉(zhuǎn)換的8位輸入數(shù)據(jù)。圖6-4運(yùn)算放大器接法
2.DAC0832與8051的接口電路
DAC0832的與CPU的連接可采用三種方式:直通方式、單緩沖方式和雙緩沖方式。
1)直通方式
直通方式是指D7~D0上一出現(xiàn)數(shù)字量,DAC即可將它們轉(zhuǎn)換成模擬量,見圖6-5。圖6-5直通方式
2)單緩沖方式
所謂單緩沖方式就是使0832的兩個輸入寄存器中有一個處于直通方式,而另一個處于受控的鎖存方式,或者說兩個輸入寄存器同時受控的方式。在實(shí)際應(yīng)用中,如果只有一路模擬量輸出,或雖有幾路模擬量但并不要求同步輸出的情況,就可采用單緩沖方式。單緩沖方式的電路有多種形式,其中一種接線如圖6-6所示。圖6-6單緩沖方式
3)雙緩沖方式
所謂雙緩沖方式,就是把DAC0832的兩個鎖存器都接成受控鎖存方式。雙緩沖DAC0832的連接如圖6-7所示。圖6-7DAC0832的雙緩沖方式連接6.1.3單片機(jī)與DAC0832和ADC0809的接口設(shè)計
1.原理圖設(shè)計
單片機(jī)與DAC0832和ADC0809的接口原理圖如圖6-8和圖6-9所示。圖6-8頂層原理圖圖6-9ADC/DAC子原理圖
2.原理圖說明
對于ADC0809和單片機(jī)的接口說明:
(1)CLOCK引腳接單片機(jī)的端口P3.4,單片機(jī)利用定時器在該端口產(chǎn)生固定頻率的方波。
(2)?ADC0809的轉(zhuǎn)換結(jié)果,一方面由單片機(jī)讀取進(jìn)行數(shù)據(jù)處理。
(3)使用了ADC0809的兩路輸入模擬量,模擬量采用可變電阻調(diào)節(jié)。對于DAC0832和單片機(jī)的接口說明:
(1)?DAC0832與8051的連接采用單緩沖方式,兩個輸入寄存器同時受控。
(2)放大器選用UA741,將電流輸出轉(zhuǎn)換為電壓輸出。
(3)?DAC0832的片選信號通過74LS138提供,為使片選信號有效,必須使P2.7和P2.4為高電平。此原理圖中所使用的元器件根據(jù)其名稱可在Proteus中查找得到。6.2.1設(shè)計要求
將模擬量轉(zhuǎn)換為數(shù)字量,具體要求如下:
(1)共有兩路模擬信號,信號電壓范圍為0~5?V,輪流采集。
(2)將兩路模擬信號的轉(zhuǎn)換結(jié)果,用LED燈顯示,并送數(shù)碼管顯示。
(3)報警功能。分別設(shè)定每一路的上限值和下限值,當(dāng)超過設(shè)定界限值時,通過指示燈閃爍或喇叭發(fā)聲,表示報警。
(4)將采集的數(shù)據(jù)存入內(nèi)存。
(5)分別采用查詢方式和中斷方式實(shí)現(xiàn)。6.2ADC0809數(shù)據(jù)采集6.2.2設(shè)計說明
本設(shè)計僅完成功能(1)和功能(2),并采用查詢方式實(shí)現(xiàn)。
ADC0809的工作過程參見圖6-2,下面再作簡單說明:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。6.2.3設(shè)計源碼
根據(jù)程序流程圖,可以寫出ADC0809采集數(shù)據(jù)的源程序,如例6-1。圖6-10程序流程圖【例6-1】ADC0809采集源碼。
#include<reg51.h>
#include<absacc.h>
#defineucharunsignedchar
//下面地址定義中包含使能138芯片的信息
#definePA8255XBYTE[0x80fc]//8255端口A的地址
#definePB8255XBYTE[0x80fd]//8255端口B的地址
#definePC8255XBYTE[0x80fe]//8255端口C的地址
#defineCOM8255XBYTE[0x80ff]//8255命令字的地址//ADC0809引腳定義
sbitAD_EOC=P2^1;
sbitAD_selA=P3^2; //只使用2路模擬信號輸入
sbitAD_OE=P3^3;
sbitAD_CLK=P3^4;
sbitAD_ST=P3^5;
voiddelay(ucharx);
voidinit_8255(void);/*************采集數(shù)據(jù)函數(shù):使用AD器件采集數(shù)據(jù)*****************/
//使用ADC0809采樣通道0/1輸入模擬信號,轉(zhuǎn)換后進(jìn)行顯示
voidadc_0809(void)
{
ucharled_table[16]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,
?0x7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0~F共16個數(shù),用于段控 staticucharcnt=0; //用于交替選擇通道0和通道1
uchartmp=0;
if(((cnt++)%2)==0)
{
AD_selA=0;//選擇通道0
}
else
{
AD_selA=1; //選擇通道1 }
AD_ST=0;AD_ST=1;AD_ST=0; //啟動轉(zhuǎn)換
while(AD_EOC==0);//等待轉(zhuǎn)換結(jié)束
AD_OE=1;
//允許輸出
delay(2);
//下面幾行代碼將AD轉(zhuǎn)換輸出到數(shù)碼管上
for(tmp=0;tmp<100;tmp++) //顯示結(jié)果延時一段時間
{ PB8255=0x0f;
PA8255=led_table[(P1&0x0f)]; //讀取低4位并顯示在一個數(shù)碼管上
delay(5);
PB8255=0x0e;
PA8255=led_table[((P1>>4)&0x0f)];
//讀取高4位并顯示在一個數(shù)碼管上
delay(5);
}
AD_OE=0; //關(guān)閉輸出}
/*************中斷處理函數(shù):使用AD器件采集數(shù)據(jù)*****************/
//T0定時器中斷提供時鐘信號,一次定時10/36?ms,作為AD采樣時鐘:約20?kHz
voidTimer0_Int(void)interrupt1using1
{
AD_CLK=!AD_CLK; //ADC0809采樣時鐘信號,約20?kHz
}
/*************定時器初始化函數(shù)*****************/
voidTime_init(void)
{ TMOD=0x02;TH0=0x6;TL0=0x6;
//定時器模式與初值設(shè)定
IE=0x82; //開中斷
TR0=1; //啟動定時器0
}
/*************main函數(shù):循環(huán)采集并顯示數(shù)據(jù)*****************/
voidmain(void)
{ init_8255();
//8255命令字,PA/PB均為輸出,PC低4位輸入,高4位輸出
Time_init();
//定時器初始化,為DA轉(zhuǎn)化提供時鐘
while(1)
{
adc_0809();
}
}6.2.4仿真結(jié)果
將例6-1編譯下載后進(jìn)行仿真,仿真結(jié)果如圖6-11和圖6-12所示。圖6-11數(shù)碼管上顯示的仿真結(jié)果從圖6-11可以看出,數(shù)碼管上交替顯示FF和80,這是輸入的兩路模擬量經(jīng)模數(shù)轉(zhuǎn)換器轉(zhuǎn)換后得到的數(shù)字量。該數(shù)字量也可以由子圖中的LED燈表示出來,如圖6-12所示,根據(jù)圖中LED燈的亮滅情況可知,前者代表數(shù)值0x80,后者代表數(shù)值0xff。圖6-12LED燈顯示的模數(shù)轉(zhuǎn)換結(jié)果6.3.1設(shè)計要求
設(shè)計并輸出模擬信號,具體要求如下:
(1)模擬信號為鋸齒波,周期為1?s。
(2)模擬信號為正弦波,周期為1?s。
(3)模擬信號為三角波,周期為1?s。
(4)交替產(chǎn)生上述三種波,周期為3?s。6.3用DAC0832產(chǎn)生任意波形6.3.2設(shè)計說明
本設(shè)計僅完成設(shè)計要求(1),產(chǎn)生鋸齒波,周期為1?s。其他設(shè)計要求,在理解設(shè)計要求(1)的基礎(chǔ)上,由讀者自行完成。
圖6-13為產(chǎn)生鋸齒波的流程圖。圖6-13產(chǎn)生鋸齒波的流程圖6.3.3設(shè)計源碼
根據(jù)程序流程圖,可以寫出DAC0832產(chǎn)生鋸齒波的源程序,如例6-2。
【例6-2】DAC0832產(chǎn)生鋸齒波源碼。
#include<reg51.h>
#include<absacc.h>
#defineucharunsignedchar
//下面地址定義中包含使能138芯片的信息
#defineDAC0832XBYTE[0x90ff]//DAC0832的地址
//函數(shù)聲明
voiddelay(ucharx);/*************使用DA器件生成鋸齒波*****************/
//向DAC0832反復(fù)遞增輸出0~255的數(shù)字量,經(jīng)模數(shù)轉(zhuǎn)換及電流到電壓的轉(zhuǎn)換后輸出鋸齒波
//輸出電壓值為:-I/255*VREF
voiddac_0832(void)
{
ucharI=0;
for(I=0;I<255;I++)
{
DAC0832=I;
delay(2);
}
}//主函數(shù)
voidmain(void)
{
while(1)
{
//數(shù)模轉(zhuǎn)換DAC
dac_0832();
}
}6.3.4仿真結(jié)果
將源程序編譯下載后進(jìn)行仿真,仿真結(jié)果如圖6-14所示。圖6-14數(shù)字示波器顯示的由數(shù)擬轉(zhuǎn)換得出的鋸齒波6.4.1設(shè)計要求
控制直流電機(jī)的轉(zhuǎn)速為5檔,5檔的輸入電壓分別為:+1?V、+2?V、+3?V、+4?V和+5?V。具體設(shè)計要求如下:
(1)?5檔轉(zhuǎn)速自動輪換運(yùn)行,每檔轉(zhuǎn)速運(yùn)行的時間均為2?min。
(2)使用5個按鍵來控制5檔轉(zhuǎn)速,每個按鍵對應(yīng)著1檔轉(zhuǎn)速,這樣當(dāng)按下某個按鍵時,則直流電機(jī)就以相應(yīng)的轉(zhuǎn)速運(yùn)轉(zhuǎn)。
(3)使用一個按鍵來控制5檔轉(zhuǎn)速,系統(tǒng)運(yùn)行后直流電機(jī)首先以1檔轉(zhuǎn)速運(yùn)行。6.4用DAC0832控制直流電機(jī)轉(zhuǎn)速6.4.2設(shè)計說明
直流電機(jī)的轉(zhuǎn)速跟驅(qū)動電壓值呈線性關(guān)系,驅(qū)動電壓值越大,直流電機(jī)的轉(zhuǎn)速也就越高。
本設(shè)計僅完成設(shè)計要求(1),5檔轉(zhuǎn)速自動輪換運(yùn)行,每檔轉(zhuǎn)速運(yùn)行的時間均為2?min。設(shè)計要求(2)和設(shè)計要求(3)則在掌握設(shè)計要求(1)和矩陣鍵盤原理的基礎(chǔ)上,很容易實(shí)現(xiàn),設(shè)計流程圖如圖6-15所示。圖6-15軟件流程圖6.4.3設(shè)計源碼
根據(jù)程序流程圖,可以寫出DAC0832控制直流電機(jī)轉(zhuǎn)速的源程序,如例6-3。
【例6-3】DAC0832控制直流電機(jī)轉(zhuǎn)速源碼。
voiddac_0832_dc(void)
{
ucharI=0;
for(I=0;I<5;I++)
{
DAC0832=255*(I+1)/5;
delay_min(2);//延時2?min
}
}6.4.4仿真結(jié)果
將源程序編譯下載后進(jìn)行仿真,仿真結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024河北省職稱計算機(jī)考試操作題步驟
- 《物質(zhì)生活與習(xí)俗的變遷》課件
- 《激光的基本特性》課件
- 《證券投資學(xué)課程》課件
- 《電器安全知識》課件
- 農(nóng)業(yè)新紀(jì)元模板
- 銀行工作總結(jié)辛勤勞動取得佳績
- 三年級安全教育行動
- 法制教育心得體會15篇
- 輸血科護(hù)士工作總結(jié)
- 河道綜合治理工程施工組織設(shè)計
- 安徽省合肥市蜀山區(qū)2024-2025學(xué)年七年級上學(xué)期地理期末模擬練習(xí)(含答案)
- 新建設(shè)項(xiàng)目施工人員安全教育培訓(xùn)課件
- 品質(zhì)總監(jiān)轉(zhuǎn)正述職報告
- 2024年游艇俱樂部會員專屬活動策劃與執(zhí)行合同3篇
- 廣東省廣州市番禺區(qū)2023-2024學(xué)年八年級上學(xué)期期末英語試題
- 《項(xiàng)目管理培訓(xùn)課程》課件
- 2024年企業(yè)團(tuán)購:銷售合作協(xié)議3篇
- 2024-2025學(xué)年八年級語文上學(xué)期期末真題復(fù)習(xí) 專題06 文言文閱讀
- 制藥課程設(shè)計三廢處理
- 期末測試卷(試題)-2024-2025學(xué)年北師大版數(shù)學(xué)五年級上冊
評論
0/150
提交評論