單片機(jī)與接口技術(shù)課程設(shè)計(jì)-函數(shù)波形發(fā)生器_第1頁(yè)
單片機(jī)與接口技術(shù)課程設(shè)計(jì)-函數(shù)波形發(fā)生器_第2頁(yè)
單片機(jī)與接口技術(shù)課程設(shè)計(jì)-函數(shù)波形發(fā)生器_第3頁(yè)
單片機(jī)與接口技術(shù)課程設(shè)計(jì)-函數(shù)波形發(fā)生器_第4頁(yè)
單片機(jī)與接口技術(shù)課程設(shè)計(jì)-函數(shù)波形發(fā)生器_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成績(jī) 南京工程學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)(論文)題 目 函數(shù)波形發(fā)生器 課 程 名 稱 單片機(jī)與接口技術(shù) 院 系 電力工程學(xué)院 專 業(yè) 電氣工程及自動(dòng)化 班 級(jí) 學(xué) 生 姓 名 學(xué) 號(hào) 設(shè) 計(jì) 地 點(diǎn) 指 導(dǎo) 教 師 設(shè)計(jì)起止時(shí)間:2011年6月20日至2011年6月24日 目 錄課程設(shè)計(jì)說(shuō)明書(shū) 1第一章 前言7第二章 設(shè)計(jì)目的7第三章 設(shè)計(jì)要求7第四章 具體設(shè)計(jì)74.1 設(shè)計(jì)思路·.74.2 硬件設(shè)計(jì)·.84.2.1 設(shè)計(jì)所用元件84.2.2 硬件接線圖104.3 軟件設(shè)計(jì) .114.3.1 各功能模塊之間的銜接關(guān)系114.3.2 程序流程圖114.3.3 程序設(shè)計(jì)134.3.4

2、 波形產(chǎn)生過(guò)程174.4 運(yùn)行效果·.184.4.1 星研程序截圖184.4.2 示波器輸出波形及頻率變化對(duì)波形的響 194.4.3 數(shù)碼顯示 20第五章 心得體會(huì) 21第六章 參考文獻(xiàn) 22南京工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū)題目 函數(shù)波形發(fā)生器 課 程 名 稱 單片機(jī)與接口技術(shù) 院(系、部、中心) 電力工程學(xué)院 專 業(yè) 電氣工程及其自動(dòng)化 班 級(jí) 電氣081 起 止 日 期 2011.6.202010.6.24 指 導(dǎo) 教 師 王 曼 1課程設(shè)計(jì)應(yīng)達(dá)到的目的本課程設(shè)計(jì)是在學(xué)生學(xué)習(xí)完單片機(jī)與接口技術(shù)課程后進(jìn)行的一次全面的綜合練習(xí)。通過(guò)本次課程設(shè)計(jì)進(jìn)一步鞏固和加深對(duì)單片機(jī)課程的基本知識(shí)的理解,

3、掌握使用單片機(jī)的基本技能,了解有關(guān)單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的過(guò)程與方法,提高利用單片機(jī)軟硬件解決實(shí)際問(wèn)題的能力。2課程設(shè)計(jì)題目及要求本課題要求使用51單片機(jī)及可編程并行da轉(zhuǎn)換芯片dac0832等外圍接口電路芯片實(shí)現(xiàn)一個(gè)函數(shù)波形發(fā)生器。要求:系統(tǒng)可以輸出正弦波、方波、三角波和鋸齒波;輸出波形的選擇通過(guò)4只按鍵加以選擇,其對(duì)應(yīng)關(guān)系為:按鍵1234輸出波形正弦波方波三角波鋸齒波每種波形的周期可以通過(guò)可調(diào)電壓控制;輸出波形可以在示波器上正確顯現(xiàn);波形編號(hào)在led數(shù)碼管有顯示;可適當(dāng)增加其它類型函數(shù)波形。說(shuō)明:實(shí)驗(yàn)箱硬件電路連接圖如下:1、g6區(qū):按鍵電路 jp74:按鍵控制接口;按下0信號(hào),松開(kāi)1信號(hào) 2

