版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
波形發(fā)生器設(shè)計(jì)目錄摘要 1第一章 緒論 2第二章 DAC0832及其特征 32.1D/A轉(zhuǎn)換器和單片機(jī)接口探究 32.1.1數(shù)據(jù)線連接 32.1.2地址線連接 32.1.3控制線連接 32.2DAC0832認(rèn)識(shí) 42.2.1DAC0832結(jié)構(gòu) 42.2.2DAC0832引腳 42.2.3DAC0832開(kāi)啟控制方法 5第三章硬件設(shè)計(jì) 73.1開(kāi)啟方法選擇 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.3三角波: 185.4梯形波: 185.5鋸齒波: 19設(shè)計(jì)心得: 20參考文件: 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單緩沖開(kāi)啟控制方法,完成電路框圖。深入依據(jù)設(shè)計(jì)要求完成經(jīng)過(guò)獨(dú)立按鍵控制D/A輸出,作出電路框圖和電路原理圖。軟件方面:設(shè)計(jì)思緒關(guān)鍵表現(xiàn)在兩點(diǎn)上。一是控制,經(jīng)過(guò)程序控制DAC轉(zhuǎn)換和輸出,按鍵消抖,選擇對(duì)應(yīng)立即輸出波形。二是產(chǎn)生波形,依據(jù)波形特點(diǎn)編寫(xiě)程序以產(chǎn)生對(duì)應(yīng)波形數(shù)字信號(hào)。分別經(jīng)過(guò)C語(yǔ)言和匯編語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易波形發(fā)生器,輸出方波、正弦波、三角波、梯形波和鋸齒波,經(jīng)過(guò)獨(dú)立按鍵控制分別輸出不一樣波形。以KILL和Proteus為設(shè)計(jì)平臺(tái),仿真測(cè)試設(shè)計(jì)結(jié)果正確性。關(guān)鍵字:51單片機(jī),DAC0832,單緩沖開(kāi)啟控制方法,波形發(fā)生器,C語(yǔ)言設(shè)計(jì),匯編語(yǔ)言設(shè)計(jì)緒論單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是經(jīng)典嵌入式微控制器(MicrocontrollerUnit),常見(jiàn)英文字母縮寫(xiě)MCU表示單片機(jī),單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功效芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)由運(yùn)算器,控制器,存放器,輸入輸出設(shè)備組成,相當(dāng)于一個(gè)微型計(jì)算機(jī)(最小系統(tǒng)),和計(jì)算機(jī)相比,單片機(jī)缺乏了外圍設(shè)備等。概括講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它體積小、質(zhì)量輕、價(jià)格廉價(jià)、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理和結(jié)構(gòu)最好選擇。它最早是被用在工業(yè)控制領(lǐng)域。51單片機(jī)是現(xiàn)在最流行8位單片機(jī)。51單片機(jī)是對(duì)全部兼容Intel8031指令系統(tǒng)單片機(jī)統(tǒng)稱(chēng)。該系列單片機(jī)始祖是Intel8031單片機(jī),以后伴隨Flashrom技術(shù)發(fā)展,8031單片機(jī)取得了長(zhǎng)足進(jìn)展,成為應(yīng)用最廣泛8位單片機(jī)之一,其代表型號(hào)是ATMEL企業(yè)AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多企業(yè)全部有51系列兼容機(jī)型推出,以后很長(zhǎng)一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門(mén)一個(gè)單片機(jī),還是應(yīng)用最廣泛一個(gè)。需要注意是52系列單片機(jī)通常不含有自編程能力。DAC0832及其特征2.1D/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/O口。最常見(jiàn)是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ī)實(shí)施地址線和D/A轉(zhuǎn)換器地址線對(duì)應(yīng)連接。2.1.3控制線連接D/A轉(zhuǎn)換器關(guān)鍵有片選信號(hào)、寫(xiě)信號(hào)、及開(kāi)啟轉(zhuǎn)換信號(hào)等,通常由單片機(jī)相關(guān)引腳或譯碼器提供。通常來(lái)說(shuō),寫(xiě)信號(hào)多由單片機(jī)信號(hào)控制;開(kāi)啟信號(hào)常常由片選信號(hào)和寫(xiě)信號(hào)組合形式(LE1、LE2)形成,當(dāng)單片機(jī)實(shí)施一條輸出指令時(shí),傳送地址使轉(zhuǎn)換器片選信號(hào)有效,由實(shí)現(xiàn)開(kāi)啟。(具體實(shí)現(xiàn)原理見(jiàn)1.2節(jié))2.2DAC0832認(rèn)識(shí)圖1.1DAC0832管腳結(jié)構(gòu)2.2.1DAC0832結(jié)構(gòu)DAC0832結(jié)構(gòu)圖1.1所表示,關(guān)鍵由控制邏輯電路、輸入寄存器、DAC寄存器和D/A轉(zhuǎn)換器組成。由上圖邏輯控制電路可知:LE1=(+)ILELE2=+由LE1控制輸入寄存器讀入數(shù)據(jù),由LE2控制輸入寄存器向DAC寄存器傳輸數(shù)據(jù),同時(shí)開(kāi)始D/A轉(zhuǎn)換。2.2.2DAC0832引腳DAC0832引腳圖1.1所表示:DI0~DI7:8位數(shù)據(jù)輸入線,高電平有效。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之間選定。經(jīng)過(guò)符號(hào)來(lái)改變輸出極性。:電源接口。AGND:模擬地。DGND:數(shù)字地。注:數(shù)字信號(hào)高頻噪聲很大,假如模擬信地和數(shù)字地混合話,就會(huì)把數(shù)字噪聲傳到模擬部分,造成干擾。假如分開(kāi)話,高頻噪聲能夠在電源處經(jīng)過(guò)濾波來(lái)消除掉。2.2.3DAC0832開(kāi)啟控制方法DAC0832有三種開(kāi)啟控制方法:(1)直通方法:將、、、信號(hào)全部接地,ILE信號(hào)引腳接高電平,只要數(shù)據(jù)傳送到數(shù)據(jù)線上,兩級(jí)鎖存器同時(shí)開(kāi)始工作,并開(kāi)啟D/A轉(zhuǎn)換,即轉(zhuǎn)換器處于非受控狀態(tài)。在這種工作方法下,轉(zhuǎn)換器數(shù)據(jù)線不能直接和單片機(jī)數(shù)據(jù)線(P0.0~P0.7)相連接。因?yàn)镻0口分時(shí)復(fù)用為低8位地址總線和數(shù)據(jù)總線,對(duì)輸出無(wú)鎖存能力,會(huì)使轉(zhuǎn)換器輸出不確定。不過(guò)能夠?qū)DC數(shù)據(jù)線連接到某個(gè)I/O口上,實(shí)施端口輸出指令(MOVPxA)即可開(kāi)啟一次D/A轉(zhuǎn)換。這種方法極少采取。(2)單緩沖方法:兩級(jí)鎖存器接收同一個(gè)控制,比如將和直接接地,8位ADC鎖存器處于非受控狀態(tài),只有8位輸入鎖存器處于受控狀態(tài),即此時(shí)僅有LE1控制ADC。這種方法在不要求多個(gè)模擬同時(shí)輸出時(shí)采取。(3)雙緩沖方法:倆個(gè)鎖存器全部處于受控狀態(tài),單片機(jī)要對(duì)轉(zhuǎn)換器進(jìn)行兩步寫(xiě)操作:第一次實(shí)施指令使LE1有效,稱(chēng)作第一級(jí)緩沖,第二次實(shí)施指令使LE2有效,稱(chēng)作第二級(jí)緩沖。這種方法優(yōu)點(diǎn)是數(shù)據(jù)接收和開(kāi)啟轉(zhuǎn)換能夠異步進(jìn)行,可在D/A轉(zhuǎn)換同時(shí)接收下一個(gè)轉(zhuǎn)換數(shù)據(jù),以提升轉(zhuǎn)換速度,還能夠?qū)崿F(xiàn)多個(gè)轉(zhuǎn)換器同時(shí)開(kāi)啟轉(zhuǎn)換,同時(shí)輸出。第三章硬件設(shè)計(jì)3.1開(kāi)啟方法選擇因?yàn)楸驹O(shè)計(jì)要求設(shè)計(jì)一個(gè)波形發(fā)生器,要求能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波,而且由按鍵控制輸出波形。故各個(gè)波形輸出并非同時(shí)輸出,而是由按鍵控制,單個(gè)輸出,而且本例只需要一個(gè)DAC,假如選擇雙緩沖方法就會(huì)加大無(wú)須要難度;直通方法不能有效控制DAC轉(zhuǎn)換,轉(zhuǎn)換時(shí)可能會(huì)出現(xiàn)數(shù)據(jù)流失。故選擇單緩沖開(kāi)啟控制方法來(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ī)和ADC連接方法另外加上單片機(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)消抖,然后經(jīng)過(guò)掃描確定是哪個(gè)按鍵被按下,經(jīng)過(guò)I/O口(本例中為P1口)數(shù)據(jù)判定選擇五種波形中哪一個(gè);(2)依據(jù)(1)中結(jié)果,經(jīng)過(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、P1.4;設(shè)置flag1、flag2、flag3、flag4、flag5為1時(shí)分別代表方波、正弦波、三角波、梯形波、鋸齒波。當(dāng)確定按鍵按下時(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<absacc.h>#include<reg51.h>#defineDAC0832XBYTE[0x7fff]sbitk1=P1^0;sbitk2=P1^1;sbitk3=P1^2;sbitk4=P1^3;sbitk5=P1^4;intflag1=0;intflag2=0;intflag3=0;intflag4=0;intflag5=0;unsignedcharcodezhengxian[256]={此處省略為正弦波數(shù)字信號(hào)};voiddelay()//延時(shí)程序{inti;for(i=0;i<1000;i++);}voidpanduan(void) //函數(shù)panduan用于掃描按鍵狀態(tài),判定輸出波形{if(k1==1){ //按鍵消抖delay(); if(k1==1) //經(jīng)過(guò)賦值flag選擇波形 flag1=1; flag2=0; flag3=0; flag4=0; flag5=0;}if(k2==1){delay(); if(k2==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;}}voidboxing(void) //函數(shù)boxing用于產(chǎn)生選擇好波形{if(flag1==1) //產(chǎn)生方波{ DAC0832=0x00;delay();DAC0832=0xff;delay(); }elseif(flag2==1) //產(chǎn)生正弦波{ inti; for(i=0;i<256;i++){ DAC0832=zhengxian[i]; } }elseif(flag3==1) //三角波{ inti;for(i=0;i<255;i++)DAC0832=i;for(i=255;i>0;i--)DAC0832=i; } elseif(flag4==1) //梯形波{ inti; for(i=0;i<255;i++)DAC0832=0; for(i=0;i<255;i++)DAC0832=i; for(i=255;i>0;i--)DAC0832=0XFF; for(i=255;i>0;i--)DAC0832=i; } elseif(flag5==1) //鋸齒波{ inti;for(i=0;i<255;i++)DAC0832=i; }}voidmain(){//主函數(shù)P1=0x00;while(1){ panduan(); boxing();}}4.3用匯編語(yǔ)言實(shí)現(xiàn)在用C語(yǔ)言實(shí)現(xiàn)設(shè)計(jì)以后,我又嘗試使用匯編語(yǔ)言完成任務(wù),因?yàn)閷?duì)匯編語(yǔ)言還不夠熟悉,只做到了以開(kāi)關(guān)控制矩形波、三角波、梯形波和鋸齒波。程序?yàn)椋篠TART:MOVDPTR,#7FFFHMOVA,#00LOOP:MOVR0,#00MOVP1,R0 MOVR0,P1 JBP1.0,K0 JBP1.1,K1 JBP1.2,K2 JBP1.3,K3K0:AJMPLOOP1K1:AJMPLOOP2K2:AJMPLOOP3K3:AJMPLOOP4LOOP1:MOVA,#00 ;LOOP1:方波 MOVX@DPTR,A MOVR1,#255 MOVR4,#255DEL1:DJNZR1,$ DJNZR4,DEL1 MOVA,#255 MOVX@DPTR,A MOVR1,#255 MOVR4,#255DEL2:DJNZR1,$ DJNZR4,DEL2 LJMPLOOPLOOP2: ;LOOP3:三角波形UP:MOVX@DPTR,AINCACJNEA,#0FFH,UPDOWN:MOVX@DPTR,ADECACJNEA,#00H,DOWNLJMPLOOPLOOP3: ;LOOP4:梯形波UP1:MOVX@DPTR,A ;上升階段INCACJNEA,#0FFH,UP1MOVX@DPTR,A ;上底 MOVR1,#255DJNZR1,$DOWN1:MOVX@DPTR,A ;下降階段DECACJNEA,#00H,DOWN1 MOVX@DPTR,A;下底 MOVR1,#255DJNZR1,$LJMPLOOPLOOP4:MOVX@DPTR,A ;LOOP5:鋸齒波INCA MOVR1,#10 DJNZR1,$ LJMPLOOPEND第五章Proteus仿真及結(jié)果將程序代碼在Kill中編
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空保安排水溝施工合同
- 課程設(shè)計(jì)聲光控led燈
- 網(wǎng)絡(luò)直播節(jié)目制作團(tuán)隊(duì)聘用協(xié)議
- 專(zhuān)業(yè)挖掘機(jī)租賃協(xié)議
- 租賃車(chē)輛合作協(xié)議
- 課程設(shè)計(jì)優(yōu)化的必要性
- 農(nóng)業(yè)生產(chǎn)小車(chē)司機(jī)招聘協(xié)議
- 藥品器材防偽識(shí)別指南
- 2024年專(zhuān)用:房地產(chǎn)價(jià)格保密合同
- 礦山環(huán)境保護(hù)宣傳招投標(biāo)
- 計(jì)算思維與程序設(shè)計(jì)課件
- 【核心素養(yǎng)目標(biāo)】浙教版五上《勞動(dòng)》項(xiàng)目二 任務(wù)二《制作七巧板》教學(xué)設(shè)計(jì)
- 云南省保山市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 沃爾瑪山姆會(huì)員店管理層結(jié)構(gòu)
- 承臺(tái)基礎(chǔ)模板施工方案完整
- 高考議論文寫(xiě)作指導(dǎo):議論文主體段落的寫(xiě)法 課件60張
- 小學(xué)二年級(jí)上冊(cè)《道德與法治》教材解讀分析
- 我不生氣了-完整版課件
- 區(qū)域經(jīng)濟(jì)發(fā)展戰(zhàn)略課件
- 2022屆高考語(yǔ)文專(zhuān)題復(fù)習(xí) 專(zhuān)題04 文言文閱讀(原卷版+解析版)
- DB32T 3957-2020 化工企業(yè)安全生產(chǎn)信息化管理平臺(tái)數(shù)據(jù)規(guī)范
評(píng)論
0/150
提交評(píng)論