

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 設(shè)計(jì)(論文)題目 基于單片機(jī)的信號(hào)發(fā)生器</p><p><b> 摘要</b></p><p> 信號(hào)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數(shù)信號(hào)發(fā)生器。函數(shù)信號(hào)發(fā)生器在電路實(shí)驗(yàn)和設(shè)備檢測中具有十
2、分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號(hào)或脈沖信號(hào)運(yùn)載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的振蕩器。 </p><p> 本文利用AT89C51單片機(jī)作為控制核心來設(shè)計(jì)信號(hào)發(fā)生器,通過程序設(shè)計(jì)的方法產(chǎn)生正弦波、方波
3、、三角波,并在Protues電子設(shè)計(jì)平臺(tái)上對此方案進(jìn)行了仿真,得到與理論相應(yīng)的波形。通過D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),最終由示波器顯示出來。通過按鍵來控制這幾種波形的類型選擇,而且可控制頻率的變化,在一定范圍內(nèi)波形的幅度和頻率可任意改變。本次設(shè)計(jì)消除了傳統(tǒng)信號(hào)發(fā)生器存在元器件分散性造成波形失真的缺陷,并且其設(shè)計(jì)簡單,價(jià)格低廉,產(chǎn)生的波形穩(wěn)定,可用于多種需要低頻信號(hào)源的場合,實(shí)用性強(qiáng)。</p><p>
4、【關(guān)鍵詞】信號(hào)發(fā)生器 D/A轉(zhuǎn)換 AT89C51 頻率 幅度</p><p><b> Abstract</b></p><p> Signal generator is also known as signal source or oscillator, in the production practice and technology is widel
5、y used in the field of. Each kind of wave may use the trigonometric function equation. Can produce a variety of waveforms, such as the triangle wave, sawtooth wave, rectangular wave (including square wave ), sine wave ci
6、rcuit is called the function signal generator. Function signal generator in electric circuit experiment and the equipment examination has a very wide range of uses. Fo</p><p> This paper design a signal gen
7、erator, and AT89C51 is used as a control microcontroller core, It can generate sine wave, square wave, triangle wave through the method of program design , and the simulation by the computer soft ware Proteus is been
8、 done , and those results consistent with the theory.converting a digital signal into an analog signal through the D/A converter ,and ultimately displayed by the oscilloscope. Through the button to control the options o
9、f waveform types and can chan</p><p> 【keywords】Signal Generator D / A converter AT89C51 Frequency Margin</p><p><b> 目錄</b></p><p><b> 第一章緒論4</b>&l
10、t;/p><p> 1.1課題研究的動(dòng)態(tài)和意義4</p><p> 1.2單片機(jī)概述4</p><p> 1.3信號(hào)發(fā)射器分類4</p><p> 1.4設(shè)計(jì)任務(wù)和要求4</p><p> 第二章 方案的設(shè)計(jì)與選擇5</p><p> 2.1 方案的比較5</p>
11、<p> 2.2 設(shè)計(jì)原理5</p><p> 2.3 設(shè)計(jì)功能6</p><p> 第三章 主要電路元器件介紹6</p><p> 3.1 AT89C51單片機(jī)簡介6</p><p> 3.2 DAC0832簡介8</p><p> 第四章 硬件實(shí)現(xiàn)和單元電路設(shè)計(jì)9</p&
12、gt;<p> 4.1 硬件原理框圖9</p><p> 4.2 復(fù)位電路10</p><p> 4.3 D/A轉(zhuǎn)換電路11</p><p> 4.4 按鍵接口電路12</p><p> 4.5 時(shí)鐘模塊設(shè)計(jì)12</p><p> 4.6 顯示模塊設(shè)計(jì)13</p>&
13、lt;p> 第五章 軟件設(shè)計(jì)14</p><p> 5.1 程序流程圖14</p><p> 5.2初始化程序15</p><p> 5.3鍵掃描程序16</p><p> 5.4波形產(chǎn)生程序16</p><p> 5.5波形仿真17</p><p> 第六章安
14、裝調(diào)試和問題解決21</p><p> 6.1 調(diào)試過程21</p><p> 6.2 出現(xiàn)問題與解決方法22</p><p><b> 實(shí)驗(yàn)總結(jié)22</b></p><p><b> 致謝23</b></p><p><b> 參考文獻(xiàn)23&
15、lt;/b></p><p> 附錄1 電路原理圖23</p><p> 附錄2 源程序24</p><p><b> 緒論</b></p><p> 1.1課題研究的動(dòng)態(tài)和意義</p><p> 信號(hào)發(fā)生器也被稱為函數(shù)發(fā)生器,主要作為試驗(yàn)用的信號(hào)源,是現(xiàn)金各種電子電路實(shí)驗(yàn)設(shè)計(jì)
16、中不可或缺的儀器設(shè)備之一。目前市場上常見的波形發(fā)生器多為純硬件搭接而成,波形種類為正弦波、方波、三角波等各種波形。用分立元件組成函數(shù)發(fā)生器,難以達(dá)到很高的頻率,其工作也不穩(wěn)定,用集成芯片的函數(shù)發(fā)生器則可以改善這一缺點(diǎn)。既可以達(dá)到較高的頻率,又能產(chǎn)生多種易于調(diào)試的波形。利用單片集成芯片,成本也比較高。</p><p> 在計(jì)算機(jī)控制技術(shù)、電子技術(shù)飛速發(fā)展的今天,信號(hào)發(fā)生器的應(yīng)用越來越廣,對信號(hào)發(fā)生器的頻率穩(wěn)定度、
17、頻譜純度、頻率范圍和輸出信號(hào)的頻率微調(diào)分辨率提出越來越高的要求,普通的頻率源已經(jīng)不能滿足現(xiàn)代電子技術(shù)的高標(biāo)準(zhǔn)要求。國內(nèi)外紛紛設(shè)計(jì)制作先進(jìn)的信號(hào)發(fā)生器,從實(shí)用價(jià)值來看,各高校中信號(hào)發(fā)生器應(yīng)用極為廣泛,能夠設(shè)計(jì)出低成本、高精度的信號(hào)發(fā)生器并推廣使用具有非常重要的意義。 基于單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì),以性價(jià)比相對較高的AT89C51單片機(jī)為核心,以簡單、廉價(jià)的元器件構(gòu)筑,能夠產(chǎn)生高精度、高純度的方波、三角波、、正弦波,同時(shí)可以實(shí)現(xiàn)波形自由
18、切換,以及頻率和幅度在線調(diào)整。目前購買的信號(hào)發(fā)生器價(jià)格昂貴,功能強(qiáng)大,實(shí)際在高校開展實(shí)驗(yàn)過程中用到最多的是低頻函數(shù)信號(hào)發(fā)生器。如果能夠在高校實(shí)驗(yàn)領(lǐng)域應(yīng)用本文設(shè)計(jì)的儀器取代它們,將具有重要的實(shí)際意義。</p><p><b> 1.2單片機(jī)概述</b></p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存
19、儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。單片機(jī)具有集成度高、系統(tǒng)結(jié)構(gòu)簡單、使用方便、實(shí)現(xiàn)模塊化、可靠性高、處理功能強(qiáng)、速度快等特點(diǎn),因?yàn)楸粡V泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。</p><p> 1.3信號(hào)
20、發(fā)射器分類</p><p> 信號(hào)發(fā)生器是指產(chǎn)生所需參數(shù)的電測試信號(hào)的儀器。因其應(yīng)用廣泛,種類繁多,特性各異,分類也不盡一致。按信號(hào)波形可分為正弦信號(hào)、函數(shù)信號(hào)、脈沖信號(hào)和隨機(jī)信號(hào)發(fā)生器等四大類;按頻率覆蓋范圍分為低頻信號(hào)發(fā)生器、高頻信號(hào)發(fā)生器和微波信號(hào)發(fā)生器;按輸出電平可調(diào)節(jié)范圍和穩(wěn)定度分為簡易信號(hào)發(fā)生器、標(biāo)準(zhǔn)信號(hào)發(fā)生器和功率信號(hào)發(fā)生器;按頻率改變的方式分為調(diào)諧式信號(hào)發(fā)生器、掃頻式信號(hào)發(fā)生器、程控式信號(hào)發(fā)生器
21、和頻率合成式信號(hào)發(fā)生器等。信號(hào)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。</p><p> 1.4設(shè)計(jì)任務(wù)和要求</p><p> 本文是做基于單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì),將采用編程的方法來實(shí)現(xiàn)方波、三角波、正弦波的發(fā)生。根據(jù)設(shè)計(jì)的要求,對各種波形的頻率和幅度進(jìn)行程序的編寫,并將所寫程序裝入單片機(jī)的程序存儲(chǔ)器中。在程序運(yùn)行中,當(dāng)接收到來自外界的命令,需要輸出某種波形
22、時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號(hào)發(fā)生器的輸出端口輸出。 </p><p> 第二章 方案的設(shè)計(jì)與選擇</p><p><b> 2.1 方案的比較</b></p><p> 方案一:采用單片函數(shù)發(fā)生器(如8038),8038可同時(shí)產(chǎn)生正弦波、方波等,而且方法簡單易行,用D/
23、A轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以實(shí)現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號(hào)的頻率穩(wěn)定度不高。</p><p> 方案二:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準(zhǔn)確的三角波、方波和正弦波三種周期性波形。但此方案成本高,程序復(fù)雜度高。</p><p> 方案三:采用單片機(jī)編程的方法來實(shí)現(xiàn)。該方法可以通過編程的方法來控制信號(hào)波形的頻率和幅度,而且在硬件電路
24、不變的情況下,通過改變程序來實(shí)現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號(hào),所以信號(hào)的精度可以做的很高。</p><p> 鑒于方案一的信號(hào)頻率不夠穩(wěn)定和方案二的電路復(fù)雜,所以決定采用方案三的設(shè)計(jì)方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實(shí)現(xiàn),使得信號(hào)頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價(jià)格便宜,使得硬件的開銷達(dá)到最省。</p>&
25、lt;p><b> 2.2 設(shè)計(jì)原理</b></p><p> 本系統(tǒng)利用AT89C51單片機(jī)作為控制核心,采用程序設(shè)計(jì)的方法產(chǎn)生三角波、正弦波、方波等幾種波形,再通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),濾波放大,最終由示波器顯示出來,通過鍵盤來控制三種波形的類型選擇、頻率變化。其系統(tǒng)框圖如圖2-1所示。</p><p> 圖2.1 信號(hào)
26、發(fā)生器原理框圖</p><p> 89C51是整個(gè)波形發(fā)生器的核心部分,通過程序的編寫和執(zhí)行,產(chǎn)生各種各樣的信號(hào),并從鍵盤接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換和信號(hào)幅度的調(diào)節(jié)。當(dāng)數(shù)字信號(hào)經(jīng)過接口電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號(hào)也就是所需要的輸出波形。</p><p><b> 2.3 設(shè)計(jì)功能</b></p><p> ?。?)本方案利用815
27、5擴(kuò)展8個(gè)獨(dú)立式按鍵,6個(gè)LED顯示器。其中“S0”號(hào)鍵代表方波輸出,“S1”號(hào)鍵代表正弦波輸出,“S2”號(hào)鍵代表三角波輸出,“S3” 號(hào)鍵代表鋸齒波輸出。</p><p> ?。?)“S4”號(hào)鍵為10Hz的頻率信號(hào),“S5”號(hào)鍵為100Hz的頻率信號(hào),“S6”號(hào)鍵為500Hz的頻率信號(hào),“S7”號(hào)鍵為1KHz的頻率信號(hào),6個(gè)LED顯示器輸出信號(hào)的頻率值,選用共陽極LED。</p><p>
28、; ?。?)利用兩片DAC0832實(shí)現(xiàn)幅度可調(diào)的信號(hào)源,(其中一片用來調(diào)節(jié)幅度,另外一片用來實(shí)現(xiàn)信號(hào)源的輸出)。</p><p> ?。?)頻率范圍:10~1000Hz。</p><p> ?。?)輸出波形幅度為0~5V。</p><p> 第三章 主要電路元器件介紹</p><p> 3.1 AT89C51單片機(jī)簡介</p>
29、<p> 3.1.1單片機(jī)簡介</p><p> 單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能集成到一塊半導(dǎo)體硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域的廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300M的高速單片機(jī)。</
30、p><p> 在本次設(shè)計(jì)中所使用的單片機(jī)是AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī)[13],片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大的
31、AT89C52單片機(jī)可提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域[14]。其外形及引腳排列如圖3-2所示。</p><p> 圖3-2 AT89C51引腳圖</p><p> AT89C51為8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制[15]。功能包括對會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接
32、口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途通常由軟件定義[16] 。</p>
33、<p> 3.1.2 管腳功能說明</p><p> VCC:供電電壓4~6V典型值5V);</p><p><b> GND:接地;</b></p><p> 復(fù)位引腳輸入高電平使89C51復(fù)位,返回低電平退出復(fù)位;</p><p> EA/Vpp:運(yùn)行方式時(shí), EA為程序存儲(chǔ)器選擇信號(hào),EA接地
34、時(shí)CPU總是從外部存</p><p> 儲(chǔ)器中取指令,EA接高電平時(shí)CPU可以從內(nèi)部或外部取指令;FLASH編程方式時(shí),該引腳為編程電源輸入端Vpp(=5V或12V);</p><p> PSEN:外部程序存儲(chǔ)器讀選通信號(hào),CPU從外部儲(chǔ)存器取指令時(shí),從PSEN引腳輸出讀選通信號(hào)(負(fù)脈沖);</p><p> ALE/PROGALE:運(yùn)行方式時(shí),ALE為外部儲(chǔ)
35、存器低8位地址鎖存信號(hào),F(xiàn)LASH編程方式時(shí),該引腳為負(fù)脈沖輸入端;</p><p> XTAL1,XTAL2為內(nèi)部振蕩器電路(反相放大器)的輸入端和輸出端,外接晶振電路; </p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIAS
36、H編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高;</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出</p><p> 4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接
37、收;</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行
38、讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào);</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> 3.2 DAC0832簡介&
39、lt;/p><p><b> 3.2.1工作原理</b></p><p> DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片,由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器及轉(zhuǎn)換控制電路四部分構(gòu)成。8位輸入鎖存器用于存放主機(jī)送來的數(shù)字量,使輸入數(shù)字得到緩沖和鎖存,并加以控制;8位DAC寄存器用于存放存放待轉(zhuǎn)換的數(shù)字量,并加以控制;8位D/A轉(zhuǎn)換器輸出與數(shù)字量成正比的
40、模擬電流,由與門、與非門組成的輸入控制的輸入電路來控制2個(gè)寄存器的選通或鎖存狀態(tài)。</p><p> 當(dāng)WR2和XFER同時(shí)有效時(shí),8位DAC寄存器端為高電平“1”,此時(shí)DAC寄存器的輸出端Q跟隨輸入端D也就是出入寄存器Q端得電平變化,反之,當(dāng)端為低電平“0”時(shí),第一級(jí)8位輸入寄存器Q端得狀態(tài)則鎖存到第二級(jí)8位DAC寄存器中,以便第三極8位DAC轉(zhuǎn)換器進(jìn)行D/A轉(zhuǎn)換。</p><p>
41、 3.2.2 DAC0832簡介</p><p><b> 分辨率為8位;</b></p><p> 電流穩(wěn)定時(shí)間1us;</p><p> 可單緩沖、雙緩沖或直接數(shù)字輸入;</p><p> 只需在滿量程下調(diào)整其線性度;</p><p> 單一電源供電(+5V~+15V);</p
42、><p><b> 低功耗,20mW。</b></p><p><b> 引腳功能:</b></p><p> D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時(shí)間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò));</p><p> ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;</p>&
43、lt;p> CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;</p><p> WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE</p><p> CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;</p><p> XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低
44、電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效; </p><p> WR2:DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。</p><p> IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;</p><p> IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);</p><p> Rfb:反饋信號(hào)輸入線
45、,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;</p><p> Vcc:電源輸入端,Vcc的范圍為+5V~+15V;</p><p> VREF:基準(zhǔn)電壓輸入線,VREF的范圍為-10V~+10V;</p><p> AGND:模擬信號(hào)地</p><p> DGND:數(shù)字信號(hào)地</p><p> 根據(jù)對DA
46、C0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。其引腳圖如圖3-3所示。</p><p> 圖3-3 DAC0832引腳圖</p><p> D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。若需要相應(yīng)的模擬電壓信號(hào),可通過一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)[18] 。運(yùn)放的反饋電阻可通過RFB端引用片內(nèi)固有電阻,也可外接。DAC08
47、32邏輯輸入滿足TTL電平,可直接與TTL電路或微機(jī)電路連接,它其以價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛應(yīng)用[19] 。</p><p> 第四章 硬件實(shí)現(xiàn)和單元電路設(shè)計(jì)</p><p> 4.1 硬件原理框圖</p><p> 硬件原理方框圖如圖4.1所示。</p><p> 圖4.1 硬件原理框圖&
48、lt;/p><p><b> 4.2 復(fù)位電路</b></p><p> 復(fù)位電路中,單片機(jī)是利用電容充電來實(shí)現(xiàn)復(fù)位的。在電源接通瞬間,電容兩端相當(dāng)于短路,于是RST引腳上的電位是高電平,電源接通后對電容進(jìn)行快速充電,隨著充電的進(jìn)行,RST引腳上的電位也會(huì)逐漸下降為低電平。只要保證RST端電壓下降,降到一定程度,即為低電平,且其引腳上高電平出現(xiàn)的時(shí)間大雨兩個(gè)機(jī)器周期,
49、便可以實(shí)現(xiàn)正常復(fù)位,單片機(jī)開始工作。</p><p> 按鍵復(fù)位電路中,當(dāng)按鍵沒有按下時(shí),電路同上電復(fù)位電路。如果在單片機(jī)運(yùn)行過程中,按下RESET鍵,已經(jīng)充好電的電容會(huì)快速通過所接電阻的回路放電,從而使得RST引腳上的電位快速變?yōu)楦唠娖剑烁唠娖綍?huì)維持到按鍵釋放,從而滿足單片機(jī)復(fù)位的條件實(shí)現(xiàn)按鍵復(fù)位。 單片機(jī)的初始化工作就是復(fù)位,復(fù)位后中央處理器CPU和單片機(jī)內(nèi)的其它功能部件都處在一定的初始狀態(tài),并從
50、這個(gè)狀態(tài)開始工作。為了防止程序執(zhí)行過程中失步或運(yùn)行紊亂,在本次設(shè)計(jì)中我們采用了上電復(fù)位及手動(dòng)復(fù)位電路,電路圖如圖4-2所示。</p><p> 圖4.2 復(fù)位電路圖</p><p> 4.3 D/A轉(zhuǎn)換電路</p><p> 由于單片機(jī)產(chǎn)生的是數(shù)字信號(hào),要想得到所需要的波形,就要把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),所以本次設(shè)計(jì)選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有
51、8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。</p><p> DAC0832是一個(gè)具有兩個(gè)輸入數(shù)據(jù)寄存器的8位DAC。目前生產(chǎn)的DAC芯片分為兩類,一類芯片內(nèi)部設(shè)置有數(shù)據(jù)寄存器,不需要外加電路就可以直接與微型計(jì)算機(jī)接口。另一類芯片內(nèi)部沒有數(shù)據(jù)寄存器,輸出信號(hào)隨數(shù)據(jù)輸入線的狀態(tài)變化而變化,因此不能直接與微型計(jì)算機(jī)接口,必須通過并行接口與微型計(jì)算機(jī)接口。DAC0832是具有20條引線的雙列直插式CMOS器件,它內(nèi)部具有
52、兩級(jí)數(shù)據(jù)寄存器,完成8位電流D/A轉(zhuǎn)換,故不需要外加電路。 </p><p> 單片機(jī)通過P0口向0832發(fā)送數(shù)字編碼,產(chǎn)生不同的輸出。先利用采樣定理對各波形進(jìn)行抽樣,然后把各采樣值進(jìn)行編碼,得到的數(shù)字量存入各個(gè)波形表,執(zhí)行程序時(shí)通過查表方法依次取出,經(jīng)過D/A轉(zhuǎn)換后輸出就可以得到波形。假如N個(gè)點(diǎn)構(gòu)成波形的一個(gè)周期,則0832輸出N個(gè)樣值點(diǎn)后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,即一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn),成為第二個(gè)周期。利用
53、單片機(jī)的晶振控制輸出周期的速度,也就是控制了輸出的波形的頻率。這樣就控制了輸出的波形及其頻率。其數(shù)模轉(zhuǎn)換電路如圖4-3所示。</p><p> 圖4-3數(shù)模轉(zhuǎn)換電路</p><p> 這樣,通過對系統(tǒng)的硬件部分設(shè)計(jì),我們就可以從單片機(jī)直接得到所需的方波,從DAC0832數(shù)模轉(zhuǎn)換器得到符合要求的正弦波和三角波,并且完成其輸出轉(zhuǎn)換。</p><p> 4.4 按鍵
54、接口電路</p><p> 在本次設(shè)計(jì)中,控制系統(tǒng)設(shè)定為最小化工作模式,P1.0~P1.2口作為輸入口接三個(gè)按鍵,其中T1為頻率增加鍵,T2為頻率減小鍵,T3為正弦波與三角波選擇按鍵。當(dāng)其中一個(gè)按鍵按下時(shí),就會(huì)執(zhí)行相應(yīng)的功能。其電路接法如圖4-4所示。</p><p> 圖4.4 按鍵接口</p><p> 4.5 時(shí)鐘模塊設(shè)計(jì)</p><
55、;p> 單片機(jī)工作時(shí),從取指令到譯碼再進(jìn)行微操作,必須在時(shí)鐘信號(hào)控制下才能有序地進(jìn)行,時(shí)鐘電路就是為單片機(jī)工作提供基本時(shí)鐘的。單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。 內(nèi)部時(shí)鐘方式實(shí)在單片機(jī)XTAL1和XTAL2引腳上跨接上一個(gè)晶振和兩個(gè)穩(wěn)頻電容,可以與單片機(jī)內(nèi)的電路構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振的取值范圍一般為0~24MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24
56、MHz等。一些新型的單片機(jī)還可以選擇更高的頻率。外界電容的作用是對振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)預(yù)晶振頻率一致,同時(shí)祈禱穩(wěn)定頻率的作用,一般選用20-30pF的瓷片電容。</p><p> 外部使時(shí)鐘方式則是在單片機(jī)XTAL1引腳上外接一個(gè)穩(wěn)定的時(shí)鐘信號(hào)源,它一般適用于多片單片機(jī)同時(shí)工作的情況,用同一時(shí)鐘信號(hào)可以保證單片機(jī)的工作同步。 對于AT89C51單片機(jī),一般的晶振可以在1.2MHZ~12MHZ之間
57、選擇[20],此時(shí)電容可以選擇的范圍是10pf~30pf。在本次設(shè)計(jì)中,因?yàn)橹恍枋褂靡黄珹T89C52芯片,所以采用內(nèi)部時(shí)鐘方式,所用電容是30pf,晶振選擇12MHZ。此時(shí)對應(yīng)的時(shí)鐘電路如圖3-1所示,其一條引腳接XTAL1,另一條接XTAL2。</p><p> 圖4.5 時(shí)鐘電路</p><p> 4.6 顯示模塊設(shè)計(jì)</p><p> 顯示電路是用來
58、顯示波形信號(hào)的頻率,使得整個(gè)系統(tǒng)更加合理,從經(jīng)濟(jì)的角度出發(fā),所以顯示器件采用LED數(shù)碼管顯示器。而且LED數(shù)碼管是采用共陽極接法,當(dāng)主控端口輸出一個(gè)低電平后,與其相對應(yīng)的數(shù)碼管即變亮,顯示所需數(shù)據(jù)。其器件模型如圖4.6所示。</p><p> 圖4.6 LED顯示電路</p><p> 這樣,通過對系統(tǒng)的硬件部分設(shè)計(jì),我們就可以從單片機(jī)直接得到所需的方波,從DAC0832數(shù)模轉(zhuǎn)換器得
59、到符合要求的正弦波和三角波,并且完成其輸出轉(zhuǎn)換。</p><p><b> 第五章 軟件設(shè)計(jì)</b></p><p><b> 5.1 程序流程圖</b></p><p> 本文中子程序的調(diào)用是通過按鍵的選擇來實(shí)現(xiàn),在取得按鍵相應(yīng)的鍵值后,啟動(dòng)計(jì)時(shí)器和相應(yīng)的中斷服務(wù)程序,再直接查詢程序中預(yù)先設(shè)置的數(shù)據(jù)值,通過轉(zhuǎn)換輸
60、出相應(yīng)的電壓,從而形成所需的各種波形。</p><p> 主程序的流程圖如圖5.1所示,在程序開始運(yùn)行之后,首先是對8155進(jìn)行初始化,之后判斷信號(hào)頻率值,如符合所需的頻率,則重置時(shí)間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。</p><p> 5.1 主程序流程圖</p><p>
61、; 圖5.2為各波形子程序的流程圖。如圖所示,在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當(dāng)判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛啵绱朔磸?fù)。如果選擇的是方波,則用查表的方法求出相應(yīng)的數(shù)據(jù),并通過D/A轉(zhuǎn)換器將數(shù)據(jù)轉(zhuǎn)換成模擬信號(hào),形成所需波形信號(hào)。</p><p> 圖5.2 子程序流程圖</p><p><b> 5.2初始化程序</b><
62、;/p><p> 初始化子函數(shù)的主要是設(shè)置定時(shí)器的工作模式、初值預(yù)置、開中斷和打開定時(shí)器等。在這里,定時(shí)器T1工作于16位定時(shí)模式,單片機(jī)按定時(shí)時(shí)間重復(fù)的把波形送到DAC0832的寄存器。其程序流程圖如圖5-3所示</p><p> 5-3初始化程序流程圖 </p><p><b> 5.3鍵掃描程序</b></p><
63、p> 對于鍵掃描程序,其主要目的是對三個(gè)按鍵進(jìn)行檢測,當(dāng)其中有一個(gè)按鍵按下時(shí),就執(zhí)行對應(yīng)的功能。在三個(gè)按鍵中,兩個(gè)分別用于增加頻率和減小頻率,另外一個(gè)是執(zhí)行正弦波和三角波的選擇功能。鍵掃描程序流程圖如圖5-4所示。</p><p><b> N</b></p><p><b> Y</b></p><p>
64、圖5-4 鍵掃描流程圖</p><p><b> 5.4波形產(chǎn)生程序</b></p><p> 定時(shí)器T1的中斷程序就是波形產(chǎn)生程序。若定時(shí)器計(jì)數(shù)溢出時(shí),就會(huì)產(chǎn)生一次中斷。在中斷發(fā)生后,單片機(jī)將按次序?qū)?shù)據(jù)表中的波形數(shù)據(jù)依次送入數(shù)模轉(zhuǎn)換器DAC0832,DAC8032根據(jù)輸入的數(shù)據(jù)大小輸出對應(yīng)電壓。波形數(shù)據(jù)產(chǎn)生函數(shù)流程圖如圖5-5所示。</p>&l
65、t;p><b> N</b></p><p><b> Y</b></p><p> 圖5-5 波形產(chǎn)生流程圖</p><p><b> 5.5波形仿真</b></p><p> 通過前面的軟、硬件設(shè)計(jì),整個(gè)電路的設(shè)計(jì)已基本完成,下面將進(jìn)行正弦波、方波、三角波等
66、波形的仿真與測試。本文中波形信號(hào)的仿真是以Proteus這一款軟件為平臺(tái),裝入波形發(fā)生程序,驗(yàn)證硬件電路和程序的正確性。</p><p> 5.51 正弦波的仿真</p><p> 如圖所示,此波形為幅度為5V,頻率為500HZ的正弦波,是通過查表轉(zhuǎn)換的方法老實(shí)現(xiàn)的。而要實(shí)現(xiàn)其他如10HZ、100HZ、1KHZ等頻率的波形,則需要調(diào)用延時(shí)子程序 ,改變波形發(fā)生的時(shí)間常數(shù)。</p&
67、gt;<p> 5.52 三角波的仿真</p><p> 如圖所示,此波形為幅度為5V,頻率為500HZ的三角波,是通過查表轉(zhuǎn)換的方法老實(shí)現(xiàn)的。而要實(shí)現(xiàn)其他如10HZ、100HZ、1KHZ等頻率的波形,則需要調(diào)用延時(shí)子程序 ,改變波形發(fā)生的時(shí)間常數(shù) </p><p> 5.53 方波的仿真</p><p> 如圖所示,此波形為幅度為5V,頻率為
68、500HZ的方波,是通過查表轉(zhuǎn)換的方法老實(shí)現(xiàn)的。通過調(diào)用延時(shí)子程序 ,改變波形發(fā)生的時(shí)間常數(shù),實(shí)現(xiàn)其他如10HZ、100HZ、1KHZ等頻率的波形。</p><p><b> 程序如下</b></p><p> #include "reg51.h"</p><p> #define uchar unsigned cha
69、r</p><p> #define uint unsigned int</p><p> #define key P1</p><p> #define dataout P0</p><p> /**********正弦波數(shù)據(jù)表*************/</p><p> uchar code sin_t
70、ab[256]=</p><p> {0x80,0x83,0x85,0x88,0x8A,0x8D,0x8F,0x92,</p><p> 0x94,0x97,0x99,0x9B,0x9E,0xA0,0xA3,0xA5,</p><p> 0xA7,0xAA,0xAC,0xAE,0xB1,0xB3,0xB5,0xB7,</p><p>
71、 0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7,</p><p> 0xC9,0xCB,0xCC,0xCE,0xD0,0xD1,0xD3,0xD4,</p><p> 0xD6,0xD7,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,</p><p> 0xDF,0xE0,0xE1,0xE2,0xE3,0xE3,
72、0xE4,0xE4,</p><p> 0xE5,0xE5,0xE6,0xE6,0xE7,0xE7,0xE7,0xE7,</p><p> 0xE7,0xE7,0xE7,0xE7,0xE6,0xE6,0xE5,0xE5,</p><p> 0xE4,0xE4,0xE3,0xE3,0xE2,0xE1,0xE0,0xDF,</p><p>
73、 0xDE,0xDD,0xDC,0xDB,0xDA,0xD8,0xD7,0xD6,</p><p> 0xD4,0xD3,0xD1,0xD0,0xCE,0xCC,0xCB,0xC9,</p><p> 0xC7,0xC5,0xC3,0xC1,0xBF,0xBD,0xBB,0xB9,</p><p> 0xB7,0xB5,0xB3,0xB1,0xAE,0xAC
74、,0xAA,0xA7,</p><p> 0xA5,0xA3,0xA0,0x9E,0x9B,0x99,0x97,0x94,</p><p> 0x92,0x8F,0x8D,0x8A,0x88,0x85,0x83,0x80,</p><p> 0x7D,0x7B,0x78,0x76,0x73,0x71,0x6E,0x6C,</p><p>
75、; 0x69,0x67,0x65,0x62,0x60,0x5D,0x5B,0x59,</p><p> 0x56,0x54,0x52,0x4F,0x4D,0x4B,0x49,0x47,</p><p> 0x45,0x43,0x41,0x3F,0x3D,0x3B,0x39,0x37,</p><p> 0x35,0x34,0x32,0x30,0x2F,0X2
76、D,0x2C,0X2A,</p><p> 0x29,0x28,0x26,0x25,0x24,0x23,0x22,0x21,</p><p> 0x20,0x1F,0x1E,0x1D,0x1D,0x1C,0x1C,0x1B,</p><p> 0x1B,0x1A,0x1A,0x1A,0x19,0x19,0x19,0x19,</p><p&g
77、t; 0x19,0x19,0x19,0x19,0x1A,0x1A,0x1A,0x1B,</p><p> 0x1B,0x1C,0x1C,0x1D,0x1D,0x1E,0x1F,0x20,</p><p> 0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,</p><p> 0X2A,0x2C,0X2D,0x2F,0x30,0x
78、32,0x34,0x35,</p><p> 0x37,0x39,0x3B,0x3D,0x3F,0x41,0x43,0x45,</p><p> 0x47,0x49,0x4B,0x4D,0x4F,0x52,0x54,0x56,</p><p> 0x59,0x5B,0x5D,0x60,0x62,0x65,0x67,0x69,</p><p&
79、gt; 0x6C,0x6E,0x71,0x73,0x76,0x78,0x7B,0x7D};</p><p> /*************三角波數(shù)據(jù)表*************************/</p><p> uchar code thr_tab[256]=</p><p> {0x80,0x81,0x82,0x83,0x84,0x85,0x86
80、,0x87,</p><p> 0x89,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,</p><p> 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,</p><p> 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,</p><p> 0x
81、A0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,</p><p> 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,</p><p> 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,</p><p> 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xB
82、E,0xBF,</p><p> 0xBF,0xBE,0xBD,0xBC,0xBB,0xBA,0xB9,0xB8,</p><p> 0xB7,0xB6,0xB5,0xB4,0xB3,0xB2,0xB1,0xB0,</p><p> 0xAF,0xAE,0xAD,0xAC,0xAB,0xAA,0xA9,0xA8,</p><p> 0
83、xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0,</p><p> 0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98,</p><p> 0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,</p><p> 0x8F,0x8E,0x8D,0x8C,0x8B,0x8A,0x
84、89,0x89,</p><p> 0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,</p><p> 0x7F,0x7E,0x7D,0x7C,0x7B,0x7A,0x79,0x78,</p><p> 0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,</p><p>
85、0x6F,0x6E,0x6D,0x6C,0x6B,0x6A,0x69,0x68,</p><p> 0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x60,</p><p> 0x5F,0x5E,0x5D,0x5C,0x5B,0x5A,0x59,0x58,</p><p> 0x55,0x55,0x55,0x54,0x53,0x52,0
86、x51,0x50,</p><p> 0x4F,0x4E,0x4D,0x4C,0x4B,0x4A,0x49,0x48,</p><p> 0x44,0x44,0x45,0x44,0x43,0x42,0x41,0x40,</p><p> 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,</p><p>
87、 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,</p><p> 0x50,0x51,0x52,0x53,0x55,0x55,0x56,0x57,</p><p> 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,</p><p> 0x60,0x61,0x62,0x63,0x66,0x65,
88、0x66,0x67,</p><p> 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,</p><p> 0x70,0x71,0x72,0x73,0x77,0x75,0x76,0x77,</p><p> 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F};</p><p>
89、; /******************************************/</p><p> uint data THHL=65535;</p><p> uchar data keyword,n=0;</p><p> bdata sinthr;</p><p> sbit sin_thr=sinthr^0;&l
90、t;/p><p> sbit ww=P2^0;</p><p> /**************鍵掃描子函數(shù)**************************/</p><p><b> keyscan()</b></p><p><b> {</b></p><p>
91、 keyword=key&0x07;</p><p> if(keyword!=0x07)</p><p><b> {</b></p><p> while((key&0x07)!=0x07);</p><p> switch(keyword)</p><p><
92、b> {</b></p><p><b> case 6:</b></p><p> {if(THHL>=65235)THHL=65535;else{THHL=THHL+255;}break;}</p><p><b> case 5:</b></p><p> {
93、if(THHL<=500)THHL=0;else{THHL=THHL-255;}break;}</p><p><b> case 3:</b></p><p> {sin_thr=~sin_thr;break;}</p><p> default:{break;}</p><p><b> }&
94、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p> /**********初始化函數(shù)**************************/</p><p> void clearmen()</p><p>
95、<b> {</b></p><p> key=0xff,dataout=0x00;THHL=65535;</p><p> TH1=THHL/256;TL1=THHL&256;</p><p> TMOD=0x11;ET1=1;TR1=1;EA=1;</p><p><b> }</b
96、></p><p> /***********主函數(shù)*************************/</p><p><b> main()</b></p><p> 第六章安裝調(diào)試和問題解決</p><p><b> 6.1 調(diào)試過程</b></p><p&g
97、t; 1. 不通電,用萬用表根據(jù)電路圖仔細(xì)檢查各線路連接是否正常。 </p><p> 2. 首先是調(diào)試單片機(jī)部分,DA和運(yùn)算放大器芯片不接。用STC_ISP_V483軟件通過串口下程序。看是否可以正常下程序。 </p><p> 3.當(dāng)可以正常下程序時(shí),給51單片機(jī)下一個(gè)讓所有I/0口一會(huì)兒輸入0,延時(shí),再輸出1,以此類推。用萬用表測量各I/O口得電壓是不是一會(huì)兒高,一會(huì)兒低。 &
98、lt;/p><p> 4.安上DA和運(yùn)算放大器芯片,給單片機(jī)下一個(gè)輸出正弦波的測試程序,通過示波器看輸出是否正常。 </p><p> 5. 給單片機(jī)下一個(gè)完整的程序,分別按下S1,看波形是否改變。按下S2,看頻率是否改變。 </p><p> 硬件調(diào)試比較費(fèi)時(shí),需要細(xì)心和耐心,也需要熟練掌握電路原理。 然后,用仿真軟件進(jìn)行軟件調(diào)試,比如單片機(jī)C51編輯軟件KEI
99、L,該軟件提供一個(gè)集成開發(fā)環(huán)境uVision,它包括C編輯器、宏編輯器、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器。通過編譯、運(yùn)行,可以檢查程序錯(cuò)誤。但應(yīng)用此方法,仍需要十分了解所使用元器件的工作方式和管腳連接方式。 在確定編程思路以后將各部分的程序及各子程序編好,使用 keil 進(jìn)行編譯,根據(jù)提示的錯(cuò)誤對程序進(jìn)行修改。除了語法差錯(cuò)和邏輯差錯(cuò)外,當(dāng)確認(rèn)程序沒問題時(shí),通過直接加載到 protues 軟件電路中進(jìn)行仿真。</p>
100、<p> 6.2 出現(xiàn)問題與解決方法</p><p> 1. 調(diào)試單片機(jī)的串口時(shí),發(fā)現(xiàn)不能正常的下程序。我想可能是單片機(jī)壞了借了一塊學(xué)習(xí)板測試了一下單片機(jī)芯片,發(fā)現(xiàn)可以正常下載。這說明很可能是MAX232的電路出了問題。我仔細(xì)查看了電路圖,又上網(wǎng)查了下其他的MAX232的電路圖,發(fā)現(xiàn)我的電路圖和別人的不一樣。于是我將MAX232的TIOU1接串口的第2腳,再下程序,終于可以正常下載了。 </
101、p><p> 2.剛開始寫的測試程序輸出的波形失真很大。我想可能是波形的ROM表里的數(shù)據(jù)值過小,導(dǎo)致DA輸出的誤差很大。因而臥將波形的ROM表里的數(shù)據(jù)值調(diào)大,在測試時(shí)發(fā)現(xiàn)波形變得好多了。</p><p> 3. 調(diào)試波形的時(shí)候我發(fā)現(xiàn)方波的失真比較大。我想可能是低通濾波器的截止頻率太低了,因而我將RC低通濾波器的電阻由1K換成100歐姆,效果好了很多。</p><p>
102、;<b> 實(shí)驗(yàn)總結(jié)</b></p><p> 該信號(hào)發(fā)生器在調(diào)試時(shí),總是出現(xiàn)許多的錯(cuò)誤,軟件上除了許多的問題,之后糾正和向老師、同學(xué)請教慢慢的改了過來??墒窃诜抡鏁r(shí)依然存在很多的問題,開始的時(shí)候是仿真出不了波形,之后改了改電路的一根線,出現(xiàn)了。在頻率的調(diào)節(jié)問題更多,而使頻率無法調(diào)節(jié),同時(shí)信號(hào)的頻率無法在LED顯示,鑒于此,我認(rèn)為應(yīng)該是輸出中斷除了問題,造成所定義的頻率的個(gè)位,十位,百位
103、都沒有跟隨鍵盤的輸入而賦值,使其值時(shí)鐘為初始設(shè)定值。</p><p> 同時(shí)該信號(hào)源設(shè)計(jì)尚存在的不足之處,主要有兩個(gè)方面,第一為缺乏頻率準(zhǔn)確顯示的手段,可以配備相應(yīng)的數(shù)字頻率計(jì)模塊,但如何將顯示的精度與信號(hào)源的頻段配合有待討論研究;第二為D/A轉(zhuǎn)換時(shí)可以加一個(gè)鎖存器,并且放大電路有待進(jìn)一步改進(jìn)使其具有更強(qiáng)的輸出能力。</p><p> 經(jīng)過近幾個(gè)月的學(xué)習(xí)和研究,通過在圖書館、網(wǎng)絡(luò)中查閱
104、有關(guān)資料,了解了單片機(jī)的起源和發(fā)展,并且加深了對單片機(jī)的運(yùn)行過程、控制系統(tǒng)的認(rèn)識(shí),熟悉了程序在單片機(jī)控制系統(tǒng)中的運(yùn)用,在所學(xué)知識(shí)的基礎(chǔ)上,利用已有的單片機(jī)控制系統(tǒng)設(shè)計(jì)及借鑒了前人的研究成果,對單片機(jī)控制系統(tǒng)做了深入的分析和研究。通過此次畢業(yè)設(shè)計(jì),加強(qiáng)了我對原有知識(shí)理論有了更為系統(tǒng)化、理論化、實(shí)用化的理解。</p><p><b> 致謝</b></p><p>
105、這次畢業(yè)設(shè)計(jì)終于順利完成了,要對我的指導(dǎo)老師**老師表示衷心的感謝。從方案的選取、審題。查找資料,到系統(tǒng)軟硬件的各部分設(shè)計(jì)工作,到最后報(bào)告的書寫和完成,老師在我的整個(gè)課程設(shè)計(jì)中給了我很大的幫助和支持。老師的諄諄教導(dǎo),使我受益匪淺。</p><p> 其次,要對大學(xué)四年的所有給我授課的老師表示感謝。是他們教會(huì)了我大學(xué)應(yīng)該掌握的知識(shí)和技能,給我打下了堅(jiān)實(shí)的理論基礎(chǔ)。只有運(yùn)用四年學(xué)習(xí)的基礎(chǔ)知識(shí)和經(jīng)驗(yàn)的積累,才能使我能
106、夠順利完成本次課程設(shè)計(jì)。</p><p> 最后,要感謝我們班的眾多同學(xué)。本次設(shè)計(jì)能夠圓滿完成,和各位同學(xué)的幫助是息息相關(guān)的。在本次設(shè)計(jì)中,我遇到了無數(shù)困難,在需要幫助的時(shí)候,各位同學(xué)給了我無私的幫助,幫我度過了一個(gè)又一個(gè)難關(guān),在此表示最真摯的感謝。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 程全.基于AT89
107、C52實(shí)現(xiàn)的多種波形發(fā)生器的設(shè)計(jì)[J].周口師范學(xué)院學(xué)報(bào),2005.22(5):57~58.</p><p> [2] 周明德.微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2002.341~364.</p><p> [3] 劉樂善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2001.258~264.</p><p> [4] 童
108、詩白.模擬電路技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.171~202.</p><p> [5] 杜華.任意波形發(fā)生器及應(yīng)用[J].國外電子測量技術(shù),2005.1:38~40.</p><p> [6] 張友德.單片微型機(jī)原理、應(yīng)用與實(shí)踐[M].上海:復(fù)旦大學(xué)出版社,2004.40~44. </p><p> [7] 程朗.基于8051單片機(jī)的雙通道波
109、形發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004.8:100~103.</p><p> [8] 張永瑞.電子測量技術(shù)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2006.61~101.</p><p> [9] 李葉紫. MCS-51單片機(jī)應(yīng)用教程[M].北京:清華大學(xué)出版社,2004.232~238.</p><p><b> 附錄1 電路原
110、理圖</b></p><p><b> 附錄2 源程序</b></p><p><b> 源程序:</b></p><p> ORG 0000H</p><p><b> AJM MAIN</b></p><p> ORG 0
111、00BH</p><p><b> LJMP TC0</b></p><p> ORG 0030H</p><p> MAIN:MOV DPTR,#9FFFH 指向DAC0832(1)</p><p> MOV A,70H</p><p> MOVX
112、 @DPTR,A DAC0832(1)輸出</p><p> MOV DPTR,#7F00H 指向8155命令字端口地址</p><p> MOV A,#06H 設(shè)置A口為輸入,B口、C口為輸出</p><p
113、> MOVX @DPTR,A 送命令字</p><p> MOV DPTR,#7F01H 指向A口地址</p><p> MOVX A,@DPTR 讀入A口的開關(guān)數(shù)據(jù)</p><p> JNB AC
114、C.4,K10H 判斷是否“4”號(hào)鍵,若是則轉(zhuǎn)輸出10Hz信號(hào)</p><p> JNB ACC.5,K100H 判斷是否“5”號(hào)鍵,若是則轉(zhuǎn)輸出100Hz信號(hào)</p><p> JNB ACC.6,K500H 判斷是否“6”號(hào)鍵,若是則轉(zhuǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的函數(shù)信號(hào)發(fā)生器
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----基于單片機(jī)的函數(shù)信號(hào)發(fā)生器
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 單片機(jī)函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的方波信號(hào)發(fā)生器
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的智能信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
- 單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì) (2)
- 數(shù)字信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)--基于單片機(jī)的數(shù)字信號(hào)發(fā)生器設(shè)計(jì)
- 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的受控正弦信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的低頻信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--- 基于單片機(jī)pc程控脈沖信號(hào)發(fā)生器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)pc程控脈沖信號(hào)發(fā)生器設(shè)計(jì)
評論
0/150
提交評論