4、、d2區(qū):05v電壓輸出3、g5區(qū):鍵盤&led(led為共陰極數(shù)碼管)a:按鍵的列線b:數(shù)碼管段碼c:數(shù)碼管選擇腳d:按鍵的行線4、f3區(qū):dac0832數(shù)模轉(zhuǎn)換5、g4區(qū):adc0809模數(shù)轉(zhuǎn)換,adc0809輸入時(shí)鐘clk(10k1280khz),可從b2區(qū)選用 6、星研實(shí)驗(yàn)儀中引出的p0和p2口只能作地址/數(shù)據(jù)總線使用,不能做i/o口使用;需擴(kuò)8255a7、a3區(qū)a0、a1是地址鎖存器對(duì)應(yīng)p0.0、p0.1輸出引腳;a3區(qū)片選信號(hào)線地址范圍:片選地址范圍片選地址范圍cs10f000h0ffffhcs50b000h0bfffhcs20e000h0efffhcs60a000h0af

5、ffhcs30d000h0dfffhcs709000h09fffhcs40c000h0cfffhcs808000h08fffh3課程設(shè)計(jì)任務(wù)及工作量的要求包括課程設(shè)計(jì)計(jì)算說(shuō)明書(shū)、圖紙、實(shí)物樣品等要求按照課程設(shè)計(jì)說(shuō)明書(shū)的格式規(guī)范撰寫課程設(shè)計(jì)說(shuō)明書(shū),正文部分包括:(1)功能描述:對(duì)系統(tǒng)要實(shí)現(xiàn)的功能進(jìn)行簡(jiǎn)明扼要的描述。(2)硬件設(shè)計(jì):畫系統(tǒng)硬件結(jié)構(gòu)圖,并簡(jiǎn)單描述。(3)軟件設(shè)計(jì):將系統(tǒng)劃分功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系;詳細(xì)說(shuō)明各軟件模塊的實(shí)現(xiàn)過(guò)程,流程圖等。(4)運(yùn)行效果:說(shuō)明系統(tǒng)的運(yùn)行效果(附運(yùn)行界面圖片、系統(tǒng)運(yùn)行結(jié)果照片)。(5)心得體會(huì):談?wù)勛约涸谡n程設(shè)計(jì)過(guò)程中的心得體會(huì)、存

6、在哪些不足以及預(yù)期的解決辦法。說(shuō)明:(1)課程設(shè)計(jì)說(shuō)明書(shū)用a4紙統(tǒng)一打印,按電力學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)規(guī)范統(tǒng)一要求書(shū)寫并裝訂。(2)課程設(shè)計(jì)的程序上交,文件夾名稱為學(xué)生姓名及學(xué)號(hào)的組合。(3)答辯:未經(jīng)指導(dǎo)教師許可或無(wú)故不到者,缺勤率達(dá)50%的學(xué)生不能參加答辯。 答辯時(shí),設(shè)計(jì)者在闡述自己的設(shè)計(jì)過(guò)程和結(jié)果,突出設(shè)計(jì)中遇到的主要問(wèn)題和解決方法,回答教師提問(wèn)。4主要參考文獻(xiàn)1、 胡漢才.單片機(jī)原理及其接口技術(shù).北京:清華大學(xué)出版社,20045課程設(shè)計(jì)進(jìn)度安排起 止 日 期工 作 內(nèi) 容6月20日21日6月22 日23日6月24日需求分析,系統(tǒng)總體設(shè)計(jì)系統(tǒng)軟、硬件調(diào)試驗(yàn)收考核6成績(jī)考核辦法課程設(shè)計(jì)成績(jī)的組

7、成: 課程總評(píng)成績(jī)分項(xiàng)比例表工作表現(xiàn)設(shè)計(jì)成果考核測(cè)評(píng)30%40%30%課程設(shè)計(jì)成績(jī)?cè)u(píng)定需綜合考慮以下因素:(1)工作表現(xiàn):獨(dú)立工作能力及設(shè)計(jì)過(guò)程的表現(xiàn)。占總成績(jī)的30%。(2)設(shè)計(jì)成果:設(shè)計(jì)說(shuō)明書(shū)(計(jì)算書(shū)、論文)、圖紙、程序、作品等的質(zhì)量。占總成績(jī)的40%。(3)考核測(cè)評(píng):課程設(shè)計(jì)結(jié)束前,指導(dǎo)教師應(yīng)采用考試或答辯等形式對(duì)所指導(dǎo)的學(xué)生進(jìn)行測(cè)評(píng)。如采用答辯形式,需填寫課程設(shè)計(jì)答辯記錄,測(cè)評(píng)成績(jī)占總成績(jī)的30%。(4)有創(chuàng)新的設(shè)計(jì)可以根據(jù)情況適當(dāng)加分。教研室審查意見(jiàn):教研室主任簽字: 年 月 日院(系、部、中心)意見(jiàn):主管領(lǐng)導(dǎo)簽字: 年 月 日函數(shù)波形發(fā)生器課程設(shè)計(jì)第一章 前言當(dāng)今世界在以電子信息技

