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

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計(論文)課程名稱微機原理與單片機綜合設(shè)計與實踐 題目名稱 波形發(fā)生器的設(shè)計 學(xué)系學(xué)部 機電工程學(xué)部 專業(yè)班級 學(xué)號 學(xué)生姓名指導(dǎo)教師 2011年01月10日課程設(shè)計(論文)任務(wù)書題目名稱波形發(fā)生器的設(shè)計學(xué)系學(xué)部機電工程學(xué)部專業(yè)班級姓 名學(xué) 號一、課程設(shè)計(論文)的內(nèi)容設(shè)計一個能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器。設(shè)計要求:利用單片機P1.0引腳輸出頻率范圍1Hz1000Hz的正弦波、方波、三角波、梯形波、鋸齒波,并用示波器觀察。 二、課程設(shè)計(論文)的要求與數(shù)據(jù)1.總體設(shè)計方案、系統(tǒng)原理框圖;2.硬件電路各部分的電路原理圖;3.程序流程圖;4.源程序;5.結(jié)論三

2、、課程設(shè)計(論文)應(yīng)完成的工作1分析任務(wù)書,給出總體設(shè)計方案,畫出系統(tǒng)原理框圖;2硬件電路設(shè)計,給出主要電路原理圖;3軟件設(shè)計,給出程序流程圖,完成程序設(shè)計和軟件調(diào)試;4完成調(diào)試;5完成課程設(shè)計報告的撰寫,及時上交課程設(shè)計報告。四、課程設(shè)計(論文)進(jìn)程安排序號設(shè)計(論文)各階段內(nèi)容地點起止日期1下達(dá)設(shè)計任務(wù)書,理解設(shè)計要求,查閱資料 1-10712.302給出方案設(shè)計,完成系統(tǒng)總體設(shè)計1-1071.33硬件電路設(shè)計1-1071.4-1.54軟件設(shè)計:先給出各部分的程序流程圖1-1071.65軟件設(shè)計:編寫代碼1-1071.7-1.86撰寫課程設(shè)計報告1-1121.9-1.10五、應(yīng)收集的資料及

3、主要參考文獻(xiàn)1張毅剛,彭喜源,譚曉昀.MCS5系列單片機實用設(shè)計M.哈爾濱工業(yè)大學(xué)出版社, 2008.2胡漢才.單片機原理及接口技術(shù)M.清華大學(xué)出版社,2004. 3何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計M.北京航空航天大學(xué)出版社,2006. 4楊亭.電子CAD職業(yè)技能鑒定教程M.廣東科技出版社,2007.發(fā)出任務(wù)書日期: 2010年 12月30 日 指導(dǎo)教師簽名:計劃完成日期: 2011年 01 月10 日 教學(xué)單位責(zé)任人簽章:摘要波形發(fā)生器是一種常用的信號源,廣泛地應(yīng)用于電子電路、自動控制系統(tǒng)和教學(xué)實驗等領(lǐng)域。函數(shù)信號發(fā)生器是一種能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正

4、弦波的電路。函數(shù)信號發(fā)生器在電路實驗和設(shè)備檢測中具有十分廣泛的用途。通過對函數(shù)波形發(fā)生器的原理以及構(gòu)成分析,可設(shè)計一個能變換出三角波、正弦波、方波的函數(shù)波形發(fā)生器。目前使用的信號發(fā)生器大部分是函數(shù)信號發(fā)生器,且特殊波形發(fā)生器的價格昂貴。所以本設(shè)計使用的是DAC0832芯片構(gòu)成的發(fā)生器,可產(chǎn)生三角波、方波、正弦波等多種特殊波形和任意波形,波形的頻率可用程序控制改變。在單片機上加外圍器件距陣式鍵盤,通過鍵盤控制波形頻率的增減以及波形的選擇,并用了LCD顯示頻率大小。在單片機的輸出端口接DAC0832進(jìn)行D/A轉(zhuǎn)換,再通過運放進(jìn)行波形調(diào)整,最后輸出波形接在示波器上顯示。本設(shè)計具有線路簡單、結(jié)構(gòu)緊湊、

