實驗七DAC0832數模轉換實驗.doc_第1頁
實驗七DAC0832數模轉換實驗.doc_第2頁
實驗七DAC0832數模轉換實驗.doc_第3頁
實驗七DAC0832數模轉換實驗.doc_第4頁
實驗七DAC0832數模轉換實驗.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗七、DAC0832數模轉換實驗一、 實驗目的1、 掌握DAC0832直通方式、單緩沖方式、雙緩沖方式的編程方法2、 掌握DA轉換程序的編程方法和調試方法。二、 實驗說明美國國家半導體公司產品,具有兩個輸入數據寄存器的8位DAC,能直接與MCS-51單片機相連。主要特性如下:分辨率為8位;* 電流輸出,穩(wěn)定時間為1ms;* 可雙緩沖輸入、單緩沖輸入或直接數字輸入;* 單一電源供電(+5+15V);DAC0832的邏輯結構:其引腳分布如圖所示:DAC0832各引腳說明:DI0-DI7:轉換數據輸入端;CS:片選信號輸入端。ILE:數據鎖存允許信號輸入端,高電平有效。WR1:輸入寄存器寫選通控制端。當CS*=0、ILE=1、 WR1*=0時,數據信號被鎖存在輸入寄存器中。Xfer:數據傳送控制信號輸入端,低電平有效。WR2:DAC寄存器寫選通控制端。當XFER*=0,WR2* =0 時,輸入寄存器狀態(tài)傳入DAC寄存器中。Iout1:電流輸出1端,當數據全為1時,電流輸出最大;當數據全為0時,輸出電流最小。Iout2:電流輸出2端。DAC0802具有Iout1+Iout2=常數的特性。Rfb:反饋電阻端。Vref:基準電壓輸入端,是外加的高精度電壓源,它與芯片內的電阻網絡相連接,該電壓范圍為-10V10V;VCC和GND:芯片的電源和接地端。DAC內部有兩個寄存器,而這兩個寄存器的控制信號有五個,輸入寄存器有LIE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用軟件指令控制這五個控制端可以實現三種工作方式:直通方式,單緩沖方式,雙緩沖方式。直通方式是將兩個寄存器的五個控制端預先置為有效信號,兩個寄存器都開通,只要有數字信號輸入就立即進入DA轉換。單緩沖方式是使DAC0832的兩個輸入寄存器中由一個處于直通方式,另一個處于受控方式,可以將WR2和Xref相連接到地上,并把WR1接到80C51的WR上,LIE接高電平,CS接高位地址或地址譯碼的輸出端上。雙緩沖方式把DAC0832的輸入寄存器和DAC寄存器都接成受控方式,這種方式可以用于多路模擬量要求同時輸出的情況下。三種工作方式的區(qū)別是:直通方式不需要選通,直接進行DA轉換;單緩沖方式一次選通;雙緩沖方式二次選通。三、 實驗步驟1、 單片機最小應用系統1的P1口接DAC0832的DI0DI7,單片機最小應用系統的P2.0、WR分別接DA轉換的P2.0、WR,Vref接-5V,DA轉換的out接示波器探頭。2、 用串行數據線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,主要仿真器的方向:缺口朝上。3、 打開keil uvision2 仿真軟件,首先建立本實驗的項目文件,接著添加DA轉換程序。4、 進行軟件設置,選擇硬件仿真,選擇串行口,設置波特率為38400.5、 打開模塊電源和總電源,點擊開始調試按鈕,點擊run按鈕運行程序。觀察示波器測量輸出波形的周期和幅度。四、 實驗內容1、在硬件不改動的情況下,請編程實現輸出波形為鋸齒波及三角波、正弦波。參考程序:1、矩形波參考程序:#include reg51.h#include absacc.h#define DAC XBYTE0xFEFFvoid deley(unsigned int k)unsigned int i;for(i=0;ik;i+);void main()unsigned int k;unsigned int dout;while(1)DAC=0x00;deley(10);DAC=0xff;deley(10);2、三角波參考程序:#include reg51.h#include absacc.h#define DAC XBYTE0xFEFFvoid deley(unsigned int k)unsigned int i;for(i=0;ik;i+);void main()unsigned int k;unsigned int dout;while(1)for(k=0;k0;k-)DAC=k;3、鋸齒波參考程序:#include reg51.h#include absacc.h#define DAC XBYTE0xFEFFvoid deley(unsigned int k)unsigned int i;for(i=0;ik;i+);void main()unsigned int k;unsigned int dout;while(1)for(k=0;k0;x-) for(y=110;y0;y-);void ju()P1=0x00;deley(10);P1=0xff;deley(10);/*三角波產生程序*/void san()unsigned int k;for(k=0;k0;k-)P1=k;/*鋸齒波產生程序*/void chi()P1=P1+1;if(P1=0xff)P1=0x00;/*正弦波產生程序*/void sin()unsigned int kk;for(kk=0;kk=127;kk+)P1=sintabkk;/*鍵盤掃描程序*/uchar num,temp;uchar keyscan() unsigned char ii; for(ii=0;ii4;ii+) P2=_crol_(0xfe,ii); temp=P2; temp=temp&0xf0; while(temp!=0xf0) deley(5); temp=P2; temp=temp&0xf0; while(temp!=0xf0) temp=P2; switch(temp) case 0xee:num=1;break; case 0xde:num=2;break; case 0xbe:num=3;break; case 0x7e:num=4;break; case 0xed:num=5;break; case 0xdd:num=6;break; case 0xbd:num=7;break; case 0x7d:num=8; break; case 0xeb:num=9;break; case 0xdb:num=10;break; case 0xbb:num=11;break; case 0x7b:num=12;break; case 0xe7:num=13;break; case 0xd7:num=14;break; case 0xb7:num=15;break; case 0x77:num=16;break; while(temp!=0xf0) temp=P2; temp=temp&0xf0; return num;匯編語言:矩形波:ORG 0000HAJMP STARTORG 0030HSTART: MOV DPTR,#0FEFFH LP: MOV A, #0FFH MOVX DPTR,A LCALL DELAY MOV A,#00H MOVX DPTR,A LCALL DELAY SJMP LPDELAY:MOV R3,#11H D1:NOP NOP NOP DJNZ R3,D1 RET END三角波:ORG 0000HAJMP STARTORG 0030HSTART: MOV DPTR,#0FEFFH LP0:MOV A,#00H; MOV R2,#0FFH; LP1: MOVX DPTR,A INC A; DJNZ R2,LP1 MOV A,#0FEH MOV R2,#0FDH; LP2: MOVX DPTR,A DEC A DJNZ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論