8、術(shù)為前提下推動(dòng)了社會(huì)跨越式的發(fā)展,科學(xué)技術(shù)的飛速發(fā)展帶動(dòng) 了國(guó)家生產(chǎn)力的大幅度提高,由此可見(jiàn),電子信息技術(shù)在人們生活中所占的重要地位,特別是單片機(jī),在各行各業(yè)的生產(chǎn)實(shí)踐中都占有很大的比重。目前單片機(jī)滲透我們生活的各個(gè)領(lǐng)域。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種ic卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用于智能化控制的科學(xué)家、工程師。科技越發(fā)達(dá),

9、智能化的東西就越多,使用的單片機(jī)就越多??磥?lái)學(xué)習(xí)單片機(jī)是社會(huì)發(fā)展的需求。據(jù)統(tǒng)計(jì),我國(guó)的單片機(jī)年容量已達(dá)1-3億片,且每年以大約16%的速度增長(zhǎng),但相對(duì)于世界市場(chǎng)我國(guó)的占有率還不到1%。這說(shuō)明單片機(jī)的應(yīng)用在我國(guó)還處于起步階段,有著廣闊的前景。培養(yǎng)單片機(jī)人才,特別是在工程技術(shù)人員中普及單片機(jī)知識(shí)有著重要的現(xiàn)實(shí)意義。第二章 設(shè)計(jì)目的本課程設(shè)計(jì)是在學(xué)生學(xué)習(xí)完單片機(jī)與接口技術(shù)課程后進(jìn)行的一次全面的綜合練習(xí)。通過(guò)本次課程設(shè)計(jì)進(jìn)一步鞏固和加深對(duì)單片機(jī)課程的基本知識(shí)的理解,掌握使用單片機(jī)的基本技能,了解有關(guān)單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的過(guò)程與方法,提高利用單片機(jī)軟硬件解決實(shí)際問(wèn)題的能力。第三章 設(shè)計(jì)要求本課題要求使用5

10、1單片機(jī)及可編程并行da轉(zhuǎn)換芯片dac0832等外圍接口電路芯片實(shí)現(xiàn)一個(gè)函數(shù)波形發(fā)生器。要求:1、系統(tǒng)可以輸出正弦波、方波、三角波和鋸齒波;2、輸出波形的選擇通過(guò)4只按鍵加以選擇,其對(duì)應(yīng)關(guān)系為:按鍵1234輸出波形正弦波方波三角波鋸齒波3、每種波形的周期可以通過(guò)可調(diào)電壓控制;4、輸出波形可以在示波器上正確顯現(xiàn);5、波形編號(hào)在led數(shù)碼管有顯示;6、可適當(dāng)增加其它類型函數(shù)波形。第四章 具體設(shè)計(jì)4.1設(shè)計(jì)思路 按照本設(shè)計(jì)的要求,選擇元件at89s51、8255a、adc0809、dac0832及一些旁路元件設(shè)計(jì)本函數(shù)波形發(fā)生器。 按照設(shè)計(jì)要求,由按鍵決定輸出波形的形狀,關(guān)于這一點(diǎn),可以通過(guò)在at8

