找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19978|回復: 11
收起左側(cè)

DAC0832實現(xiàn)51單片機輸出方波鋸齒波三角波等

  [復制鏈接]
ID:325983 發(fā)表于 2018-5-14 21:11 | 顯示全部樓層 |閱讀模式
D/A轉(zhuǎn)換
一、實驗目的
1. 掌握DAC0832直通方式、單緩沖器方式、雙緩沖器方式的編程方法
2. 掌握D/A轉(zhuǎn)換程序的編程方式和調(diào)試方法
二、原理
DAC0832是8位D/A轉(zhuǎn)換器,它采用CMOS工藝制作,具有雙緩沖器輸入結(jié)構(gòu),其引
腳排列如圖所示,DAC0832各引腳功能說明:
DI0~DI7:轉(zhuǎn)換數(shù)據(jù)輸入端。
   CS:片選信號輸入端,低電平有效。
ILE:數(shù)據(jù)鎖存允許信號輸入端,高電平有效。   
WR1:第一寫信號輸入端,低電平有效,
Xfer:數(shù)據(jù)傳送控制信號輸入端,低電平有效。
WR2:第二寫信號輸入端,低電平有效。            
Iout1:電流輸出1端,當數(shù)據(jù)全為1時,輸出電流最大;當數(shù)據(jù)全為0時,輸出電流最小。
Iout2:電流輸出2端。DAC0832具有:Iout1+Iout2=常數(shù)的特性。 Rfb:反饋電阻端。
Vref:基準電壓端,是外加的高精度電壓源,它與芯片內(nèi)的電阻網(wǎng)絡(luò)相連接,該電壓范圍為:-10V~+10V。
VCC和GND:芯片的電源端和地端。
DAC0832內(nèi)部有兩個寄存器,而這兩個寄存器的控制信號有五個,輸入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用軟件指令控制這五個控制端可實現(xiàn)三種工作方式:直通方式、單緩沖方式、雙緩沖方式。
直通方式是將兩個寄存器的五個控制端預先置為有效,兩個寄存器都開通只要有數(shù)字信號輸入就立即進入D/A轉(zhuǎn)換。
單緩沖方式使DAC0832的兩個輸入寄存器中有一個處于直通方式,另一個處于受控方式,可以將WR2和Xfer相連在接到地上,并把WR1接到80C51的WR上,ILE接高電平,CS接高位地址或地址譯碼的輸出端上。
雙緩沖方式把DAC0832的輸入寄存器和DAC寄存器都接成受控方式,這種方式可用于多路模擬量要求同時輸出的情況下。
三種工作方式區(qū)別是:直通方式不需要選通,直接D/A轉(zhuǎn)換;單緩沖方式一次選通;雙緩沖方式二次選通
三、實驗內(nèi)容
    1、利用數(shù)/模轉(zhuǎn)換器DAC0832分別構(gòu)造2種波形:方波、鋸齒波,并通過示波器來觀察波形情況
    2、軟件編程提示:
方波:實驗要求在DOUT端輸出方波信號,方波信號的周期由延時時間常數(shù)確定。 根據(jù)Vout =-〔VREF×(輸入數(shù)字量的十進制數(shù))〕/256,當數(shù)字量的十進制數(shù)為256(FFH)時,由于VREF =-5V,Vout = +5V。當數(shù)字量的十進制數(shù)為0(00H) 時, 由于VREF = - 5V,Vout = 0V。因此,只要將上述數(shù)字量寫入DAC0832端口地址時,模擬電壓就從DOUT 端輸出 。
鋸齒波:本實驗在DAOUT端輸出鋸齒波。根據(jù)Vout = -〔VRFE×(輸入數(shù)字量的十進制數(shù))〕/256即可知道,只要將數(shù)字量0~256(00H~FFH)從0開始逐漸加1遞增直至256為止,不斷循環(huán),在DOUT端就會輸出連續(xù)不斷的鋸齒波

QQ圖片20180514210853.png

3.rar

67.8 KB, 下載次數(shù): 284, 下載積分: 黑幣 -5

仿真和代碼

回復

使用道具 舉報

ID:283491 發(fā)表于 2018-11-24 17:27 | 顯示全部樓層
最后功能實現(xiàn)了嗎,
回復

使用道具 舉報

ID:643576 發(fā)表于 2019-11-24 17:32 | 顯示全部樓層
可以這樣寫嗎?鋸齒波:int main (void)
{
uchar i;
while(1)
{
for(i=0;i<255;i++)
{
delay(10);
XBYTE[0X7fff]=i;
}
}
}
回復

使用道具 舉報

ID:538496 發(fā)表于 2020-3-16 23:08 | 顯示全部樓層
感謝樓主分享
回復

使用道具 舉報

ID:635905 發(fā)表于 2020-3-24 09:31 | 顯示全部樓層
仿真軟件用的什么
回復

使用道具 舉報

ID:714939 發(fā)表于 2020-3-25 01:02 | 顯示全部樓層

proteus
回復

使用道具 舉報

ID:80273 發(fā)表于 2020-4-12 14:20 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:741305 發(fā)表于 2020-4-30 00:06 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:732342 發(fā)表于 2020-7-4 15:09 | 顯示全部樓層
請問怎么改變電壓范圍和頻率呢
回復

使用道具 舉報

ID:978036 發(fā)表于 2021-11-4 23:31 | 顯示全部樓層
單片機老司機 發(fā)表于 2019-11-24 17:32
可以這樣寫嗎?鋸齒波:int main (void)
{
uchar i;

您好,我是新手,想問有int main這個嗎
回復

使用道具 舉報

ID:978036 發(fā)表于 2021-11-4 23:32 | 顯示全部樓層

proteus
回復

使用道具 舉報

ID:978036 發(fā)表于 2021-11-4 23:34 | 顯示全部樓層

哈羅  可以分享一下樓主的代碼和仿真嗎?DAC0832和AT89C51波形輸出
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表