波形發(fā)生器課程設(shè)計79491_第1頁
波形發(fā)生器課程設(shè)計79491_第2頁
波形發(fā)生器課程設(shè)計79491_第3頁
波形發(fā)生器課程設(shè)計79491_第4頁
波形發(fā)生器課程設(shè)計79491_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、波形發(fā)生器設(shè)計設(shè)計總說明本系統(tǒng)采用AT89C51單片機作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)運算放大器、按鍵等。采用AT89C51單片機和DAC0832芯片,直接連接鍵盤和顯示。該種方案主要對AT89C51單片機的各個I/O口充分利用. P1口是連接鍵盤以及接顯示電路,P2口連接DAC0832輸出波形.這樣總體來說,能對單片機各個接口都利用上,而不在多用其它芯片,從而減小了系統(tǒng)的成本.也對按照系統(tǒng)便攜式低頻信號發(fā)生器的要求所完成.占用空間小,使用芯片少,低功耗。通過按鍵控制可產(chǎn)生方波、三角波、正弦波、梯形波、鋸齒波。其設(shè)計簡單、性能優(yōu)好,具有一定的實用性。正弦波、三角波、方

2、波、梯形波、鋸齒波是較為常見的信號。在科學(xué)研究及教學(xué)實驗中常常需要這幾種信號的發(fā)生裝置。關(guān)鍵字:AT89C5,DAC0832,運算放大器目錄1緒論11.1設(shè)計目的11.2設(shè)計內(nèi)容12系統(tǒng)設(shè)計方案22.1系統(tǒng)組成22.2系統(tǒng)工作原理23系統(tǒng)硬件電路設(shè)計33.1單片機最小系統(tǒng)設(shè)計33.2其他硬件模塊電路設(shè)計33.2.1 DAC0832芯片介紹3單片機AT89C51介紹54系統(tǒng)軟件程序設(shè)計84.1主程序設(shè)計84.2其他子程序設(shè)計9鋸齒波流程設(shè)計9梯形波流程設(shè)計10三角波流程設(shè)計11方波流程設(shè)計12正弦波流程設(shè)計135調(diào)試與仿真166總結(jié)18致謝19參考文獻(xiàn)201 緒論1.1設(shè)計目的 (1)利用所學(xué)單

3、片機的理論知識進(jìn)行軟硬件整體設(shè)計,鍛煉學(xué)生理論聯(lián)系實際、提高我們的綜合應(yīng)用能力。 (2)我們這次的課程設(shè)計是以單片機為基礎(chǔ),設(shè)計并開發(fā)能輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波)且頻率、幅度可變的函數(shù)發(fā)生器。 (3)掌握各個接口芯片(如0832等)的功能特性及接口方法,并能運用其實現(xiàn)一個簡單的微機應(yīng)用系統(tǒng)功能器件。 (4)在平時的學(xué)習(xí)中,我們所學(xué)的知識大都是課本上的,在機房的練習(xí)大家也都是分散的對各個章節(jié)的內(nèi)容進(jìn)行練習(xí)。因此,缺乏一種系統(tǒng)的設(shè)計鍛煉。在課程所學(xué)結(jié)束以后,這樣的課程設(shè)計十分有助于學(xué)生的知識系統(tǒng)的總結(jié)到一起。 (5)通過這幾個波形進(jìn)行組合形成了一個函數(shù)發(fā)生器,使得我對系統(tǒng)

4、的整個框架的設(shè)計有了一個很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家微機知識的應(yīng)用。1.2設(shè)計內(nèi)容 (1)利用設(shè)計一個能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器。(2)以單片機為核心,利用數(shù)模轉(zhuǎn)換芯片0832完成數(shù)模轉(zhuǎn)換。(3)以按鍵來選擇要產(chǎn)生的波形。(4)用示波器觀察波形。2 系統(tǒng)設(shè)計方案2.1系統(tǒng)組成 系統(tǒng)采用AT89C51單片機和DAC0832芯片,直接連接鍵盤和顯示。該種方案主要對AT89C51單片機的各個I/O口充分利用. P1口是連接鍵盤以及接顯示電路,P2口連接DAC0832輸出波形。2.2系統(tǒng)工作原理 (1)課設(shè)需要各個波形的基本輸出。如輸出鋸