11、9s51芯片的p1口的p1.0,p1.1,p1.2,p1.3四個(gè)口接4個(gè)按鈕,分別對(duì)應(yīng)1,2,3,4四個(gè)按鍵,按下不同的按鈕以實(shí)現(xiàn)不同波形的輸出。對(duì)于波形的周期用可調(diào)電壓控制,可以在adc0809模塊的輸入端接可調(diào)電阻,可調(diào)電阻接電源來(lái)得到不同的電壓幅值,通過(guò)a/d轉(zhuǎn)換實(shí)現(xiàn)頻率(周期)的調(diào)節(jié)。對(duì)于輸出波形在示波器上顯示,可以通過(guò)將dac0832經(jīng)d/a轉(zhuǎn)換后的值輸出到示波器來(lái)觀察得到。對(duì)于波形編號(hào)在led數(shù)碼管由顯示,可以在8255a的并口i/o輸出口接數(shù)碼管,通國(guó)相應(yīng)程序控制實(shí)現(xiàn)。4.2硬件設(shè)計(jì)4.2.1設(shè)計(jì)所用元件(1)dac0832 數(shù)模轉(zhuǎn)換模塊 1)硬件結(jié)構(gòu)圖dac0832結(jié)構(gòu)圖及引腳

12、排列2)各引腳功能如下:電源輸入端,在 范圍內(nèi)。dgnd:數(shù)字信號(hào)地。 agand:模擬信號(hào)地,最好與基準(zhǔn)電壓共地。di0di7:8位數(shù)字信號(hào)輸入端,di7為最高位,di0為最低位。使用時(shí)與單片機(jī)的數(shù)據(jù)總線端口相連。:片選信號(hào)輸入端,低電平有效,當(dāng)=0時(shí),芯片被選中。ile:數(shù)據(jù)鎖存控制輸入端,高電平有效。:第一級(jí)輸入寄存器寫選通控制輸入端,低電平有效。當(dāng)=0,ile=1,=0時(shí),待轉(zhuǎn)換的數(shù)據(jù)被鎖存到第一級(jí)8位寄存器中。:數(shù)據(jù)傳送控制輸入端,低電平有效。:dac寄存器寫選通控制輸入端,低電平有效。當(dāng)=0,=0時(shí),輸入寄存器中的待轉(zhuǎn)換數(shù)據(jù)被送入8位dac寄存器中。:外部反饋信號(hào)輸入端。:d/a轉(zhuǎn)

13、換器電流輸出1端,當(dāng)輸入數(shù)字量全為“1”時(shí),輸出電流達(dá)到最大值,輸入數(shù)值量全為“0”時(shí),輸出電流達(dá)到最小值。:d/a轉(zhuǎn)換器電流輸出2端,+=常數(shù)。(2)adc0809模數(shù)轉(zhuǎn)換模塊1)硬件結(jié)構(gòu)圖adc0809結(jié)構(gòu)圖及引腳排列2)各引腳功能如下adc0809為一種逐次比較型a/d轉(zhuǎn)換器,都有以下引腳:in0in7:8路模擬信號(hào)輸入端。每個(gè)瞬間轉(zhuǎn)換一個(gè)模擬信號(hào),各路之間的切換由軟件改變c,b,a引腳上的編碼來(lái)實(shí)現(xiàn)。,gnd:電源與地引腳,由單一的+5v電源供電。d0d7:8位數(shù)字量輸入端。start:a/d轉(zhuǎn)換啟動(dòng)信號(hào)輸入端,加上正脈沖后啟動(dòng)a/d轉(zhuǎn)換。clk:時(shí)鐘信號(hào)輸入端。ale:地址鎖存信號(hào)控

14、制端。eoc:轉(zhuǎn)換結(jié)束輸出信號(hào),高電平有效。在a/d轉(zhuǎn)換結(jié)束后,eoc引腳輸出低電平信號(hào),表示正在進(jìn)行a/d轉(zhuǎn)換,a/d轉(zhuǎn)換結(jié)束時(shí),eoc引腳輸出高電平,表示a/d轉(zhuǎn)換結(jié)束。使用時(shí),eoc信號(hào)可以作為a/d轉(zhuǎn)換器的狀態(tài)信號(hào)進(jìn)行查詢,也可以直接作為中斷請(qǐng)求信號(hào)。(3)可編程并行接口芯片8255a1)硬件結(jié)構(gòu)圖8255a結(jié)構(gòu)圖及引腳排列2)各引腳功能如下d7d0:雙向,三態(tài)數(shù)據(jù)線,和cpu系統(tǒng)系統(tǒng)總線相連。:片選信號(hào),輸入,低電平有效。a0,a1:端口地址選擇信號(hào),輸入。:讀信號(hào),輸入,低電平有效。:寫信號(hào),輸入,低電平有效。reset:復(fù)位信號(hào),輸入,高電平有效。pa7pa0:端口a的輸入/輸出