5、價格低廉、性能優(yōu)越等優(yōu)點。本設(shè)計制作的波形發(fā)生器,可以輸出多種標(biāo)準(zhǔn)波形,如方波、正弦波、三角波、鋸齒波等,還可以輸出任意波形,如用鼠標(biāo)創(chuàng)建的一個周期的非規(guī)則波形或用函數(shù)描述的波形等,輸出的波形的頻率、幅度均可調(diào),且能脫機輸出。設(shè)計的人機界面不但清晰美觀,而且操作方便。目 錄第一章 設(shè)計目的及意義. - 1 -1.1 設(shè)計目的. - 1 -1.2 設(shè)計意義. - 1 -第二章 方案論證. - 1 -2.1設(shè)計要求. - 2 -2.2 方案論證. - 2 -第三章 硬件電路設(shè)計. - 2 -3.1設(shè)計思路、元件選型. - 2 -3.2 原理圖. - 3 -3.3主要芯片介紹. - 3 -3.4硬件

6、連線圖. - 7 -第四章 軟件設(shè)計. - 7 -4.1鋸齒波的產(chǎn)生過程. - 7-4.2三角波產(chǎn)生過程. - 8 -4.3 方波的產(chǎn)生過程. - 10 -4.4 正弦波的產(chǎn)生過程. - 11 -4.5 梯形波的產(chǎn)生過程. - 13 -4.6 通過開關(guān)實現(xiàn)波形切換和調(diào)頻、調(diào)幅. - 14 -附錄1第一章 設(shè)計目的及意義1.1 設(shè)計目的(1)利用所學(xué)微機的理論知識進(jìn)行軟硬件整體設(shè)計,鍛煉學(xué)生理論聯(lián)系實際、提高我們的綜合應(yīng)用能力。 (2)我們這次的課程設(shè)計是以微機為基礎(chǔ),設(shè)計并開發(fā)能輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波等)且頻率、幅度可變的函數(shù)發(fā)生器。 (3)掌握各個接口芯片(如08

7、32等)的功能特性及接口方法,并能運用其實現(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)的整個框架的設(shè)計有了一個很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家微機知識的應(yīng)用。1.2 設(shè)計意義波形發(fā)生器作為一種常用的信號源,是現(xiàn)代測試領(lǐng)域內(nèi)應(yīng)用最為廣泛的通用儀器之一。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機設(shè)備

8、時,都學(xué)要有信號源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號并加到被測器件或設(shè)備上,用其他儀器觀察、測量被測儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領(lǐng)域中最基本、應(yīng)用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如正弦波,三角波,方波等,因而廣泛用于通信、雷達(dá)、導(dǎo)航、宇航等領(lǐng)域。第二章 方案論證2.1設(shè)計要求使用計算機和數(shù)模轉(zhuǎn)換器構(gòu)成信號發(fā)生器,可以產(chǎn)生方波、三角波、鋸齒波和正弦波等多種波形,波形的周期、頻率可調(diào)。要求完成計算機和DAC的選型,了解不同波形的產(chǎn)生原理和設(shè)計方案,畫出硬件電路圖,并編程完成軟件部分,最后調(diào)試觀察產(chǎn)生不同類型的波形信號。(1)課程設(shè)計論文內(nèi)容要

9、正確,概念要清楚;(2)完成任務(wù)書所規(guī)定的內(nèi)容;(3)附有電路原理圖及程序流程圖,以及程序清單;(4)文字要通順,書寫要工整,設(shè)計圖紙必須符合規(guī)范。2.2 方案論證信號發(fā)生器的實現(xiàn)方法通常有以下幾種:方案一:用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。方案二:可以由晶體管、運放IC等通用器件制作,更多的則是用專門的函數(shù)信號發(fā)生器IC產(chǎn)生。早期的函數(shù)信號發(fā)生器IC,如L8038、BA205、XR2207/2209等,它們的功能較少,精度不高,頻率上限只有300kHz,無法產(chǎn)生更高頻率的信號,調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨立調(diào)節(jié),二者互相影響。方案三

