版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 一、題目的意義1</b></p><p> 二、本人所做的工作1</p><p><b> 三、課設(shè)要求2</b></p><p> 四、課設(shè)所需設(shè)備及芯片功能介紹2</p&g
2、t;<p> 4.1、所需設(shè)備2</p><p> 4.2、芯片功能介紹2</p><p> 五、總體功能圖及主要設(shè)計(jì)思路5</p><p> 5.1、總體功能圖5</p><p> 5.2、主要設(shè)計(jì)思想5</p><p> 六、硬件電路設(shè)計(jì)及描述7</p><
3、p> 6.1、硬件原理圖7</p><p> 6.2、線路連接步驟7</p><p> 七、軟件設(shè)計(jì)流程及描述7</p><p> 7.1、鋸齒波的實(shí)現(xiàn)過程7</p><p> 7.2、三角波的實(shí)現(xiàn)過程8</p><p> 7.3、梯形波的實(shí)現(xiàn)過程9</p><p>
4、; 7.4、方波的實(shí)現(xiàn)過程11</p><p> 7.5、正弦波的實(shí)驗(yàn)過程12</p><p> 7.6、通過開關(guān)實(shí)現(xiàn)波形切換和調(diào)頻、調(diào)幅13</p><p> 八、程序調(diào)試步驟與運(yùn)行結(jié)果15</p><p> 8.1、調(diào)試步驟15</p><p> 8.2、運(yùn)行結(jié)果15</p>
5、<p> 九、課程設(shè)計(jì)體會(huì)17</p><p><b> 十、參考文獻(xiàn)18</b></p><p> 十一、源代碼及注釋18</p><p><b> 一、題目的意義</b></p><p> ?。?)、利用所學(xué)單片機(jī)的理論知識(shí)進(jìn)行軟硬件整體設(shè)計(jì),鍛煉學(xué)生理論聯(lián)系實(shí)際、提高我
6、們的綜合應(yīng)用能力。</p><p> (2)、我們這次的課程設(shè)計(jì)是以單片機(jī)為基礎(chǔ),設(shè)計(jì)并開發(fā)能輸出多種波形(正弦波、三角波、鋸齒波、方波、梯形波等)且頻率、幅度可變的函數(shù)發(fā)生器。</p><p> ?。?)、掌握各個(gè)接口芯片(如0832等)的功能特性及接口方法,并能運(yùn)用其實(shí)現(xiàn)一個(gè)簡(jiǎn)單的微機(jī)應(yīng)用系統(tǒng)功能器件。</p><p> (4)、在平時(shí)的學(xué)習(xí)中,我們所學(xué)的知
7、識(shí)大都是課本上的,在機(jī)房的練習(xí)大家也都是分散的對(duì)各個(gè)章節(jié)的內(nèi)容進(jìn)行練習(xí)。因此,缺乏一種系統(tǒng)的設(shè)計(jì)鍛煉。在課程所學(xué)結(jié)束以后,這樣的課程設(shè)計(jì)十分有助于學(xué)生的知識(shí)系統(tǒng)的總結(jié)到一起。</p><p> ?。?)、通過這幾個(gè)波形進(jìn)行組合形成了一個(gè)函數(shù)發(fā)生器,使得我對(duì)系統(tǒng)的整個(gè)框架的設(shè)計(jì)有了一個(gè)很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家單片機(jī)知識(shí)的應(yīng)用。</p><p><
8、b> 二、本人所做的工作</b></p><p> 本次課設(shè)組員:劉正、鄧強(qiáng)、劉志</p><p><b> 組長(zhǎng):劉正</b></p><p> 經(jīng)過了這一個(gè)星期的時(shí)間,我們已經(jīng)基本完成了老師所提出的課程設(shè)計(jì)要求。其中,我本人是組長(zhǎng)整個(gè)系統(tǒng)的設(shè)計(jì)框架和編寫代碼由我親自完成。由于我們上課沒有接觸過正弦波因此通過在圖書館
9、和網(wǎng)絡(luò)上找資料已經(jīng)順利完成。然后通過上機(jī)連接線路把電路板和PC機(jī)相連接之后對(duì)每一個(gè)波形單個(gè)調(diào)試完成后,再組合起來通過開關(guān)控制波形的輸出,最后實(shí)現(xiàn)老師所要求的功能。 </p><p><b> 三、課設(shè)要求</b></p><p> 1、設(shè)計(jì)接口電路,將這些外設(shè)構(gòu)成一個(gè)簡(jiǎn)單的單片機(jī)應(yīng)用系統(tǒng),畫出接口的連接圖。</p><p> 2、編寫下列
10、控制程序</p><p> 能輸出正弦波、三角波、鋸齒波、方波、梯形波。</p><p> 由K0-K4鍵分別控制以上所述波形的產(chǎn)生。</p><p> 根據(jù)開關(guān)對(duì)輸出波形的頻率、幅度進(jìn)行控制調(diào)節(jié)。</p><p> 四、課設(shè)所需設(shè)備及芯片功能介紹</p><p><b> 4.1、所需設(shè)備<
11、/b></p><p> 單片機(jī)最小開發(fā)系統(tǒng),DAC0832一片,PC機(jī)一臺(tái),運(yùn)算放大器,其他器件任選。</p><p> 4.2、芯片功能介紹</p><p> (1)、DAC0832芯片介紹:</p><p> DAC0832為一個(gè)8位D/A轉(zhuǎn)換器,單電源供電,在+5~+15V范圍內(nèi)均可正常工作?;鶞?zhǔn)電壓的范圍為±
12、10V,電流建立時(shí)間為1μs,CMOS工藝,低功耗20mW。DAC0832的內(nèi)部結(jié)構(gòu)框圖如下圖所示。</p><p> < 圖 4 ―― 1 ></p><p> DAC0832的外部引腳及功能介紹圖如下:</p><p> < 圖 4 ―― 2 ></p><p> ?。?)、DAC0832的應(yīng)用:
13、</p><p> DAC0832一是用作單極性電壓輸出,二是用作雙極性電壓輸出,最后是用作程控放大器。</p><p> (3)、DAC0832與8031的連接方式:</p><p> DAC0832的與單片機(jī)的連接方式有三種方式:一、單緩沖</p><p> 二、雙緩沖、三是直通方式。本程序采用的是方式一即單緩沖方式,ILE為高電
14、平,CS、WR1、WR2、XFER為低電平。</p><p> < 圖 4 ―― 3 ></p><p><b> 電源及時(shí)鐘引腳:</b></p><p> Vcc、Vss;XTAL1、XTAL2</p><p><b> 控制引腳</b></p><
15、p> PSEN、ALE、EA、RESET(即RST).</p><p> I/O口引腳: </p><p> P0、P1、P2、P3為4個(gè)8位I/O口的外部引腳.</p><p> RST/VPD(9腳)</p><p><b> RST:</b></p><p> 單
16、片剛接上電源時(shí),其內(nèi)部各寄存器處于隨機(jī)狀態(tài),在此腳輸入24個(gè)時(shí)鐘周期寬度以上的高電平將使單片機(jī)復(fù)位。單片機(jī)正常工作時(shí),此腳應(yīng)為≤0.5V低電平。</p><p> VPD:備用電源輸入端。當(dāng)Vcc下降到低于規(guī)定的值,而VPD在其規(guī)定的電壓范圍內(nèi)(5±0.5V)時(shí),VPD就向內(nèi)部RAM提供備用電源以保持內(nèi)部RAM的數(shù)據(jù)。</p><p> ALE/PROG(30引腳)</
17、p><p> ALE引腳輸出為地址鎖存允許信號(hào),當(dāng)單片機(jī)上電工作 后,ALE引腳不斷輸出正脈沖信號(hào). 當(dāng)訪問片外存儲(chǔ)器時(shí),ALE(地址鎖存允許信號(hào))輸出脈沖的負(fù)跳沿用于16位地址的低8位鎖存信號(hào)。不訪問片外存儲(chǔ)器,ALE端以時(shí)鐘振蕩器頻率的1/6固定輸出正脈沖。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)(執(zhí)行MOVX指令),ALE會(huì)丟失一個(gè)ALE脈沖。</p><p> MCS-51單片機(jī)的片外總線結(jié)構(gòu)<
18、;/p><p> < 圖 4 ―― 4 > </p><p> MCS-51系列單片機(jī)片外引腳可以構(gòu)成如上圖所示的三總線結(jié)構(gòu):</p><p> 地址總線(AB) 數(shù)據(jù)總線(DB) 控制總線(CB)</p><p> 8031各個(gè)口的功能定義</p><p> P0口:雙向8位三態(tài)I
19、/O口,此口為地址總線(低8位)及數(shù)據(jù)總線分時(shí)復(fù)用口,可帶8個(gè)LSTTL負(fù)載。</p><p> P1口:8位準(zhǔn)雙向I/O口,可帶4個(gè) LSTTTL負(fù)載。</p><p> P2口:8位準(zhǔn)雙向I/O口,與地址總線(高8位)復(fù)用。</p><p> P3口:8位準(zhǔn)雙向I/O口,雙功能復(fù)用口。</p><p> 五、總體功能圖及主要設(shè)計(jì)思
20、路</p><p><b> 5.1、總體功能圖</b></p><p> < 圖 5 ―― 1 ></p><p> 5.2、主要設(shè)計(jì)思想</p><p> 從此題的要求我的設(shè)計(jì)思路分以下幾步:</p><p> ?。ㄒ唬?、課設(shè)需要各個(gè)波形的基本輸出。如輸出鋸齒波、三角
21、波、梯形波、方波、正弦波。這些波形的實(shí)現(xiàn)的具體步驟:鋸齒波實(shí)現(xiàn)很簡(jiǎn)單,只需要一開始定義一個(gè)初值,然后不斷的加1,當(dāng)溢出后又重初值開始加起,就這樣循環(huán)下去。三角波的實(shí)驗(yàn)過程是先加后減,我的一開始的實(shí)現(xiàn)方法是先是從00H開始加1直到溢出后就執(zhí)行減1操作,就這樣不斷調(diào)用這個(gè)循環(huán)。梯形波的實(shí)現(xiàn)過程是前后加和減的速度不同而已,如你可以在上升加的步數(shù)大一些,減時(shí)少一些。方波的實(shí)現(xiàn)方法是連續(xù)輸出一個(gè)數(shù),到某個(gè)時(shí)候就改變一下值,可以把值定義為正極性的,
22、也可以是負(fù)極性。正弦波的實(shí)現(xiàn)是非常麻煩的。它的實(shí)現(xiàn)過程是通過定義一些數(shù)據(jù),然后執(zhí)行時(shí)直接輸出定義的數(shù)據(jù)就可以了。在設(shè)計(jì)之初,我一直都在嘗試使用數(shù)學(xué)的泰勒級(jí)數(shù)展開來計(jì)算輸出波形,使用這種方法,實(shí)現(xiàn)起來相對(duì)來說要比較困難一點(diǎn),而且會(huì)使得頻率會(huì)下降。要使得它達(dá)到更高的頻率,就得另辟蹊徑了。分析一下為什么頻率上不去,主要原因在于,使用單片機(jī)進(jìn)行正弦函數(shù)的運(yùn)算時(shí)占去了不少時(shí)間,如果去掉這一計(jì)算過程波形的頻率應(yīng)該大有提高,另外就是CPU時(shí)鐘頻率沒有
23、調(diào)至最高,以及DAC轉(zhuǎn)換過程需要時(shí)間。為了達(dá)到更高的頻率,首先就要</p><p> ?。ǘ?、通過P3口和開關(guān)K0-K5相連接來控制各個(gè)波形的輸出。能根據(jù)k0-k5鍵狀態(tài)進(jìn)行波形切換,開關(guān)鍵向上接“1”,產(chǎn)生波形,向下拔接“0”,無波形輸出。如K0鍵向上拔,K1-K4鍵向下拔,產(chǎn)生鋸齒波; K1鍵向上拔,K0、K2-K4鍵向下拔,產(chǎn)生三角波;……以此類推。通過K5鍵來控制調(diào)頻/調(diào)幅。</p>&l
24、t;p> 六、硬件電路設(shè)計(jì)及描述</p><p><b> 6.1、硬件原理圖</b></p><p> < 圖 6 ―― 1 ></p><p> 6.2、線路連接步驟</p><p> ?。?)D/A區(qū)0832片選信號(hào)CS插孔和譯碼輸出Y2插孔相連。</p><p&
25、gt; ?。?)用排線將D/A區(qū)D0~D7連到BUS2區(qū)XD0~XD7。</p><p> ?。?)將0832的WR信號(hào)線連到BUS3區(qū)的XWR上。</p><p> ?。?)D/A區(qū)的±12V插孔分別與外置電源的±12V端相連。</p><p> ?。?)W2區(qū)的VIN接+12V,如果電源內(nèi)置,VIN插孔和D/A區(qū)的+12V插孔相連。</
26、p><p> ?。?)D/A區(qū)的Vref接W2區(qū) Vref,并調(diào)節(jié)W2使 Vref=+5V。</p><p> ?。?)K0-K5開關(guān)分別接到P3口的P3.0-P3.5</p><p> 七、軟件設(shè)計(jì)流程及描述</p><p> 7.1、鋸齒波的實(shí)現(xiàn)過程</p><p> 鋸齒波的實(shí)現(xiàn)過程是首先定義一個(gè)初值然后進(jìn)行加
27、法操作,加的步數(shù)的多少則根據(jù)要求的頻率來進(jìn)行。然后加到某個(gè)數(shù)之后就再重新設(shè)置為初值,再重復(fù)執(zhí)行剛剛的操作,如此循環(huán)下去。流程圖如下所示:</p><p> < 圖 7 ―― 1 ></p><p> 7.2、三角波的實(shí)現(xiàn)過程</p><p> 三角波的實(shí)現(xiàn)是設(shè)置一個(gè)初值,然后進(jìn)行加數(shù),同樣是加到某個(gè)數(shù)之后再進(jìn)行減數(shù),減到初值之后就再返回到先前
28、的操作,這個(gè)操作跟鋸齒波的實(shí)現(xiàn)是相似的。此程序輸入的VREF的電壓是+5V,因此該波形輸出的最大頻率是初值為00H和最終值為0FFH,且步數(shù)為1,這樣輸出的波形是最大的。</p><p> 程序流程圖如下圖所示:</p><p> < 圖 7 ―― 2 ></p><p> 7.3、梯形波的實(shí)現(xiàn)過程</p><p>
29、 梯形波輸出跟鋸齒波和三角波相似,只不過當(dāng)加到頂峰后的一段時(shí)間內(nèi)不改變A的值,過了一段時(shí)間后再將減少A的值,不過先后的步數(shù)可以一樣也可以不一樣。然后減到初始的值后也要持續(xù)一段時(shí)間,然后再進(jìn)行加數(shù),如此循環(huán)下去。</p><p> < 圖7 ―― 3 ></p><p> 7.4、方波的實(shí)現(xiàn)過程</p><p> 此波形的實(shí)現(xiàn)更加簡(jiǎn)單,只需開始的
30、時(shí)候設(shè)置一個(gè)初值然后直接輸出這個(gè)值就行了,輸出一段時(shí)間后,然后再重新置一個(gè)數(shù)據(jù),然后再輸出這個(gè)數(shù)據(jù)一段時(shí)間,但是此時(shí)的時(shí)間一定要等于前面那段時(shí)間。這樣才是一個(gè)方波,如果兩個(gè)時(shí)間不相同,那就相當(dāng)于一個(gè)脈沖波了。流程圖如下圖所示:</p><p> < 圖 7 ―― 4 ></p><p> 7.5、正弦波的實(shí)驗(yàn)過程</p><p> 正弦波的實(shí)
31、現(xiàn)則相對(duì)比較復(fù)雜,因?yàn)檎也ǖ膶?shí)現(xiàn)是輸出各個(gè)點(diǎn)的值就行了,可是各個(gè)點(diǎn)值則要通過正弦函數(shù)來求出,不過這些值直接去網(wǎng)上下載下來使用就可以了。輸出的數(shù)據(jù)剛好是256個(gè)數(shù)據(jù),這樣則可以直接相加就行了。</p><p> < 圖 7 ―― 5 ></p><p> 7.6、通過開關(guān)實(shí)現(xiàn)波形切換和調(diào)頻、調(diào)幅</p><p> 通過開關(guān)實(shí)現(xiàn)波形的切換比較簡(jiǎn)
32、單只需通過輸出波形后不斷返回到檢測(cè)開關(guān)的子程序中,判斷是否有別的開關(guān)撥動(dòng),如果有別的開關(guān)撥動(dòng)則執(zhí)行別的程序,否則輸出原來的波形,不過如果要能夠識(shí)別別的開關(guān)發(fā)生變化,必須將此開關(guān)關(guān)掉否則會(huì)識(shí)別不了別的鍵按下。當(dāng)然開關(guān)的調(diào)頻和調(diào)幅的實(shí)現(xiàn)也一樣,不過首先先輸出一個(gè)波形,然后再檢測(cè)開關(guān)是否需要調(diào)頻或者調(diào)幅,如果需要?jiǎng)t轉(zhuǎn)入到相應(yīng)的程序中,最后再重新輸出波形。</p><p><b> 下面是調(diào)頻和調(diào)幅:<
33、/b></p><p> 下面要實(shí)現(xiàn)的各種波形通過開關(guān)的切換過程的流程圖,按下一個(gè)開關(guān)通過P3.0為1則輸出鋸齒波,P3.1為1輸出三角波,P3.2為1輸出梯形波,P3.3為1輸出方波,P3.4為1輸出正弦波。</p><p> < 圖 7 ―― 7 ></p><p> 八、程序調(diào)試步驟與運(yùn)行結(jié)果</p><p>
34、;<b> 8.1、調(diào)試步驟</b></p><p> (1)、按照實(shí)驗(yàn)原理圖及電路圖和接線步驟連好實(shí)驗(yàn)線路。</p><p> (2)、把設(shè)計(jì)好的程序放在兩個(gè)地方:一是在系統(tǒng)監(jiān)控中,二是在上位機(jī)實(shí)驗(yàn)系統(tǒng)軟件中。</p><p> (3)、運(yùn)行“DVCC實(shí)驗(yàn)系統(tǒng)”,稍后出現(xiàn)“DVCC實(shí)驗(yàn)系統(tǒng)”菜單。打開存放的課設(shè)程序。</p>
35、;<p> (4)、打開實(shí)驗(yàn)箱外置電源,顯示器顯示閃動(dòng)的“P.”,按下“RESET 復(fù)位鍵,然后按下“PCDBG”功能鍵,再點(diǎn)擊系統(tǒng)菜單中的“聯(lián)接”,此時(shí)出現(xiàn)“寄存器窗口”、“反匯編窗口”和“數(shù)據(jù)窗口”等,說明聯(lián)機(jī)成功。再點(diǎn)“編譯”和“調(diào)試”,將目標(biāo)文件傳送到實(shí)驗(yàn)系統(tǒng)的仿真RAM區(qū)。最后點(diǎn)擊“運(yùn)行”,將輸出端連接到示波器,觀察波形是否滿足設(shè)計(jì)要求。</p><p><b> 8.2、運(yùn)
36、行結(jié)果</b></p><p> 根據(jù)P3口內(nèi)容判斷波形輸出,P3.0=1時(shí),為鋸齒波;P3.1=1時(shí),為三角波;P3.2=1時(shí),為梯形波;P3.3=1時(shí),為方波;P3.4=1時(shí),為正弦波。根據(jù)P3.5的值進(jìn)行頻率與振幅的改變,改變當(dāng)前波形頻率,改變當(dāng)前波形振幅。各個(gè)波形的運(yùn)行情況如下:</p><p> (1)、正弦波原始大小及調(diào)頻調(diào)幅后的波形:</p>&
37、lt;p> 原始正弦波 頻率改變后 振幅改變后</p><p> (2)、三角波原始大小及調(diào)頻調(diào)幅后的波形:</p><p> 原始三角波 頻率改變后 振幅改變后</p><p> (3)、鋸齒波原始大小及調(diào)頻調(diào)幅后的波形:</p><p>
38、原始鋸齒波 頻率改變后 振幅改變后</p><p> (4)、方波原始大小及調(diào)頻調(diào)幅后的波形:</p><p> 原始方波 頻率改變后 振幅改變后</p><p> (4)、梯形波原始大小及調(diào)頻調(diào)幅后的波形:</p><p> 原始方波
39、 頻率改變后 振幅改變后</p><p><b> 九、課程設(shè)計(jì)體會(huì)</b></p><p> 一個(gè)星期的課程設(shè)計(jì)很快就這樣過去了,經(jīng)過此課程設(shè)計(jì)我已經(jīng)了解了DAC0832的基本的功能的實(shí)現(xiàn)和開關(guān)的操作。以此在實(shí)現(xiàn)這些功能時(shí),我遇到了一些問題,這些問題困擾了我好久。我的實(shí)現(xiàn)步驟就是首先能夠讓示波器能夠輸出一些基本的波形,首先檢查一下示波
40、器是否是好的,檢測(cè)方法:將探頭插到示波器的一個(gè)接口處,然后調(diào)示波器如果能夠出來一個(gè)矩形波則說明示波器沒有問題,下面就可以編寫程序,實(shí)現(xiàn)各個(gè)波形的輸出,不過在實(shí)現(xiàn)第二步時(shí)發(fā)現(xiàn)一個(gè)問題就是示波器沒有問題,可是運(yùn)行程序時(shí)波形就是沒有輸出,我不斷的檢查電路,首先從線開始著手,檢查一下這些線內(nèi)部是否時(shí)導(dǎo)通的,后來發(fā)現(xiàn)沒有問題,接著就是檢查8031單片機(jī)是否有問題,檢測(cè)方法是將單片機(jī)的ALE端口作為輸出端,我檢測(cè)到有波形輸出,這說明單片機(jī)沒有問題,
41、最后就是檢查DAC0832是否有問題,通過運(yùn)行系統(tǒng)自帶的程序,后來發(fā)現(xiàn)DAC0832的AOUT端口能夠輸出,這又檢測(cè)到了DAC0832沒有問題,后來我就無計(jì)可施了,只能請(qǐng)教老師,結(jié)果經(jīng)老師檢查發(fā)現(xiàn)有一個(gè)根線接錯(cuò)了,D/A區(qū)的Vref應(yīng)該和+5V相連接,還有就是一個(gè)開關(guān)給撥動(dòng)了。當(dāng)然還有一些問題就是系統(tǒng)設(shè)置的問題,因?yàn)?lt;/p><p> 后來還有一個(gè)問題就是調(diào)頻調(diào)幅的問題,由于我開始在程序當(dāng)中設(shè)置的值過小導(dǎo)致后來
42、我在示波器上看到的波形調(diào)頻后效果不是非常的明顯,后來我檢查完了之后我又自己在電腦上進(jìn)行修改程序調(diào)試終于把這個(gè)問題解決了。</p><p> 最后,我覺得一個(gè)星期的時(shí)間雖然過的很快但是非常的充實(shí)。在這里再一次感謝周老師的指導(dǎo)和同學(xué)的幫助。</p><p><b> 十、參考文獻(xiàn)</b></p><p> 1、主編:張毅剛,副主編:彭喜元,董
43、繼成 《單片機(jī)原理及應(yīng)用》,高等教育出版社。</p><p> 2、主編:胡輝《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與訓(xùn)練》 中國(guó)水利水電出版社</p><p> 3、主編:周航慈《單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)》 北京航空航天大學(xué)出版社 </p><p><b> 十一、源代碼及注釋</b></p><p> 波形輸出程序和切換:<
44、;/p><p> ORG 0000H ;程序開始</p><p> MOV SP,#60H ;設(shè)置堆棧</p><p> MOV DPTR,#8000H ;0832的地址</p><p> LOP: JB P3.5,TIAO ;是否需要調(diào)頻</p><p> MOV R6,#01H ;設(shè)置步長(zhǎng)</p
45、><p> MOV R5,#01H </p><p> START:JB P3.0,JCHI ;輸出鋸齒波程序</p><p> JB P3.1,SJIAO ;輸出三角波程序</p><p> JB P3.2,TXING ;輸出梯形波程序</p><p> JB P3.3,FBO ;輸出方波程序<
46、/p><p> JB P3.4,ZXUAN ;輸出正弦波程序</p><p> SJMP LOP ;循環(huán)檢測(cè)</p><p> ;------------------------</p><p> JCHI:MOV A,#00H ;設(shè)置初值</p><p> LOOP:MOVX @DPTR,A ;把數(shù)
47、據(jù)送到端口轉(zhuǎn)換</p><p> ADD A,R6 ;通過步長(zhǎng)改變數(shù)據(jù),上升波形</p><p> CJNE A,#00H,LOOP ;A值是否到最高點(diǎn)</p><p> ; DJNZ R5,LOOP</p><p> SJMP LOP ;返回檢測(cè)開關(guān)</p><p> ;---------------
48、------------</p><p> SJIAO:MOV A,#00H ;設(shè)置初值</p><p> LOOP3:MOVX @DPTR,A ;把數(shù)據(jù)送到端口轉(zhuǎn)換</p><p> ADD A,R6 ;通過步長(zhǎng)改變數(shù)據(jù)上升波形</p><p> CJNE A,#00H,LOOP3 ; A值是否到最高點(diǎn)</p>&
49、lt;p> DEC A ;減少步長(zhǎng)改變數(shù)據(jù)下降波形</p><p> LOOP2:MOVX @DPTR,A ;把數(shù)據(jù)送到端口轉(zhuǎn)換</p><p> DEC A ;減少步長(zhǎng)改變數(shù)據(jù)下降波形</p><p> CJNE A,#00H,LOOP2 ;A值是否到最低點(diǎn) </p><p> DJNZ R5,LOOP3
50、 ;波形周期</p><p> SJMP LOP ;返回檢測(cè)開關(guān)</p><p> ;---------------------------</p><p> TXING:MOV A,#00H ;設(shè)置初值</p><p> LOOP4:MOVX @DPTR,A ;把數(shù)據(jù)送到端口轉(zhuǎn)換</p><p>
51、ADD A,R6 ;增加步長(zhǎng)改變數(shù)據(jù)上升波形</p><p> CJNE A,#00H,LOOP4 ;A值是否到最高點(diǎn)</p><p> ;SUBB A,R6 ;下降波形做準(zhǔn)備</p><p><b> DEC A</b></p><p> MOV R7,0EEH ;循環(huán)次數(shù)</p><
52、p> LOP2:MOVX @DPTR,A ;進(jìn)行延時(shí)</p><p> DJNZ R7,LOP2</p><p> LOOP1:MOVX @DPTR,A ;把數(shù)據(jù)送到端口轉(zhuǎn)換</p><p> ;SUBB A,R6</p><p><b> DEC A</b></p><p>
53、 CJNE A,#00H,LOOP1 ;是否到最低點(diǎn)</p><p> MOV R7,0EEH ;循環(huán)次數(shù)</p><p> LOP1:MOVX @DPTR,A ;把數(shù)據(jù)送到端口轉(zhuǎn)換</p><p> DJNZ R7,LOP1 ;進(jìn)行延時(shí)</p><p> SJMP LOP ;返回檢測(cè)開關(guān)</p>
54、<p> ;---------------------------------</p><p> FBO: MOV A,#00H ;設(shè)置初值最低點(diǎn)</p><p> MOV R7,#0EEH ;循環(huán)次數(shù)</p><p> LOOP5:MOVX @DPTR,A ;進(jìn)行數(shù)據(jù)轉(zhuǎn)換</p><p> DJNZ R7,LOOP
55、5 ;進(jìn)行延時(shí)</p><p> MOV A,#0FFH ;設(shè)置最高點(diǎn)</p><p> MOV R7,#0EEH ;循環(huán)次數(shù)</p><p> LOOP6:MOVX @DPTR,A ;進(jìn)行數(shù)據(jù)轉(zhuǎn)換</p><p> DJNZ R7,LOOP6 ;進(jìn)行延時(shí)</p><p> MOV A,#00H
56、</p><p> SJMP LOP ;返回檢測(cè)開關(guān)變化</p><p> ;-------------------------------</p><p> ZXUAN: MOV A,#00H ;設(shè)置初值</p><p> LOOP7: MOV R7,A ;保存當(dāng)前的數(shù)據(jù)</p><p> MOV
57、 DPTR,#SIN ;讀取表的地址</p><p> MOVC A,@A+DPTR ;讀取表中的數(shù)據(jù)</p><p> MOV DPTR,#8000H ;D/A0832的端口地址</p><p> MOVX @DPTR,A ;進(jìn)行數(shù)據(jù)轉(zhuǎn)換</p><p> MOV A,R7 ;恢復(fù)當(dāng)前數(shù)據(jù)</p><p>
58、; INC A ;為讀取表的下一個(gè)值做準(zhǔn)備</p><p> CJNE A,#00H,LOOP7 是否讀完表的數(shù)據(jù)</p><p> SJMP START ;返回檢測(cè)開關(guān)</p><p> TIAO: MOV R6,#04H ;改變調(diào)頻/調(diào)幅</p><p> MOV R5,#02H </p><
59、;p> SJMP START ;返回檢測(cè)開關(guān)</p><p> ??;--------以下是通過正弦的值所建立的一個(gè)表</p><p> SIN: DB 80H,83H,86H,89H,8DH,90H,93H,96H</p><p> DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH</p><p&g
60、t; DBB1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H</p><p> DB0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H</p><p> DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H</p><p> DB 0EAH,0ECH,0EEH,0EFH
61、,0F1H, 0F2H,0F4H,0F5H</p><p> DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH</p><p> DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH</p><p> DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH&
62、lt;/p><p> DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H</p><p> DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH</p><p> DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH</p><p>
63、DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H</p><p> DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H</p><p> DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H</p><p> DB 96H, 93H, 90H, 8DH,
64、89H, 86H, 83H, 80H</p><p> DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H</p><p> DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H</p><p> DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH</p>
65、<p> DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H</p><p> DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H</p><p> DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH</p><p> DB 09H, 08H, 07
66、H, 06H, 05H, 04H, 03H, 02H</p><p> DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H</p><p> DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H</p><p> DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H&l
67、t;/p><p> DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H</p><p> DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H</p><p> DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H</p><p> DB 3AH,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告--波形發(fā)生器
- 單片機(jī)波形發(fā)生器課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)(波形發(fā)生器)
- 單片機(jī)課程設(shè)計(jì)---波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)—波形發(fā)生器
- 課程設(shè)計(jì)--單片機(jī)波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)-波形發(fā)生器
- 基于單片機(jī)的波形發(fā)生器課程設(shè)計(jì)
- 單片機(jī)波形發(fā)生器課程設(shè)計(jì)報(bào)告 (2)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)--多波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)---函數(shù)波形發(fā)生器
- 單片機(jī)實(shí)現(xiàn)波形發(fā)生器的課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--波形發(fā)生器的設(shè)計(jì)
- 波形發(fā)生器的設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)基于單片機(jī)之波形發(fā)生器的設(shè)計(jì)
- 單片機(jī)優(yōu)質(zhì)課程設(shè)計(jì)波形發(fā)生器報(bào)告
- 課程設(shè)計(jì)基于單片機(jī)之波形發(fā)生器的設(shè)計(jì)
- 單片機(jī)波形發(fā)生器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告(信號(hào)發(fā)生器)
評(píng)論
0/150
提交評(píng)論