15、線,雙向,三態(tài)。pb7pb0:端口a的輸入/輸出線,雙向,三態(tài)。pc7pc0:端口a的輸入/輸出線,雙向,三態(tài)。4.2.2硬件接線圖接線圖說(shuō)明:在接線圖中,at89s51的p1.0,p2.0,p3.0,p4.0四個(gè)口分別皆有四個(gè)按鈕1,2,3,4,p0口的p0.0p0.7口同時(shí)與74ls373譯碼器的d0d7,dac0832的di0di7,adc0809的out1out8,8255a的d0d7口相連,74ls373的輸出端q0,q1分別接8255a的a0和a1口來(lái)實(shí)現(xiàn)數(shù)據(jù)信號(hào)的傳遞,這只是仿真圖的連線,具體試驗(yàn)臺(tái)上的連線與其有所差異。在試驗(yàn)臺(tái)上,集成的模塊之間的聯(lián)系可以省略,具體的接線是a3區(qū)

16、的p1口用排線接到g6區(qū)的jp74上,8255a的片選端接a3區(qū)的cs2,dac0832的片選端接a3區(qū)的cs3,adc0809的片選端接a3區(qū)的cs4,片選的接線由程序來(lái)確定。a3區(qū)的a0,a1接8255a的a0,a1,而8255a的輸出pa口及pb口分別用排線連接數(shù)碼管顯示區(qū)g5區(qū)的b和c。adc0809的輸入in0接到d2區(qū)的05v可調(diào)電阻上,clk接到b2區(qū)的時(shí)鐘clk處,選擇125khz(可改變),adda,addb,addc分別接地,而eoc口接到a3區(qū)的p3.3 int1中斷口。dac0832的out出口接示波器。到此,實(shí)驗(yàn)臺(tái)接線完畢。4.3 軟件設(shè)計(jì)4.3.1 各功能模塊之間的

17、銜接關(guān)系如圖所示為各個(gè)功能模塊之間的關(guān)系,從源頭的按下不同的按鍵,中間經(jīng)過(guò)at89s51,8255a,dac0832,adc0809這幾個(gè)大模塊以及一些小的元件,最終得到理想的波形并且在數(shù)碼管上顯示相應(yīng)波形的編號(hào)。中間在adc0809模塊上,由外部電壓信號(hào)輸入,經(jīng)過(guò)a/d轉(zhuǎn)換,最終變成對(duì)于波形頻率改變的控制信號(hào),完成整個(gè)流程。4.3.2 程序流程圖 主程序流程圖 鋸齒波程序流程圖 三角波程序流程圖 方波程序流程圖 正弦波程序流程圖 數(shù)碼顯示子程序流程圖 延時(shí)程序1 流程圖 延時(shí)程序2 流程圖 延時(shí)程序3流程圖4.3.3 程序設(shè)計(jì)org 0000hsjmp mainorg 0030hmain:

18、mov sp,#60h ;設(shè)置堆棧 mov a,#00h ;設(shè)置a初值 mov dptr,#0e000h ;初始化 movx dptr,a mov dptr,#0efffh ;賦8255a片選地址 mov a,#80h ;將8255a控制字寫入寄存器a movx dptr,a ;寫入控制字,設(shè)置pa,pb,pc口為輸出口mov r2,#00h ;賦r2初值為00hclr 00hclr 01hclr 02hclr 03h acall play ;調(diào)用數(shù)碼顯示程序顯示start:jnb p1.0,zxuan ;判斷p1.0口狀態(tài),為低電平轉(zhuǎn)移 jnb p1.1,fbo ;判斷p1.1口狀態(tài),為低電