5、齒波、三角波、方波、正弦波。這些波形的實現(xiàn)的具體步驟:鋸齒波實現(xiàn)很簡單,只需要一開始定義一個初值,然后不斷的加1,當(dāng)溢出后又重初值開始加起,就這樣循環(huán)下去。三角波的實驗過程是先加后減,實現(xiàn)方法是先是從00H開始加1直到溢出后就執(zhí)行減1操作,就這樣不斷調(diào)用這個循環(huán)。方波的實現(xiàn)方法是連續(xù)輸出一個數(shù),到某個時候就改變一下值,可以把值定義為正極性的,也可以是負(fù)極性。正弦波的實現(xiàn)是非常麻煩的。它的實現(xiàn)過程是通過定義一些數(shù)據(jù),然后執(zhí)行時直接輸出定義的數(shù)據(jù)就可以了。(2)通過P1口和開關(guān)K0-K4相連接來控制各個波形的輸出。能根據(jù)k0-k5鍵狀態(tài)進(jìn)行波形切換,當(dāng)某一按鍵按下時,輸出相對應(yīng)的波形。3系統(tǒng)硬件電

6、路設(shè)計3.1單片機最小系統(tǒng)設(shè)計 單片機外圍晶振電路是通過單片機的XTAL1引腳和XTAL2引腳接入的。本設(shè)計的電容C1、C2使用10pF,晶振頻率選擇為11.0592MHZ。復(fù)位電路是通過單片機的RST引腳接入的。本設(shè)計的電容C3使用1nF,電源使用+5u。單片機最小系統(tǒng)如下圖所示:圖3-1 單片機最小系統(tǒng)3.2其他硬件模塊電路設(shè)計 DAC0832芯片介紹0832采用雙緩沖接口方式,其傳送控制端接地,輸入所存允許斷ILE與+5V電源相連,利用一個地址碼進(jìn)行二次輸出操作,完成數(shù)據(jù)的傳送和激動轉(zhuǎn)換,第一次操作室P2.6為高電平,將P0口數(shù)據(jù)線上的數(shù)據(jù)鎖存于DAC0832的輸入寄存器中。第二次操作是

7、寫控制信號由效,傳送控制端為低電平,將輸入寄存器中的內(nèi)容鎖存入0832的DAC寄存器中,D/A轉(zhuǎn)換器便開始對鎖存于DAC寄存器的8位數(shù)據(jù)進(jìn)行轉(zhuǎn)換,約經(jīng)過1/2時鐘周期后,在輸出端(IOUT2、IOUT1)建立穩(wěn)定的電流輸出。運放的作用是將0832輸出的模擬電流信號轉(zhuǎn)換為電壓波形。DAC0832為一個8位D/A轉(zhuǎn)換器,單電源供電,在+5+15V范圍內(nèi)均可正常工作?;鶞?zhǔn)電壓的范圍為10V,電流建立時間為1s,CMOS工藝,低功耗20mW。DAC0832的內(nèi)部結(jié)構(gòu)框圖如下圖所示。圖3-2 DA0832內(nèi)部結(jié)構(gòu)框圖DAC0832的外部引腳及功能介紹圖如下:圖3-3 DA0832外部引腳圖DAC0832

8、內(nèi)部結(jié)構(gòu)資料:芯片內(nèi)有兩級輸入寄存器,使DAC0832具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多路D/A異步輸入、同步轉(zhuǎn)換等)。D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。要是需要相應(yīng)的模擬信號,可通過一個高輸入阻抗的線性運算放大器實現(xiàn)這個供功能。運放的反饋電阻可通過RFB端引用片內(nèi)固有電阻,還可以外接DI0DI7:數(shù)據(jù)輸入線,TLL電平。 ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。 CS:片選信號輸入線,低電平有效。 WR1:為輸入寄存器的寫選通信號。 XFER:數(shù)據(jù)傳送控制信號輸入線,低電平有效。 WR2:為DAC寄存器寫選通輸入線。 Iout1:電流輸出線。當(dāng)輸入全

9、為1時Iout1最大。 Iout2: 電流輸出線。其值與Iout1之和為一常數(shù)。 Rfb:反饋信號輸入線,芯片內(nèi)部有反饋電阻. Vcc:電源輸入線 (+5v+15v) Vref:基準(zhǔn)電壓輸入線 (-10v+10v) AGND:模擬地,摸擬信號和基準(zhǔn)電源的參考地. DGND:數(shù)字地,兩種地線在基準(zhǔn)電源處共地比較好單片機AT89C51介紹AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器

10、制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如下圖所示:圖3-4 AT89C51引腳排列圖AT89C51管腳說明:VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作

11、為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或1

12、6位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地

13、址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/

14、VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。4系統(tǒng)軟件程序設(shè)計4.1主程序設(shè)計 ORG 0000HLJMP MAINORG 0003H LJMP INT00ORG 0040HMAIN: MOV SP,60HSETB IT0SETB EASETB EX0INT00: CLR EAPUS