10、:利用專用直接數(shù)字合成芯片的函數(shù)發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。但成本較高。方案四:采用AT89C51單片機和DAC0832芯片,直接連接鍵盤和顯示。該種方案主要對AT89C51單片機的各個I/O口充分利用. P1口是連接鍵盤以及接顯示電路,P2口連接DAC0832輸出波形.這樣總體來說,能對單片機各個接口都利用上,而不在多用其它芯片,從而減小了系統(tǒng)的成本.也對按照系統(tǒng)便攜式低頻信號發(fā)生器的要求所完成.占用空間小,使用芯片少,低功耗。綜合考慮,方案四各項性能和指標(biāo)都優(yōu)于其他幾種方案,能使輸出頻率有較好的穩(wěn)定性,充分體現(xiàn)了模塊化設(shè)計的要求,而且這些芯片及器件均為通用器件,在市場上較常見,

11、價格也低廉,樣品制作成功的可能性比較大,所以本設(shè)計采用方案四。第三章 硬件電路設(shè)計3.1設(shè)計思路、元件選型設(shè)計思路:(一)假設(shè)需要各個波形的基本輸出。如輸出鋸齒波、三角波、方波、正弦波。這些波形的實現(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í)行時直接輸出定義的

12、數(shù)據(jù)就可以了。(二)通過P1口和開關(guān)K0-K4相連接來控制各個波形的輸出。能根據(jù)k0-k5鍵狀態(tài)進(jìn)行波形切換,開關(guān)鍵向上接“1”,產(chǎn)生波形,向下拔接“0”,無波形輸出。如K0鍵向上拔,K1-K4鍵向下拔,產(chǎn)生鋸齒波; K1鍵向上拔,K0、K2-K4鍵向下拔,產(chǎn)生三角波;以此類推。元件選型:單片機AT89C51系統(tǒng),DAC0832一片,PC機一臺,運算放大器3.2 原理圖圖3.1 原理圖3.3主要芯片介紹(1)DAC0832芯片介紹:0832采用雙緩沖接口方式,其傳送控制端接地,輸入所存允許斷ILE與+5V電源相連,利用一個地址碼進(jìn)行二次輸出操作,完成數(shù)據(jù)的傳送和激動轉(zhuǎn)換,第一次操作室P2.6為