19、平轉(zhuǎn)移 jnb p1.2,sjiao ;判斷p1.2口狀態(tài),為低電平轉(zhuǎn)移 jnb p1.3,jchi ;判斷p1.3口狀態(tài),為低電平轉(zhuǎn)移 jb 00h,zxuan ;判斷標(biāo)志位00h狀態(tài),為高電平轉(zhuǎn)移 jb 01h,fbo ;判斷標(biāo)志位01h狀態(tài),為高電平轉(zhuǎn)移 jb 02h,sjiao ;判斷標(biāo)志位02h狀態(tài),為高電平轉(zhuǎn)移 jb 03h,jchi ;判斷標(biāo)志位03h狀態(tài),為高電平轉(zhuǎn)移 ajmp start jchi::setb 03h ;鋸齒波程序 clr 00h clr 01h clr 02h mov r2,#04h lcall play ;跳轉(zhuǎn)數(shù)碼管顯示程序 mov dptr,#0d000

20、h ;寫入dac0832片選地址#0d000h mov a,#00h ;賦a初值#00hloop:mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a inc a ;a自增1 lcall lop3 ;調(diào)用延時(shí)子程序3 jnz loop ;判斷a中是否為0,非0轉(zhuǎn)移loop ajmp start ;回到主程序sjiao:setb 02h ;三角波程序 clr 00h clr 01h clr 03h mov r2,#03h lcall play ;調(diào)用數(shù)碼顯示程序 mov dptr,#0d000h ;寫入dac0832片選地址#0d000h mov

21、a,#00h ;賦a初值#00h mov r6,#0ffh ;最高點(diǎn)值loop1:mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a inc a ;a自增1 lcall lop3 ;調(diào)用延時(shí)程序3 djnz r6,loop1 ;輸出寬度 mov a,#0ffh ;重新給值,保護(hù)現(xiàn)場(chǎng) mov r6,#0ffhloop2:mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a dec a ;a自減1 lcall lop3 ;調(diào)用延時(shí)程序3 djnz r6,loop2 ;輸出寬度 sjmp start ;

22、返回主程序zxuan:ljmp zxuan1fbo:setb 01h ;方波程序 clr 00h clr 02h clr 03h mov r2,#02h lcall play ;調(diào)用數(shù)碼顯示程序 mov a,#00h ;賦a初值#00h mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a lcall lop1 ;調(diào)用延時(shí)程序1 mov a,#0ffh ;賦a最大值 mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a lcall lop1 ;調(diào)用延時(shí)程序1 mov a,#00h ;a重新賦值#00

23、h ljmp start ;返回主程序zxuan1:setb 00h ;正弦波程序 clr 01h clr 02h clr 03h mov r2,#01h lcall play ;調(diào)用數(shù)碼顯示程序 mov a,#00h ;賦a初值#00hloop5:mov r7,a ;保護(hù)a mov dptr,#sin ;將表sin寫入dptr movc a,a+dptr ;查表 mov dptr,#0d000h ;寫入dac0832片選地址#0d000h movx dptr,a lcall lop ;調(diào)用延時(shí)程序 mov a,r7 ;返回a值 inc a ;a自增1 cjne a,#00h,loop5 ;判

24、斷a中值是否為0,非0轉(zhuǎn)移 ljmp start ;返回主程序lop: mov dptr,#0c000h ;延時(shí)程序 jnb p3.3,$ ;判斷p3.3口狀態(tài) movx a,dptr jz skip ;判斷a中值是否為0 djnz acc,$ ;根據(jù)a/d轉(zhuǎn)換值延遲skip:movx dptr,a ;啟動(dòng)0809ret ;延遲程序結(jié)束lop1:mov r7,#0ffh ;延時(shí)程序1 mov dptr,#0c000h ;寫入dac0832片選地址#0d000h jnb p3.3,$ ;判斷p3.3口狀態(tài) movx a,dptr jz skip1 ;判斷a中值是否為0lop2:djnz r7,l

25、op2 ;增大延時(shí)長(zhǎng)度 mov r7,#0ffh djnz acc,lop2 ;根據(jù)a/d轉(zhuǎn)換值延遲skip1:movx dptr,a ;啟動(dòng)0809 ret ;延遲程序結(jié)束lop3:mov r5,a ;延時(shí)程序3,保護(hù)r5 mov dptr,#0c000h ;寫入dac0832片選地址#0d000h jnb p3.3,$ ;判斷p3.3口狀態(tài) movx a,dptr jz skip2 ;判斷a中值是否為0 djnz acc,$ ;根據(jù)a/d轉(zhuǎn)換值延遲skip2:movx dptr,a ;啟動(dòng)0809 mov a,r5 ;返回r5 ret ;延遲程序結(jié)束 play:mov a,#0feh ;將

