




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、波形發(fā)生器設(shè)計(jì)目錄摘要1第一章緒論2第二章DAC0832及其特性32.1 D/A轉(zhuǎn)換器與單片機(jī)接口探究32.1.1 數(shù)據(jù)線連接32.1.2 地址線連接32.1.3 控制線連接32.2 DAC0832的認(rèn)識(shí)42.2.1 DAC0832的結(jié)構(gòu)42.2.2 DAC0832的引腳42.2.3 DAC0832的啟動(dòng)控制方式5第三章 硬件設(shè)計(jì)73.1 啟動(dòng)方式選擇73.2 框圖設(shè)計(jì)73.3 電路圖設(shè)計(jì)7第四章 程序設(shè)計(jì)94.1 程序流程圖94.1.1 程序設(shè)計(jì)思路94.1.2流程圖94.2 用C語(yǔ)言實(shí)現(xiàn)114.3 用匯編語(yǔ)言實(shí)現(xiàn)14第五章 Proteus仿真及結(jié)果175.1方波:175.2正弦波:175.
2、3三角波:185.4梯形波:185.5鋸齒波:19設(shè)計(jì)心得:20參考文獻(xiàn):21摘要本設(shè)計(jì)使用AT89C51單片機(jī)做控制,選擇8位D/A轉(zhuǎn)換器DAC0832作D/A轉(zhuǎn)換。硬件方面,首先51熟悉單片機(jī)的結(jié)構(gòu)和工作原理,連接單片機(jī)的最小系統(tǒng)。之后熟悉D/A轉(zhuǎn)換器工作方式,經(jīng)過(guò)分析后選擇DAC0832的單緩沖啟動(dòng)控制方式,完成電路框圖。進(jìn)一步根據(jù)設(shè)計(jì)要求完成通過(guò)獨(dú)立按鍵控制D/A輸出,作出電路框圖和電路原理圖。軟件方面:設(shè)計(jì)思路主要體現(xiàn)在兩點(diǎn)上。一是控制,通過(guò)程序控制DAC轉(zhuǎn)換與輸出,按鍵消抖,選擇相應(yīng)的即將輸出的波形。二是產(chǎn)生波形,根據(jù)波形的特點(diǎn)編寫(xiě)程序以產(chǎn)生相應(yīng)波形的數(shù)字信號(hào)。分別通過(guò)C語(yǔ)言和匯編
3、語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易的波形發(fā)生器,輸出方波、正弦波、三角波、梯形波和鋸齒波,通過(guò)獨(dú)立按鍵控制分別輸出不同的波形。以KILL與Proteus為設(shè)計(jì)平臺(tái),仿真測(cè)試設(shè)計(jì)結(jié)果的正確性。關(guān)鍵字: 51單片機(jī),DAC0832,單緩沖啟動(dòng)控制方式,波形發(fā)生器,C語(yǔ)言設(shè)計(jì),匯編語(yǔ)言設(shè)計(jì)第一章 緒論單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit), 常用英文字母的縮寫(xiě)MCU表示單片機(jī),單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)由運(yùn)算器,控制器,存儲(chǔ)器,輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個(gè)微型的計(jì)算機(jī)(最小系統(tǒng)),和計(jì)算機(jī)相比,
4、單片機(jī)缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。它最早是被用在工業(yè)控制領(lǐng)域。51單片機(jī)是目前最流行的8位單片機(jī)。51單片機(jī)是對(duì)所有兼容Intel8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flashrom技術(shù)的發(fā)展,8031單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。5
5、1單片機(jī)是基礎(chǔ)入門(mén)的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機(jī)一般不具備自編程能力。第二章 DAC0832及其特性2.1 D/A轉(zhuǎn)換器與單片機(jī)接口探究D/A轉(zhuǎn)換器與單片機(jī)接口具有軟硬相依性。在連接過(guò)程中要考慮到數(shù)據(jù)線、地址線、控制線的連接。2.1.1 數(shù)據(jù)線連接 D/A轉(zhuǎn)換器與單片機(jī)接口要考慮到兩個(gè)問(wèn)題:一個(gè)是位數(shù),當(dāng)高于8位的D/A轉(zhuǎn)換器與8位數(shù)據(jù)總線的51單片機(jī)接口時(shí),51單片機(jī)的數(shù)據(jù)必須分時(shí)輸出,這時(shí)就必須考慮數(shù)據(jù)分時(shí)傳送的格式和輸出電壓“毛刺”問(wèn)題;二是D/A轉(zhuǎn)化器的內(nèi)部結(jié)構(gòu),當(dāng)D/A轉(zhuǎn)換器的內(nèi)部結(jié)構(gòu)沒(méi)有輸入鎖存器時(shí),必須在單片機(jī)與D/A轉(zhuǎn)換器之間增設(shè)鎖存器或者I/
6、O口。最常用的是8位帶鎖存端的D/A轉(zhuǎn)換器與8位單片機(jī)的接口,這時(shí)只需要將單片機(jī)的數(shù)據(jù)總線和D/A轉(zhuǎn)換器的8位數(shù)據(jù)輸入端一一對(duì)應(yīng)即可。2.1.2 地址線連接 一般的D/A轉(zhuǎn)換器只有片選信號(hào),而沒(méi)有地址線。這時(shí)單片機(jī)的地址線采用全譯碼或者部分譯碼,經(jīng)譯碼器輸出控制片選信號(hào),也可以用某一位I/O線來(lái)控制片選信號(hào)。也有少數(shù)D/A轉(zhuǎn)換器有少量的地址線,用于選中片內(nèi)獨(dú)立的寄存器或者選擇輸出通道,這時(shí)單片機(jī)執(zhí)行的地址線與D/A轉(zhuǎn)換器的地址線對(duì)應(yīng)連接。2.1.3 控制線連接D/A轉(zhuǎn)換器主要有片選信號(hào)、寫(xiě)信號(hào)、及啟動(dòng)轉(zhuǎn)換信號(hào)等,一般由單片機(jī)的有關(guān)引腳或譯碼器提供。一般來(lái)說(shuō),寫(xiě)信號(hào)多由單片機(jī)的信號(hào)控制;啟動(dòng)信號(hào)
7、常常由片選信號(hào)與寫(xiě)信號(hào)的組合形式(LE1、LE2)形成,當(dāng)單片機(jī)執(zhí)行一條輸出指令時(shí),傳送的地址使轉(zhuǎn)換器的片選信號(hào)有效,由實(shí)現(xiàn)啟動(dòng)。(具體實(shí)現(xiàn)原理見(jiàn)1.2節(jié))2.2 DAC0832的認(rèn)識(shí)圖1.1 DAC0832的管腳結(jié)構(gòu)2.2.1 DAC0832的結(jié)構(gòu)DAC0832的結(jié)構(gòu)如圖1.1所示,主要由控制邏輯電路、輸入寄存器、DAC寄存器和D/A轉(zhuǎn)換器構(gòu)成。由上圖邏輯控制電路可知:LE1=(+)ILELE2=+ 由LE1控制輸入寄存器讀入數(shù)據(jù),由LE2控制輸入寄存器向DAC寄存器傳輸數(shù)據(jù),同時(shí)開(kāi)始D/A轉(zhuǎn)換。2.2.2 DAC0832的引腳DAC0832的引腳如圖1.1所示:DI0DI7:8位數(shù)據(jù)輸入線
8、,高電平有效。ILE:數(shù)據(jù)鎖存允許控制輸入線,高電平有效。:片選信號(hào)輸入線,低電平有效。:輸入鎖存器寫(xiě)選通輸入線,負(fù)脈沖有效。輸入鎖存器的信號(hào)就是LE1。LE1負(fù)跳變有效。:數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效。:DAC寄存器寫(xiě)選通信號(hào)輸入線,負(fù)脈沖有效。DAC鎖存信號(hào)就是LE2,LE2的負(fù)跳變有效。:模擬電流輸出線。:模擬電流輸出線,采用單極性輸出時(shí),通常接地。:反饋信號(hào)輸入線。反饋電阻被制作在芯片里,用作外接運(yùn)放的反饋電阻,為D/A轉(zhuǎn)換器提供電壓輸出。:參考電壓輸入端。要求外接一精密電壓源,電壓范圍在-10V+10V之間選定。通過(guò)的符號(hào)來(lái)改變輸出極性。:電源接口。AGND:模擬地。DGND:
9、數(shù)字地。注:數(shù)字信號(hào)的高頻噪聲很大,如果模擬信地和數(shù)字地混合的話,就會(huì)把數(shù)字的噪聲傳到模擬部分,造成干擾。如果分開(kāi)的話,高頻噪聲可以在電源處通過(guò)濾波來(lái)消除掉。2.2.3 DAC0832的啟動(dòng)控制方式 DAC0832有三種啟動(dòng)控制方式: (1)直通方式:將、信號(hào)都接地,ILE信號(hào)引腳接高電平,只要數(shù)據(jù)傳送到數(shù)據(jù)線上,兩級(jí)鎖存器同時(shí)開(kāi)始工作,并啟動(dòng)D/A轉(zhuǎn)換,即轉(zhuǎn)換器處于非受控狀態(tài)。在這種工作方式下,轉(zhuǎn)換器的數(shù)據(jù)線不能直接和單片機(jī)的數(shù)據(jù)線(P0.0P0.7)相連接。因?yàn)镻0口分時(shí)復(fù)用為低8位的地址總線和數(shù)據(jù)總線,對(duì)輸出無(wú)鎖存能力,會(huì)使轉(zhuǎn)換器的輸出不確定。但是可以將ADC的數(shù)據(jù)線連接到某個(gè)I/O口上
10、,執(zhí)行端口輸出指令(MOV Px A)即可啟動(dòng)一次D/A轉(zhuǎn)換。這種方式很少采用。 (2)單緩沖方式:兩級(jí)鎖存器接受同一種控制,例如將和直接接地,8位ADC鎖存器處于非受控狀態(tài),只有8位輸入鎖存器處于受控狀態(tài),即此時(shí)僅有LE1控制ADC。這種方式在不要求多個(gè)模擬同步輸出時(shí)采用。 (3)雙緩沖方式: 倆個(gè)鎖存器都處于受控狀態(tài),單片機(jī)要對(duì)轉(zhuǎn)換器進(jìn)行兩步寫(xiě)操作:第一次執(zhí)行指令使LE1有效,稱作第一級(jí)緩沖,第二次執(zhí)行指令使LE2有效,稱作第二級(jí)緩沖。這種方式的優(yōu)點(diǎn)是數(shù)據(jù)接收和啟動(dòng)轉(zhuǎn)換可以異步進(jìn)行,可在D/A轉(zhuǎn)換的同時(shí)接收下一個(gè)轉(zhuǎn)換數(shù)據(jù),以提高轉(zhuǎn)換速度,還可以實(shí)現(xiàn)多個(gè)轉(zhuǎn)換器同時(shí)啟動(dòng)轉(zhuǎn)換,同步輸出。第三章
11、硬件設(shè)計(jì)3.1 啟動(dòng)方式選擇 因?yàn)楸驹O(shè)計(jì)要求設(shè)計(jì)一個(gè)波形發(fā)生器,要求能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波,而且由按鍵控制輸出的波形。故各個(gè)波形輸出并非同步輸出,而是由按鍵控制,單個(gè)輸出,并且本例只需要一個(gè)DAC,如果選擇雙緩沖方式就會(huì)加大不必要的難度;直通方式不能有效的控制DAC轉(zhuǎn)換,轉(zhuǎn)換時(shí)可能會(huì)出現(xiàn)數(shù)據(jù)流失。故選擇單緩沖啟動(dòng)控制方式來(lái)驅(qū)動(dòng)DAC0832。3.2 框圖設(shè)計(jì)根據(jù)2.1節(jié)的判斷,選擇AT89c51單片機(jī)作控制,實(shí)現(xiàn)電路框如下:圖2.1 硬件設(shè)計(jì)框圖3.3 電路圖設(shè)計(jì)根據(jù)以上框圖,選擇+12V的基準(zhǔn)電壓,選擇一級(jí)集成運(yùn)放作放大電路,連接A/D轉(zhuǎn)換電路圖如下:圖2.2 單片機(jī)與A
12、DC的連接方式 此外加上單片機(jī)最小系統(tǒng),用P1口控制輸出的波形,電路連接如下:圖2.3 電路原理圖第四章 程序設(shè)計(jì)4.1 程序流程圖4.1.1 程序設(shè)計(jì)思路 (1)因?yàn)橐褂玫桨粹o(本例中選擇獨(dú)立按鍵),必須使用到鍵盤(pán)掃描,首先要進(jìn)行鍵盤(pán)消抖,然后通過(guò)掃描確定是哪個(gè)按鍵被按下,通過(guò)I/O口(本例中為P1口)的數(shù)據(jù)判斷選擇五種波形中的哪一個(gè); (2)根據(jù)(1)中的結(jié)果,通過(guò)編程產(chǎn)生各個(gè)波形的數(shù)字信號(hào); (3)控制DAC轉(zhuǎn)換數(shù)字信號(hào)為模擬信號(hào)。程序框圖如下:圖3.1 程序設(shè)計(jì)思路4.1.2流程圖在本流程圖中分別以k1、k2、k3、k4、k5代表單片機(jī)的I/O口P1.0、P1.1、P1.2、P1.3
13、、P1.4;設(shè)置flag1、flag2、flag3、flag4、flag5為1時(shí)分別代表方波、正弦波、三角波、梯形波、鋸齒波。當(dāng)確認(rèn)按鍵按下時(shí),令相對(duì)應(yīng)的flagx=1,然后用連續(xù)的判斷程序來(lái)選擇將要輸出的波形。程序?qū)崿F(xiàn)了只需按一下按鈕便可持續(xù)輸出對(duì)應(yīng)的波形。流程圖如下: 圖3.2 程序流程圖4.2 用C語(yǔ)言實(shí)現(xiàn) 根據(jù)程序流程圖用C語(yǔ)言編程,得C語(yǔ)言實(shí)現(xiàn)的代碼為:#include #include #define DAC0832 XBYTE0x7fff sbit k1=P10; sbit k2=P11; sbit k3=P12; sbit k4=P13;sbit k5=P14;int flag
14、1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian256= 此處省略為正弦波數(shù)字信號(hào) ;void delay() /延時(shí)程序 int i; for(i=0;i1000;i+); void panduan(void) /函數(shù)panduan用于掃描按鍵狀態(tài),判斷輸出波形 if(k1=1) /按鍵消抖 delay(); if(k1=1) /通過(guò)賦值flag選擇波形 flag1=1;flag2=0;flag3=0;flag4=0;flag5=0; if(k2=1) delay(); if(k2
15、=1) flag1=0; flag2=1;flag3=0;flag4=0;flag5=0; if(k3=1) delay(); if(k3=1) flag1=0;flag2=0;flag3=1;flag4=0;flag5=0; if(k4=1) delay(); if(k4=1) flag1=0;flag2=0;flag3=0;flag4=1;flag5=0; if(k5=1) delay(); if(k5=1) flag1=0;flag2=0;flag3=0;flag4=0;flag5=1; void boxing(void) /函數(shù)boxing用于產(chǎn)生選擇好的波形 if(flag1=1)
16、/產(chǎn)生方波 DAC0832=0x00; delay(); DAC0832=0xff; delay(); else if(flag2=1) /產(chǎn)生正弦波 int i; for(i=0;i256;i+) DAC0832=zhengxiani; else if(flag3=1) /三角波 int i; for(i=0;i0;i-) DAC0832=i; else if(flag4=1) /梯形波 int i; for(i=0;i255;i+) DAC0832=0; for(i=0;i0;i-) DAC0832=0XFF; for(i=255;i0;i-) DAC0832=i; else if(fla
17、g5=1) /鋸齒波 int i; for(i=0;i255;i+) DAC0832=i; void main() /主函數(shù) P1=0x00; while(1) panduan(); boxing(); 4.3 用匯編語(yǔ)言實(shí)現(xiàn)在用C語(yǔ)言實(shí)現(xiàn)設(shè)計(jì)之后,我又嘗試使用匯編語(yǔ)言完成任務(wù),由于對(duì)匯編語(yǔ)言還不夠熟悉,只做到了以開(kāi)關(guān)控制的矩形波、三角波、梯形波和鋸齒波。程序?yàn)椋篠TART: MOV DPTR ,#7FFFH MOV A,#00 LOOP: MOV R0 ,#00 MOV P1 ,R0 MOV R0 ,P1 JB P1.0 , K0 JB P1.1 , K1 JB P1.2 , K2 JB P
18、1.3 , K3 K0: AJMP LOOP1 K1: AJMP LOOP2 K2: AJMP LOOP3 K3: AJMP LOOP4 LOOP1: MOV A,#00 ;LOOP1:方波 MOVX DPTR ,A MOV R1, #255 MOV R4, #255 DEL1: DJNZ R1,$ DJNZ R4, DEL1 MOV A,#255 MOVX DPTR ,A MOV R1, #255 MOV R4, #255 DEL2: DJNZ R1,$ DJNZ R4, DEL2 LJMP LOOPLOOP2: ;LOOP3:三角波形 UP: MOVX DPTR,A INC A CJNE
19、A,#0FFH,UPDOWN:MOVX DPTR,A DEC A CJNE A,#00H,DOWN LJMP LOOPLOOP3: ;LOOP4:梯形波 UP1: MOVX DPTR,A ;上升階段 INC A CJNE A,#0FFH,UP1 MOVX DPTR ,A ;上底 MOV R1, #255 DJNZ R1,$ DOWN1:MOVX DPTR,A ;下降階段 DEC A CJNE A,#00H,DOWN1 MOVX DPTR ,A ;下底 MOV R1, #255 DJNZ R1,$ LJMP LOOPLOOP4: MOVX DPTR ,A ;LOOP5:鋸齒波 INC A MOV R1, #10 DJNZ R1,$ LJMP LOOP END第五章 Proteus仿真及結(jié)果將程序代碼在Kill中編譯輸出.HEX文件,燒寫(xiě)進(jìn)單片機(jī)中,用Proteus仿真軟件仿真,得到的輸出波形為:5.1方波:圖5.1 輸出方波波形5.2正弦波:圖5.2 輸出正弦波形5.3三角波:圖5.3 輸出三角波形5.4梯形波:圖5.4 輸出梯形波形5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東小學(xué)閱讀題目及答案
- 散文命題題目大全及答案
- 容易上鉤的題目及答案
- 2025屆廣西桂林市高三第一次跨市聯(lián)合模擬檢測(cè)(一模)語(yǔ)文試題(解析版)
- 2025年秋三年級(jí)上冊(cè)語(yǔ)文同步教案 11 寶葫蘆的秘密(節(jié)選)
- 房屋加層申請(qǐng)書(shū)范文
- 佛山超市保安管理制度
- 供應(yīng)醫(yī)療冷庫(kù)管理制度
- 供暖設(shè)施設(shè)備管理制度
- 供水單位臺(tái)賬管理制度
- 預(yù)防糧庫(kù)糧堆坍塌埋人事故
- 行政前臺(tái)面試試題及答案
- 2024衡水桃城區(qū)中小學(xué)教師招聘考試試題及答案
- 文旅知識(shí)培訓(xùn)課件
- 2025年行政執(zhí)法人員行政執(zhí)法資格證考試必考題庫(kù)及答案(共340題)
- 資源編排視角下立訊精密連續(xù)并購(gòu)的價(jià)值創(chuàng)造研究
- 2023西寧中考物理試題(附參考答案)
- 北師大版歷史七年級(jí)下冊(cè)第2課《唐太宗與貞觀之治》聽(tīng)課評(píng)課記錄
- 2025年中考化學(xué)二輪復(fù)習(xí)熱點(diǎn)題型訓(xùn)練:化學(xué)思維方法(原卷版)
- 電大《11872國(guó)際經(jīng)濟(jì)法》期末終考題庫(kù)及答案
- 貴州貴安發(fā)展集團(tuán)有限公司筆試
評(píng)論
0/150
提交評(píng)論