15、H PSWPUSH AccSETB EAJNB P1.0,IR0JNB P1.1,IR1JNB P1.2,IR2JNB P1.3,IR3JNB P1.4,IR4INTIR: CLR EAPOP AccPOP PSWSETB EARETI4.2其他子程序設(shè)計 鋸齒波流程設(shè)計 鋸齒波的實現(xiàn)過程是首先定義一個初值然后進(jìn)行加法操作,加的步數(shù)的多少則根據(jù)要求的頻率來進(jìn)行。然后加到某個數(shù)之后就再重新設(shè)置為初值,再重復(fù)執(zhí)行剛剛的操作,如此循環(huán)下去。鋸齒波發(fā)生流程圖如下圖所示:圖4-1 鋸齒波發(fā)生流程圖鋸齒波發(fā)生子程序如下:IR0:MOV R0,#0FEH MOV A,#00HLOOP:MOVX R0,A J

16、B P1.0,INTIR INC A SJMP LOOP LJMP INTIR 梯形波流程設(shè)計 梯形波的實現(xiàn)是設(shè)置一個初值,然后進(jìn)行加一,當(dāng)加到某個數(shù)時延時,之后減一,減到初值時在返回到之前的操作,繼續(xù)加一、延時、減一。梯形波發(fā)生流程圖如下圖所示:圖4-2 梯形波發(fā)生流程圖梯形波發(fā)生子程序如下:IR1:MOV R0,#0FEH MOV A,#00HUP:MOVX R0,AJB P1.1,INTIRINC AJNZ UPDEC ALCALL DELAYJB P1.1,INTIRDOWN:DEC AMOVX R0,AJB P1.1,INTIRJNZ DOWNSJMP UP LJMP INTIR D

17、ELAY:MOV R7,#100 DELAY1:MOV R6,#10NOPDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RET三角波流程設(shè)計 三角波的實現(xiàn)是設(shè)置一個初值,當(dāng)加到某個值的時候,執(zhí)行減一操作,減到初值時,再加一。三角波發(fā)生流程圖如下圖所示: 圖4-3 三角波發(fā)生流程圖三角波發(fā)生子程序如下:IR2: MOV R0,#0FEHMOV A,#00HUP2:MOVX R0,AJB P1.2,INTIRINC AJNZ UP2 DOWN2:DEC A MOVX R0,AJB P1.2,INTIRJNZ DOWN2 SJMP UP2LJMP INTIR 方波流程設(shè)計方波

18、的實現(xiàn)只需開始的時候設(shè)置一個初值然后直接輸出這個值就行了,輸出一段時間后,然后再重新置一個數(shù)據(jù),然后再輸出這個數(shù)據(jù)一段時間,但是此時的時間一定要等于前面那段時間。這樣才是一個方波,如果兩個時間不相同,那就相當(dāng)于一個脈沖波。方波發(fā)生流程圖如下圖所示:圖4-4 方波發(fā)生流程圖方波發(fā)生子程序如下:IR3:MOV R0,#0FEH POSI:MOV A,#00H MOVX R0,ALCALL DELAYJB P1.3,INTIRNEGA:MOV A,#0FFHMOVX R0,ALCALL DELAYJB P1.3,INTIRSJMP POSILJMP INTIR 4.2.5正弦波流程設(shè)計正弦波的實現(xiàn)需

19、要查表,每查一次表,輸出一個數(shù)值,之后查下一個數(shù)值繼續(xù)輸出,當(dāng)一個波形的256個數(shù)值全部輸出之后,從頭開始繼續(xù)輸出。正弦波發(fā)生流程圖如下圖所示:圖4-5 正弦波發(fā)生流程圖正弦波發(fā)生子程序如下:IR4: MOV R0,#0FEH MOV R1,#00HXX:MOV A,R1LCALL HANSHUMOVX R0,AJB P1.4,INTIRINC R1SJMP XXLJMP INTIRHANSHU:MOV DPTR,#TAB1MOVC A,A+DPTRRETTAB1: db 080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0

20、a5h,0a8h,0abh,0aehdb 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8hdb 0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4hdb 0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffhdb 0ffh,0ffh,0ffh,0ffh,0feh,0feh,0fe

21、h,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6hdb 0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh,0dchdb 0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3hdb 0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083hdb 080h,

22、07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052hdb 04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02bh,028hdb 026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00chdb 00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h

23、,002h,001h,001h,000hdb 000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ahdb 00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024hdb 026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dhdb 04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh 5 調(diào)試與仿真本次的設(shè)計主要應(yīng)用了protues軟件進(jìn)行系統(tǒng)設(shè)計和仿真,經(jīng)過仿真后,結(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論