26、pb口的位碼控制數(shù)據(jù)寫入寄存器a mov dptr,#0effdh ;寫入8255a pb口片選地址 movx dptr,a ;向pb口輸出位碼控制數(shù)據(jù) mov a,r2 ;給a賦r2中的值 mov dptr,#led ;指向字型碼表 movc a,a+dptr ;用查表法輸出數(shù)碼 mov dptr,#0effch ;寫入8255a pa口片選地址 movx dptr,a ;啟動(dòng)8255a ret ;返回主程序led:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,78h,6fh,00h ;數(shù)碼顯示位碼表sin:db 80h,83h,86h,89h,8dh,90h,93h

27、,96h ;正弦波位碼表 db 99h,9ch,9fh,0a2h,0a5h,0a8h,0abh,0aeh db 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5h db 0c7h,0cah,0cch,0cfh,0d1h,0d4h,0d6h,0d8h db 0dah,0ddh,0dfh,0e1h,0e3h,0e5h,0e7h,0e9h db 0eah,0ech,0eeh,0efh,0f1h,0f2h,0f4h,0f5h db 0f6h,0f7h,0f8h,0f9h,0fah,0fbh,0fch,0fdh db 0fdh,0feh,0ffh,0ffh,0ffh,0ffh

28、,0ffh,0ffh db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0feh,0fdh db 0fdh,0fch,0fbh,0fah,0f9h,0f8h,0f7h,0f6h db 0f5h,0f4h,0f2h,0f1h,0efh,0eeh,0ech,0eah db 0e9h,0e7h,0e5h,0e3h,0e1h,0deh,0ddh,0dah db 0d8h,0d6h,0d4h,0d1h,0cfh,0cch,0cah,0c7h db 0c5h,0c2h,0bfh,0bch,0bah,0b7h,0b4h,0b1h db 0aeh,0abh,0a8h,0a5h,0a2h,9fh

29、, 9ch, 99h db 96h,93h,90h,8dh,89h,86h,83h,80h db 80h,7ch,79h,78h,72h,6fh,6ch,69h db 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51h db 4eh, 4ch, 48h, 45h, 43h, 40h, 3dh, 3ah db 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27h db 25h, 22h, 20h, 1eh, 1ch, 1ah, 18h, 16h db 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ah db 09h, 0

30、8h, 07h, 06h, 05h, 04h, 03h, 02h db 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 01h, 02h db 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09h db 0ah, 0bh, 0dh, 0eh, 10h, 11h, 13h, 15h db 16h, 18h, 1ah, 1ch, 1eh, 20h, 22h, 25h db 27h, 29h, 2bh, 2eh, 30h, 33h, 35h, 38h db 3ah, 3dh, 40

31、h, 43h, 45h, 48h, 4ch, 4eh db 51h, 55h, 57h, 5ah, 5dh, 60h, 63h, 66h db 69h, 6ch, 6fh, 72h, 76h, 79h, 7ch, 80h end 4.3.4 波形產(chǎn)生過(guò)程說(shuō)明 由接線圖說(shuō)明,在實(shí)驗(yàn)臺(tái)通電,pc與試驗(yàn)臺(tái)通訊完成之后,點(diǎn)擊運(yùn)行,看到示波器并無(wú)輸出波形,這時(shí)系統(tǒng)處于待機(jī)狀態(tài)。在按下p1口的任何一個(gè)按鈕后,系統(tǒng)查詢檢測(cè)到p1.0,p1.1,p1.2,p1.3中有一個(gè)口發(fā)生電平跳變,則程序中跳轉(zhuǎn)執(zhí)行相應(yīng)的子程序,這部分跳轉(zhuǎn)執(zhí)行的子程序是波形產(chǎn)生程序,依次分別為正弦波,方波,三角波,鋸齒波。對(duì)于正弦波的產(chǎn)生