13、高電平,將P0口數(shù)據(jù)線上的數(shù)據(jù)鎖存于DAC0832的輸入寄存器中。第二次操作是寫控制信號由效,傳送控制端為低電平,將輸入寄存器中的內(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 DAC0832工作原理圖DAC08

14、32的外部引腳及功能介紹圖如下:圖3.3 DAC0832引腳圖DAC0832內(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ù)傳送控制信號輸入線,低電平有

15、效。 WR2:為DAC寄存器寫選通輸入線。 Iout1:電流輸出線。當(dāng)輸入全為1時Iout1最大。 Iout2: 電流輸出線。其值與Iout1之和為一常數(shù)。 Rfb:反饋信號輸入線,芯片內(nèi)部有反饋電阻. Vcc:電源輸入線 (+5v+15v) Vref:基準(zhǔn)電壓輸入線 (-10v+10v) AGND:模擬地,摸擬信號和基準(zhǔn)電源的參考地. DGND:數(shù)字地,兩種地線在基準(zhǔn)電源處共地比較好(2)單片機AT89C51介紹:AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高

16、性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(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

17、位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(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口緩沖器可接收

18、,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(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

19、口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)A

20、LE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/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:來自反向振蕩器的輸出。3.4硬件連線圖圖3.5硬件連線圖第四章 軟件設(shè)

21、計 總體方框圖函數(shù)發(fā)生器的設(shè)計K2鍵三角波K3鍵方波K4鍵正弦波K0鍵鋸齒波圖4.1 總體設(shè)計功能圖4.1鋸齒波的產(chǎn)生過程鋸齒波的實現(xiàn)過程是首先定義一個初值然后進(jìn)行加法操作,加的步數(shù)的多少則根據(jù)要求的頻率來進(jìn)行。然后加到某個數(shù)之后就再重新設(shè)置為初值,再重復(fù)執(zhí)行剛剛的操作,如此循環(huán)下去。流程圖如下圖所示:定義變量iuchar ifor(i=0;i255;i+) P0=i判斷按鍵是否為0否重新設(shè)置變量i是開 始 圖4.2 鋸齒波產(chǎn)生流程圖鋸此波發(fā)生子程序如下: MOV DPTR,#7FFFH ;端口地址7FFFH間址寄存器 MOV R7,#0 ;R7為0DASAW:MOV A,R7 ;A清零 MO

22、VX DPTR,A ;寫RAM INC R7 ;R7寄存器加一 NOP ;空操作 NOP NOP SJMP DASAW ;轉(zhuǎn)移 END4.2三角波產(chǎn)生過程三角波的實現(xiàn)是設(shè)置一個初值,然后進(jìn)行加數(shù),同樣是加到某個數(shù)之后再進(jìn)行減數(shù),減到初值之后就再返回到先前的操作,這個操作跟鋸齒波的實現(xiàn)是相似的。此程序輸入的VREF的電壓是5V,因此該波形輸出的最大頻率是初值為00H和最終值為0FFH,這樣輸出的波形是最大的。流程圖如下圖所示:定義變量iuchar ifor(i=0;i0;i-)判斷p0是否已滿否是延時判斷按鍵是否為0否/是開 始圖4.3 三角波產(chǎn)生流程圖三角波發(fā)生子程序如下: MOV DPTR,

23、#7FFFH ; 設(shè)置D/A轉(zhuǎn)換器的端口地址 L1:MOV R7,#00H ;A清零 MOV A,R7 L2: MOVX DPTR,A ;寫外部存儲器 NOP ;延時 NOP NOP INC A ;A加1 JNZ L1 ;不等與零則轉(zhuǎn)L1 L3: MOVX DPTR,A ;寫外部存儲器4.3 方波的產(chǎn)生過程此波形的實現(xiàn)更加簡單,只需開始的時候設(shè)置一個初值然后直接輸出這個值就行了,輸出一段時間后,然后再重新置一個數(shù)據(jù),然后再輸出這個數(shù)據(jù)一段時間,但是此時的時間一定要等于前面那段時間。這樣才是一個方波,如果兩個時間不相同,那就相當(dāng)于一個脈沖波了。流程圖如下圖所示:開 始循環(huán)開始 給p0賦值0x00

24、延時給p0賦值0xff延時判斷按鍵是否為0圖4.4 方波產(chǎn)生流程圖方波發(fā)生子程序:MOV DPTR,#7FFFH ; 設(shè)置D/A轉(zhuǎn)換器的端口地址 MOV R7,#FFH ;將#FFH送R7FANGB:MOV A,R7 ;給A賦值 MOVX DPTR,A ;寫RAM ACALL DELAY ;調(diào)用延時子程序 CPL A ;A取反 MOVX DPTR,A ;寫RAM ACALL DELAY ;調(diào)用延時子程序 SJMP FANGB ;返回FANGBDELAY:MOV R7,#200 ; 延時50ms DEL1:MOVR6,#123 NOP DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1

25、 RETEND ;程序結(jié)束4.4 正弦波的產(chǎn)生過程正弦波的實現(xiàn)則相對比較復(fù)雜,因為正弦波的實現(xiàn)是輸出各個點的值就行了,可是各個點值則要通過正弦函數(shù)來求出。輸出的數(shù)據(jù)剛好是256個數(shù)據(jù),這樣則可以直接相加就行。開 始定義變量i循環(huán)開始如果i=0;+i=128把p0定義為數(shù)組tab【i判斷按鍵是否為0延時為0則終止圖4.5 正弦波產(chǎn)生流程圖 正弦波發(fā)生子程序如下: MOV DPTR,#SINTAB ;正弦表寫入內(nèi)部RAM6DH-7FH MOV R0,#6DHLOOP: CLR A MOVC A,A+DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#80H,LOOP MO

26、V DPTR,#7FFFH ;設(shè)置D/A轉(zhuǎn)換器的端口地址 MOV R0,#6DH ;設(shè)置正弦表指針LOOP1: MOV A,R0 ;查表 MOVX DPTR,A ;D/A轉(zhuǎn)換 ACALL DELAY ;延時,等待轉(zhuǎn)換結(jié)束 DEC R0 ;正弦表位移量增量 CJNE R0 #6DH,LOOP1 ;第一象限輸出完?LOOP2: MOV A,R0 ;查表 MOVX DPTR,A ;D/A轉(zhuǎn)換 ALCALL DELAY ;延時,等待轉(zhuǎn)換結(jié)束 DEC R0 ;正弦表位移量減量 CJNE R0 #6DH,LOOP2 ;第二象限輸出完?LOOP3: MOV A,R0 ;查表 CPLA ;表值取反 MOVX

27、DPTR,A ;D/A轉(zhuǎn)換 ACLALL DELAY ;延時,等待轉(zhuǎn)換結(jié)束 INC R0 ;正弦表位移量增量 CJNE R0,#7FH,LOOP3 ;第三象限輸出完?LOOP4:MOV A,R0 ;查表 CPL A ;表值取反 MOVX DPTR,A ;D/A轉(zhuǎn)換 ALCALL DELAY ;延時,等待轉(zhuǎn)換結(jié)束 DEC R0 ;正弦表位移量減量 CJNE R0,#6DH,LOOP4 ;第四象限輸出完? SJMP LOOP1DELAY:MOV R7,#200 ; 延時50ms DEL1:MOVR6,#123 NOP DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RETSINTAB

28、: DB 7FH,89H,94H,9FH,0AAH,0B4H,0C8H,0D1H,0D9H DB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,OFEH,0FFHEND4.5梯形波的產(chǎn)生過程梯形波相對于正弦波還是比較簡單的。流程圖如下圖所示:MAIN: MOV DPTR,#7FFFH ;設(shè)置D/A轉(zhuǎn)換器的端口地址STEP: MOV R6,#19H ;設(shè)置階躍值MOV R4,#0AH ;設(shè)置階躍次數(shù)MOV A,0 LOOP1: MOVX DPTR,A ;選通地址 ACALL DELAY ;調(diào)用延時程序 ADD A,R6 ;每次以19H的梯度增加 DJNZ R4,LOOP1

29、 ;梯度等待的時間 AJMP STEP ;循環(huán) DELAY: ;子延時程序D2: MOV 31H,#0FFH D1: DJNZ 31H,D1 RET END4.6通過開關(guān)實現(xiàn)波形切換和調(diào)頻、調(diào)幅通過開關(guān)實現(xiàn)波形的切換比較簡單只需通過輸出波形后不斷返回到檢測開關(guān)的子程序中,判斷是否有別的開關(guān)撥動,如果有別的開關(guān)撥動則執(zhí)行別的程序,否則輸出原來的波形,不過如果要能夠識別別的開關(guān)發(fā)生變化,必須將此開關(guān)關(guān)掉否則會識別不了別的鍵按下。當(dāng)然開關(guān)的調(diào)頻和調(diào)幅的實現(xiàn)也一樣,不過首先先輸出一個波形,然后再檢測開關(guān)是否需要調(diào)頻或者調(diào)幅,如果需要則轉(zhuǎn)入到相應(yīng)的程序中,最后再重新輸出波形。下面是調(diào)頻和調(diào)幅:開 始判斷P1.0-p1.1是否為1?否是輸出各種波形調(diào)整一下數(shù)字量圖4.6 輸出波形原理下圖式

溫馨提示

  • 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

提交評論