32、,以用查表法來(lái)實(shí)現(xiàn)。把初始值00h賦給寄存器a,表示從零點(diǎn)開(kāi)始,再由查給定的正弦波上的點(diǎn)的數(shù)值來(lái)描繪正弦波的曲線,后在經(jīng)過(guò)dac0832的數(shù)模轉(zhuǎn)換作用,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),最后在示波器上輸出正弦波的圖形。對(duì)于方波的產(chǎn)生,先給定一個(gè)初值,延時(shí),再給定另一個(gè)不同的初值,延時(shí),重復(fù)可以實(shí)現(xiàn)數(shù)字信號(hào)輸出,后在經(jīng)過(guò)dac0832的數(shù)模轉(zhuǎn)換作用,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),最后在示波器上輸出方波的圖形。對(duì)于三角波的產(chǎn)生,先給寄存器初值,再給定到達(dá)最大值時(shí)的寬度,讓寬度數(shù)值做自減1循環(huán),每自減一次,寄存器中的值就自增1,知道到最大值,完成上升段的數(shù)字輸出,下降段給寄存器賦最大值,再以同樣寬度數(shù)值做自減1

33、循環(huán),每自減一次,寄存器中數(shù)值自減1,最后回到零,在執(zhí)行大循環(huán),到此,一個(gè)完整的三角波數(shù)字輸出完畢,再經(jīng)過(guò)dac0832的數(shù)模轉(zhuǎn)換作用,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),最后在示波器上輸出三角波的圖形。對(duì)于鋸齒波的輸出,鋸齒波其實(shí)是三角波的一半,只要先向寄存器賦初值,再讓寄存器中數(shù)據(jù)自增1,增到最大值后發(fā)生溢出,自動(dòng)回到初值,實(shí)現(xiàn)一個(gè)鋸齒波的數(shù)字輸出。再經(jīng)過(guò)dac0832的數(shù)模轉(zhuǎn)換作用,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),最后在示波器上輸出鋸齒波的圖形。課題中還要求對(duì)輸出波形的頻率可以調(diào)整,這可以用adc0809,通過(guò)其中的a/d轉(zhuǎn)換延時(shí)來(lái)實(shí)現(xiàn)。所以就在每一次輸出一個(gè)點(diǎn)后調(diào)用一次延時(shí)子程序,無(wú)數(shù)個(gè)輸出被延時(shí),在

34、輸出時(shí)就相當(dāng)于增大了波形的周期,也就是改變了頻率,同時(shí)改變頻率的波形還能在示波器上正確顯示。在延時(shí)程序中,由adc0809的工作過(guò)程:首先選擇adc0809的一個(gè)模擬輸入通道(由adda,addb,addc三個(gè)引腳的狀態(tài)決定),當(dāng)執(zhí)行“movx dptr,a”指令后,單片機(jī)的號(hào)有效,從而產(chǎn)生一個(gè)啟動(dòng)脈沖信號(hào)給adc0809的strat引腳,開(kāi)始對(duì)選中的模擬信號(hào)進(jìn)行轉(zhuǎn)換,當(dāng)轉(zhuǎn)換結(jié)束后,adc0809的轉(zhuǎn)換結(jié)束信號(hào)eoc=1,當(dāng)執(zhí)行“movx a,dptr”指令時(shí),單片機(jī)發(fā)出讀控制信號(hào),通過(guò)邏輯電路控制oe端為高電平,把轉(zhuǎn)換完畢的數(shù)字量讀入到寄存器中。在這個(gè)過(guò)程中,當(dāng)有模擬量信號(hào)輸入時(shí),就進(jìn)行延時(shí)操作,以來(lái)實(shí)現(xiàn)用外部可調(diào)電壓控制輸出波形的頻率這一要求。對(duì)于輸出波形同時(shí)顯示該波形對(duì)應(yīng)編號(hào)這一功能,可用8255a擴(kuò)展i/o連接8段數(shù)碼管來(lái)實(shí)現(xiàn)。在程序中,每執(zhí)行一個(gè)波形程序,都在程序開(kāi)頭加入把該波形對(duì)應(yīng)標(biāo)號(hào)寫入工作寄存器r2中,同時(shí)調(diào)用數(shù)碼顯示子程序。在數(shù)碼顯示子程序中,把r2通過(guò)查表法得出的值送入寄存器中,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論