版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> XXXXX學(xué)院</b></p><p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p> 題 目 基于單片機(jī)的波形 </p><p> 發(fā)生器的設(shè)計(jì) </p><p> 學(xué)生姓名 XXXXX </p&
2、gt;<p> 專(zhuān)業(yè)班級(jí) 電子科學(xué)與技術(shù)1班 </p><p> 學(xué) 號(hào) XXXXX </p><p> 院 (系) 電氣工程學(xué)院 </p><p> 指導(dǎo)教師(職稱(chēng)) XX(教授) </p><p> X
3、X(碩研(講師)) </p><p> 完成時(shí)間 2012年 5 月 15 日 </p><p> 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 本文介紹了一種基于單片機(jī)的波形發(fā)生器的設(shè)計(jì),整個(gè)系統(tǒng)通過(guò)單片機(jī)STC89C52控制DAC0
4、832實(shí)現(xiàn)將8位數(shù)字量轉(zhuǎn)化成正弦波、方波、三角波、鋸齒波和脈沖波五種波形的模擬量的輸出。該波形發(fā)生器主要由兩部分組成:系統(tǒng)硬件設(shè)計(jì)和系統(tǒng)軟件設(shè)計(jì),在系統(tǒng)硬件設(shè)計(jì)中,以STC89C52單片機(jī)為核心,通過(guò)I/O接口設(shè)計(jì),擴(kuò)展了D/A轉(zhuǎn)換模塊、波形選擇按鍵、并行輸入串行輸出模塊74LS165和LCD1602頻率、幅度顯示模塊。并且采用單片機(jī)仿真軟件PROTEUS7.5,設(shè)計(jì)并制作波形發(fā)生器的印制電路板(PCB)。系統(tǒng)軟件設(shè)計(jì)是在WAVE600
5、0的集成開(kāi)發(fā)環(huán)境下采用匯編語(yǔ)言完成的,包括主程序、四種波形產(chǎn)生子程序、按鍵功能子程序和顯示子程序等模塊。</p><p> 本系統(tǒng)可以實(shí)現(xiàn)波形頻率、幅度實(shí)時(shí)可調(diào),功能靈活,系統(tǒng)的開(kāi)發(fā)成本在百元內(nèi),具有測(cè)量精度高,誤差小、功耗低,數(shù)據(jù)傳輸速度較快,可靠性高等特點(diǎn),有一定的開(kāi)發(fā)價(jià)值。實(shí)驗(yàn)表明,設(shè)計(jì)系統(tǒng)的測(cè)試結(jié)果與實(shí)際波形的頻率和幅度一致。</p><p> 關(guān)鍵詞 波形發(fā)生器/STC
6、89C52/LCD1602/DAC0832</p><p> THE DESIGN OF WAVEFORM GENERATOR BASED ON SINGLE-CHIP MICROCONTROLLER </p><p><b> ABSTRACT</b></p><p> This article describes the the de
7、sign of the waveform generator based on single-chip, the entire system through the microcontroller STC89C52 controls the DAC0832 that can finish convertting eight digital into the five waveform analog output of sine wave
8、, square wave, triangle wave, saw tooth wave and pulse wave. The waveform generator consists of two parts: system hardware design and system software design, in the system hardware design, the microcontroller STC89C52 is
9、 the core of the design, th</p><p> This system can realize that frequency and amplitude of waveform is real-timeadjustable and flexible. The system development costs is in the hundred with a high accuracy,
10、 the error is small, low power consumption, faster data transfer speeds, high reliability, there is a certain development value. The tested frequency and amplitude of the system is consisten
11、t with the actual waveform.</p><p> KEY WORDS waveform generator,stc89C52,lcd1602,dac0832</p><p><b> 目 錄</b></p><p> 摘 要 ……………………………………………………………
12、……………………………I</p><p> ABSTRACT…………………………………………………………………………………II</p><p> 1 緒 論………………………………………………………………………………………1</p><p> 1.1 選題背景及意義1</p><p> 1.1.1 本課題的研究現(xiàn)狀1</p&
13、gt;<p> 1.1.2 選題目的及意義2</p><p> 1.2.1 設(shè)計(jì)的基本要求3</p><p> 2 波形發(fā)生器系統(tǒng)方案設(shè)計(jì)與論證4</p><p> 2.1總體設(shè)計(jì)方案的比較4</p><p> 2.2子系統(tǒng)模塊方案設(shè)計(jì)4</p><p> 2.2.1控制模塊方案設(shè)計(jì)
14、5</p><p> 2.2.2頻率調(diào)整模塊方案設(shè)計(jì)5</p><p> 2.2.3幅度調(diào)整模塊方案設(shè)計(jì)6</p><p> 2.2.4鍵盤(pán)模塊方案設(shè)計(jì)6</p><p> 2.2.5顯示模塊方案設(shè)計(jì)6</p><p> 2.2.6 D/A轉(zhuǎn)換模塊方案設(shè)計(jì)7</p><p>
15、; 2.2.7放大模塊8</p><p> 2.3系統(tǒng)總體框圖9</p><p> 2.4 波形產(chǎn)生相關(guān)理論11</p><p> 2.5 單片機(jī)軟件開(kāi)發(fā)系統(tǒng)11</p><p> 3 硬件實(shí)現(xiàn)及模塊電路設(shè)計(jì)12</p><p> 3.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)12</p><p
16、> 3.2 波形產(chǎn)生及濾波放大模塊設(shè)計(jì)13</p><p> 3.3 頻率調(diào)整模塊13</p><p> 3.4 幅度調(diào)整模塊14</p><p> 3.5 LCD1602顯示模塊15</p><p> 3.6 RS232串行通信電路及電源供電電路15</p><p> 3.6.1 RS23
17、2串行通信電路 20</p><p> 3.6.2 電源供電電路16</p><p> 4 系統(tǒng)軟件設(shè)計(jì)17</p><p> 4.1系統(tǒng)軟件編程語(yǔ)言方案設(shè)計(jì)17</p><p> 4.2系統(tǒng)整體軟件設(shè)計(jì)思想18</p><p> 4.3各個(gè)子程序模塊流程圖18</p><p&
18、gt; 4.3.1主程序流程圖18</p><p> 4.3.2頻率調(diào)整子程序19</p><p> 4.3.3顯示子程序流程圖20</p><p> 4.3.4各波形產(chǎn)生子程序21</p><p> 5 系統(tǒng)軟硬件調(diào)試與數(shù)據(jù)處理26</p><p> 5.1軟件仿真及軟件程序調(diào)試26</
19、p><p> 5.1.1 軟件仿真26</p><p> 5.1.2 程序調(diào)試26</p><p> 5.2硬件PCB制作、安裝、測(cè)試與調(diào)試27</p><p> 5.2.1 PCB設(shè)計(jì)、制作、安裝27</p><p> 5.2.2 電路板調(diào)試與檢測(cè)安全27</p><p>
20、5.2.3 供電安全28</p><p> 5.3 PCB電路板的電氣規(guī)則檢查與調(diào)試及電路功能測(cè)試29</p><p> 5.3.1 PCB電路板的電氣規(guī)則檢查與調(diào)試29</p><p> 5.3.2電路功能測(cè)試29</p><p> 5.4 測(cè)試方法29</p><p> 5.5 測(cè)試數(shù)據(jù)分析及處
21、理38</p><p> 5.6 系統(tǒng)功能實(shí)現(xiàn)情況39</p><p><b> 結(jié)論40</b></p><p><b> 致謝41</b></p><p><b> 參考文獻(xiàn)42</b></p><p> 附錄A 系統(tǒng)軟件部分源程
22、序43</p><p> 附錄B 系統(tǒng)原理圖- 56 -</p><p> 附錄C 系統(tǒng)PCB圖57</p><p> 附錄D 元器件清單58</p><p> 附錄E 實(shí)物正反面62</p><p><b> 1 緒 論</b></p><p> 1
23、.1 選題背景及意義</p><p> 波形發(fā)生器又稱(chēng)信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。各種波形曲線(xiàn)均可以用三角函數(shù)方程式來(lái)表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱(chēng)為函數(shù)波形發(fā)生器。在通信、廣播、電視系統(tǒng),在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),函數(shù)波形發(fā)生器在實(shí)驗(yàn)和設(shè)備檢測(cè)中具有十分廣泛的用途。</p><p> 1.1.1 本課題的
24、研究現(xiàn)狀</p><p> 波形發(fā)生器既可以構(gòu)成獨(dú)立的信號(hào)源,也可以是高性能網(wǎng)絡(luò)分析儀、頻譜儀及其它自動(dòng)測(cè)試設(shè)備的組成部分。波形發(fā)生器的關(guān)鍵技術(shù)是多種高性能儀器的支撐技術(shù),因?yàn)樗軌蛱峁└哔|(zhì)量的精密信號(hào)源及掃頻源,可使相應(yīng)系統(tǒng)的檢測(cè)過(guò)程大大簡(jiǎn)化,降低檢測(cè)費(fèi)用并極大地提高檢測(cè)精度。美國(guó)安捷倫生產(chǎn)的33250A型函數(shù)/任意波形發(fā)生器可以產(chǎn)生穩(wěn)定、精確和低失真的任意波形,其輸出頻率范圍為1μHz~80MHz,而輸出幅
25、度為10mVpp~10Vpp;該公司生產(chǎn)的8648D射頻波形發(fā)生器的頻率覆蓋范圍更可高達(dá)9kHz~4GHz。[1]國(guó)產(chǎn)SG1060數(shù)字合成波形發(fā)生器能雙通道同時(shí)輸出高分辨率、高精度、高可靠性的各種波形,頻率覆蓋范圍為1μHz~60MHz;國(guó)產(chǎn)S1000型數(shù)字合成掃頻波形發(fā)生器通過(guò)采用新技術(shù)、新器件實(shí)現(xiàn)高精度、寬頻帶的掃頻源,同時(shí)應(yīng)用DDS和鎖相技術(shù),使頻率范圍從1MHz~1024MHz能精確地分辨到100Hz,它既是一臺(tái)高精度的掃頻源,
26、同時(shí)也是一臺(tái)高精度的標(biāo)準(zhǔn)波形發(fā)生器。還有很多其它類(lèi)型的波形發(fā)生器,他們各有各的優(yōu)點(diǎn),但是波形發(fā)生器總的趨勢(shì)將向著寬頻率覆蓋、高頻率精度、多功能、多用途、自動(dòng)化和智能化方向發(fā)展</p><p> 目前,市場(chǎng)上的波形發(fā)生器多種多樣,一般按頻帶分為以下幾種:</p><p> 超高頻:頻率范圍1MHz以上,可達(dá)幾十兆赫茲。 </p><p> 高頻:幾百KHZ到幾M
27、HZ。 低頻:頻率范圍為幾十HZ到幾百KHZ。</p><p> 超低頻:頻率范圍為零點(diǎn)幾赫茲到幾百赫茲。 超高頻波形發(fā)生器,產(chǎn)生波形一般用LC振蕩電路。 </p><p> 高頻、低頻和超低頻波形發(fā)生器,大多使用文氏橋振蕩電路,即RC振蕩電路,通過(guò)改變電容和電阻值,改變頻率。用以上原理設(shè)計(jì)的波形發(fā)生器,其輸出波形一般只有兩種,即正弦波和脈沖波,其零點(diǎn)不可調(diào),而且價(jià)格也比較貴,一般在幾
28、百元左右。在實(shí)際應(yīng)用中,超低頻波和高頻波一般是不用的,一般用中頻,即幾十HZ到幾十KHZ。用單片機(jī)89S52,加上一片DAC0832,就可以做成一個(gè)簡(jiǎn)單的波形發(fā)生器,其頻率受單片機(jī)運(yùn)行的程序的控制。我們可以把產(chǎn)生各種波形的程序,寫(xiě)在ROM中,裝入本機(jī),按用戶(hù)的選擇,運(yùn)行不同的程序,產(chǎn)生不同的波形。再在DAC0808輸出端加上一些電壓變換電路,就完成了一個(gè)頻率、幅值、零點(diǎn)均可調(diào)的多功能波形發(fā)生器的設(shè)計(jì)。這樣的機(jī)器體積小,價(jià)格便宜,耗電少,
29、頻率適中,便于攜帶。</p><p> 1.1.2 選題目的及意義</p><p> 波形發(fā)生器是一種經(jīng)常使用的設(shè)備,由純粹物理器件構(gòu)成的傳統(tǒng)的設(shè)計(jì)方法存在許多弊端,如:體積較大、重量較沉、移動(dòng)不夠方便、信號(hào)失真較大、波形種類(lèi)過(guò)于單一、波形形狀調(diào)節(jié)過(guò)于死板,無(wú)法滿(mǎn)足用戶(hù)對(duì)精度、便攜性、穩(wěn)定性等的要求,研究設(shè)計(jì)出一種具有頻率穩(wěn)定、準(zhǔn)確、波形質(zhì)量好、輸出頻率范圍寬、便攜性好等特點(diǎn)的波形發(fā)
30、生器具有較好的市場(chǎng)前景,以滿(mǎn)足軍事和民用領(lǐng)域?qū)π盘?hào)源的要求。</p><p> 本次設(shè)計(jì)的主要目標(biāo)是學(xué)習(xí)和運(yùn)用單片機(jī)的C語(yǔ)言和匯編語(yǔ)言,通過(guò)現(xiàn)有專(zhuān)業(yè)知識(shí),實(shí)現(xiàn)利用單片機(jī)STC89C52和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波,脈沖波這五種常見(jiàn)波形的發(fā)生,并且可以接收外接撥碼鍵盤(pán)開(kāi)關(guān)量的輸入而在一定范圍內(nèi)改變波形的頻率和幅度。在無(wú)標(biāo)準(zhǔn)函數(shù)發(fā)生儀器時(shí),本設(shè)計(jì)可以作為簡(jiǎn)單的波形發(fā)生器使用
31、。本次設(shè)計(jì)準(zhǔn)備在成本交低廉的前提下完成,主要是用單片機(jī)STC89C52、DAC0832,性能指數(shù)都不是很高,所以對(duì)此信號(hào)源的基本要求是能發(fā)生幾種常見(jiàn)的波形,正弦波,方波,三角波,鋸齒波,并且能夠在定的范圍內(nèi)改變頻率。通過(guò)該課題的設(shè)計(jì),掌握以STC89C52為核心的單片機(jī)系統(tǒng)的軟硬件開(kāi)發(fā)過(guò)程和基本信號(hào)的產(chǎn)生原理、測(cè)量及誤差分析方法,同時(shí)掌握波形發(fā)生器系統(tǒng)的軟硬件設(shè)計(jì)流程;掌握并行D/A轉(zhuǎn)換器DAC0832的原理及其外圍電路的設(shè)計(jì)方法;掌握
32、利用單片機(jī)產(chǎn)生常用波形的方法,進(jìn)一步熟悉單片機(jī)人機(jī)接口的設(shè)計(jì)方法;培養(yǎng)我們綜合運(yùn)用所學(xué)的基本知識(shí)、基本理論和基本技能的能力,學(xué)習(xí)解決一般工程技術(shù)和有關(guān)專(zhuān)業(yè)問(wèn)題的能力。</p><p> 1.2 設(shè)計(jì)基本要求</p><p> 本設(shè)計(jì)采用89C52及其外圍擴(kuò)展系統(tǒng),軟件方面主要是應(yīng)用匯編語(yǔ)言設(shè)計(jì)程序。系統(tǒng)以89C52單片機(jī)為核心,配置相應(yīng)的外設(shè)及接口電路,該系統(tǒng)的軟件可運(yùn)行于wave60
33、00的集成開(kāi)發(fā)環(huán)境下,硬件電路原理圖設(shè)計(jì)完成后,通過(guò)PROTEUS7.5對(duì)電路進(jìn)行仿真和軟件調(diào)試。同時(shí),本系統(tǒng)中任何一部分電路模塊均可移植于實(shí)用開(kāi)發(fā)系統(tǒng)的設(shè)計(jì)中,例如溫度控制系統(tǒng)、電子時(shí)鐘萬(wàn)年歷等實(shí)用的電路系統(tǒng)中,電路系統(tǒng)設(shè)計(jì)具有很強(qiáng)的實(shí)用性。</p><p><b> (1) 功能要求</b></p><p> 波形發(fā)生器可實(shí)現(xiàn)周期性時(shí)間函數(shù)波形,如正弦波、方波
34、、三角波、鋸齒波和脈沖波;</p><p> 波形發(fā)生器的頻率,幅值,波形可調(diào);</p><p> 顯示當(dāng)前波形的頻率、幅值;</p><p> 對(duì)系統(tǒng)進(jìn)行測(cè)試和結(jié)果分析;</p><p><b> 撰寫(xiě)論文。</b></p><p><b> (2) 技術(shù)指標(biāo)</b&g
35、t;</p><p> 正弦波的頻率范圍:下限頻率為1Hz,上限頻率為1000Hz。</p><p> 輸出正弦波中不能含有尖峰干擾。</p><p> 輸出正弦波峰峰值最大為5 V,最小值為1V直流偏移為±2V。</p><p> 2 波形發(fā)生器系統(tǒng)方案設(shè)計(jì)與論證</p><p> 2.1總體設(shè)計(jì)
36、方案的比較 </p><p> 波形發(fā)生器的設(shè)計(jì)方案可用多種方案來(lái)完成。在設(shè)計(jì)前對(duì)各種方案進(jìn)行了比較:</p><p> 方案一:用差分放大電路實(shí)現(xiàn)三角波到正弦波以及集成運(yùn)放組成的電路實(shí)現(xiàn)波形發(fā)生器。波形變換的原理是利用差分放大器的傳輸特性曲線(xiàn)的非線(xiàn)性,傳輸特性曲線(xiàn)越對(duì)稱(chēng),線(xiàn)性區(qū)域越窄越好;三角波的幅度應(yīng)正好使晶體接近飽和區(qū)域或者截至區(qū)域。 </p><p&
37、gt; 方案二:采用分立元件構(gòu)成非穩(wěn)態(tài)的多諧振振蕩器,根據(jù)具體需要加入積分電路等構(gòu)成波形發(fā)生器。但這種波形發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,輸出的波形易受外界環(huán)境影響,不穩(wěn)定,對(duì)電路硬件要求很高,不易實(shí)現(xiàn)。 </p><p> 方案三:利用專(zhuān)用直接數(shù)字合成DDS芯片實(shí)現(xiàn)函數(shù)波形發(fā)生器。這種波形發(fā)生器能產(chǎn)生任意波形并達(dá)到很高頻率,但成本較高。 </p><p> 方案四:利
38、用單片機(jī)STC89C52和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見(jiàn)波形的發(fā)生,并且可以接收外接撥碼鍵盤(pán)開(kāi)關(guān)量的輸入而在一定范圍實(shí)現(xiàn)頻率和幅度的調(diào)節(jié) [3] 。 </p><p> 可行性分析:上面四種方案中,方案一中需要人為地搭建波形變換的電路。方案二的電路參數(shù)設(shè)定較繁瑣,輸出的波形易受外界環(huán)境影響,不穩(wěn)定。方案三成本較高。方案四利用單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠
39、性。系統(tǒng)擴(kuò)展、配置靈活。容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),且應(yīng)用系統(tǒng)有較高的軟、硬件利用系數(shù)。單片機(jī)具有可編程性,硬件的功能描述可完全在軟件上實(shí)現(xiàn),而且設(shè)計(jì)時(shí)間短,成本低,可靠性高。</p><p> 綜合以上四種方案,從性能和制作成本考慮,本設(shè)計(jì)采用方案四,即采用單片機(jī)通過(guò)撥碼鍵盤(pán)開(kāi)關(guān)量的輸入控制D/A轉(zhuǎn)換器產(chǎn)生可調(diào)頻率、幅度和占空比的波形信號(hào)。</p><p> 2.2子系統(tǒng)模塊方案設(shè)計(jì)
40、</p><p> 該波形發(fā)生器有以下幾部分組成:(1)單片機(jī)控制模塊,(2)頻率調(diào)整模塊,(3)幅度調(diào)整模塊,(4)顯示模塊,(5)D/A轉(zhuǎn)換模塊,(6)放大模塊,(7)RS232串行通信電路及電源供電電路模塊七部分組成。</p><p> 2.2.1 控制模塊方案設(shè)計(jì) </p><p> 方案一:用單片STC89C52作為系統(tǒng)的主控核心。單片機(jī)具有體積小
41、,使用靈活的,易于人機(jī)對(duì)話(huà)和良好的數(shù)據(jù)處理,有較強(qiáng)的指令尋址和運(yùn)算功能等優(yōu)點(diǎn)。且單片機(jī)功耗低,價(jià)格低廉的優(yōu)點(diǎn)。 </p><p> 方案二:用FPGA等可編程器件作為控制模塊。FPGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,密度高,速度快,穩(wěn)定性好等許多有點(diǎn)。FPGA在掉電后會(huì)丟失數(shù)據(jù)上電后須進(jìn)行一次配置,因此FPGA在應(yīng)用中需要配置電路和一定的程序。并且FPGA作為數(shù)字邏輯器件,競(jìng)爭(zhēng)、冒險(xiǎn)是數(shù)字邏輯組合電路中較為突出的
42、問(wèn)題,因此在使用時(shí)必須注意毛刺的產(chǎn)生、消除及抗干擾性。 在此系統(tǒng)中,采用單片機(jī)作為控制器比采用FPGA實(shí)現(xiàn)更簡(jiǎn)便。</p><p> 方案三:C89C52F005單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與89C52兼容的微控制器內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)8052的數(shù)字外設(shè)部件,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件,而且執(zhí)行速度快。但其價(jià)格較貴。</
43、p><p> 從電路結(jié)構(gòu)和成本角度及綜合性?xún)r(jià)比的考慮,確定選擇方案一。</p><p> 2.2.2 頻率調(diào)整模塊方案設(shè)計(jì)</p><p> 方案一:采用AD0808將模擬電壓量轉(zhuǎn)換為8位數(shù)字量,然后將這個(gè)8位數(shù)字量送給單片機(jī),這種方式占用系統(tǒng)資源較多,運(yùn)行的效率太低,編寫(xiě)工作量大而復(fù)雜。</p><p> 方案二:為了提高單片機(jī)的資源利
44、用率和運(yùn)行的效率,按鍵部分通過(guò)8位撥碼開(kāi)關(guān)來(lái)實(shí)現(xiàn)8位數(shù)字量通過(guò)74ls165的并行輸入串行輸出給單片機(jī)的方案,這樣設(shè)計(jì)的目的優(yōu)點(diǎn)是節(jié)省單片機(jī)的I/O口資源,電路結(jié)構(gòu)簡(jiǎn)單易行。我們采用74ls165實(shí)現(xiàn)頻率的改變,使頻率能夠?qū)崟r(shí)隨著撥碼按鍵開(kāi)關(guān)量的輸入而改變,電路結(jié)構(gòu)簡(jiǎn)單,實(shí)時(shí)性較強(qiáng)。[4]</p><p> 綜合以上二種方案,從電路結(jié)構(gòu)、實(shí)時(shí)性的角度考慮,選擇方案二。</p><p>
45、 2.2.3 幅度調(diào)整模塊方案設(shè)計(jì)</p><p> 方案一:采用將DAC0832的RFB引腳接一個(gè)100k的滑動(dòng)變阻器來(lái)改變DAC0832的基準(zhǔn)電壓Vref,由DAC0832的輸出電壓Vo=(Vref/2^8)*N(N為單片機(jī)送給DAC0832的8位數(shù)字量)知道, 改變基準(zhǔn)電壓Vref就可以改變DAC0832的輸出電壓,從而達(dá)到波形幅度的改變。</p><p> 方案二:通過(guò)在LM3
46、24的電壓輸出端加一個(gè)滑動(dòng)變阻器的方法來(lái)實(shí)現(xiàn)輸出波形電壓的改變,從而改變實(shí)時(shí)地改變波形的幅度。此方案在實(shí)現(xiàn)的過(guò)程中,考慮到波形的紋波電壓,在改變輸出電壓的過(guò)程中,實(shí)際的電壓與預(yù)期的電壓會(huì)有一個(gè)紋波的差別。</p><p> 綜合以上二種方案,從誤差和操作的的簡(jiǎn)單程度考慮,選擇方案一。</p><p> 2.2.4 鍵盤(pán)模塊方案設(shè)計(jì)</p><p> 方案一:采
47、用獨(dú)立按鍵,按鍵的數(shù)目少,但是它擁有結(jié)構(gòu)簡(jiǎn)單,方便操作,執(zhí)行效率高等優(yōu)勢(shì)。</p><p> 方案二:采用矩陣鍵盤(pán),它以較少得I/O口實(shí)現(xiàn)了按鍵的功能,但是其操作比較復(fù)雜。</p><p> 經(jīng)綜合考慮,由于我們需求的按鍵比較少,但是對(duì)執(zhí)行的效率的要求比較高,所以采用獨(dú)立按鍵。</p><p> 2.2.5 顯示模塊方案設(shè)計(jì)</p><p&
48、gt; 方案一:用傳統(tǒng)的LED七段數(shù)碼管位選的方式進(jìn)行波形頻率和幅度的顯示。這種方式占用單片機(jī)I/O資源較多,沒(méi)有驅(qū)動(dòng)要加CD4511等外加電路,并且效率低,程序編寫(xiě)量大而復(fù)雜。雖然靜態(tài)驅(qū)動(dòng)編程簡(jiǎn)單,顯示亮度高,但是占用I/O端口多,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。使用數(shù)碼管顯示編程較易,但要顯示內(nèi)容多,而且數(shù)碼管不能顯示字母。</p><p> 方案二:采用LCD1602液晶顯
49、示,1602液晶也叫1602字符型液晶,它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5×7或者5×11等點(diǎn)陣字符位組成,1602采用并口傳輸,速度比12864快。每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。1602內(nèi)部集成有顯示芯片,可以識(shí)別英文字母、阿拉伯?dāng)?shù)字和日語(yǔ)。此液晶顯示具有微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。[5]</p><p&g
50、t; 方案三:LCD1286是圖形點(diǎn)陣,是顯示圖形和漢字,當(dāng)然也是可以顯示字母和阿拉伯?dāng)?shù)字了程序的編寫(xiě)上1602復(fù)雜的多,由于本次設(shè)計(jì)只需顯示波形的頻率和幅度,不需要顯示波形圖,從電路的簡(jiǎn)單程度和成本的角度,綜合考慮不選擇。</p><p> 綜合以上三種方案,從電路的簡(jiǎn)單程度和成本的角度我們選擇方案二。</p><p> 2.2.6 D/A轉(zhuǎn)換模塊方案設(shè)計(jì)</p>&
51、lt;p> 單片機(jī)輸出的是數(shù)字信號(hào),必須通過(guò)D/A轉(zhuǎn)換后才能模擬信號(hào)。</p><p> 方案一:采用D/A轉(zhuǎn)換器AD7543。AD7543是一種串行的D/A轉(zhuǎn)換器,與單片機(jī)之間的連線(xiàn)少,布線(xiàn)方便,而且又是12位的D/A轉(zhuǎn)換器,精度高。但串行數(shù)據(jù)傳輸速度慢,當(dāng)頻率較高時(shí),必須減少每周期輸出的點(diǎn)數(shù),這將會(huì)導(dǎo)致階梯現(xiàn)象更加明顯,因此,此方案不宜使用。 </p><p> 方案二:
52、采用DAC0832。這是8位的并行D/A轉(zhuǎn)換器,轉(zhuǎn)換速度快。 </p><p> 綜合以上二種方案,本系統(tǒng)選擇了方案二。 </p><p> DAC0832芯片介紹 </p><p> 美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的DAC0832是一種具有8 位分辨率、雙通道輸出的D/A轉(zhuǎn)換芯片。由于它體積小,兼容性,性?xún)r(jià)比高而深受單片機(jī)愛(ài)好者及企業(yè)歡迎,其目前已經(jīng)有很高的普及率
53、。 </p><p> ?。?) DAC0832具有以下特點(diǎn) </p><p><b> 8位分辨率;</b></p><p><b> 雙通道A/D轉(zhuǎn)換;</b></p><p> 輸入輸出電平與TTL/CMOS相兼容;</p><p> 5V電源供電時(shí)輸入電
54、壓在0~5V之間;</p><p> 工作頻率為250KHZ,轉(zhuǎn)換時(shí)間為32μS;</p><p> 一般功耗僅為15mW;</p><p> 8P、14P—DIP(雙列直插)、P LCC 多種封裝;</p><p> 商用級(jí)芯片溫寬為0°C to +70°C,工業(yè)級(jí)芯片溫寬為40°C to +85
55、76;C。</p><p> ?。?) 芯片接口說(shuō)明 </p><p> 在電路原理圖設(shè)計(jì)時(shí),DAC0832的D0-D7 8條數(shù)據(jù)線(xiàn)與單片機(jī)的P0口相連接,DAC0832的、腳與P2.7相連接、、與單片機(jī)的相連接,IOUT1與LM324的2腳相連接,3腳數(shù)字地、10腳模擬地分別與電源地相連接。ILE腳與5V電源相連接, </p><p> ?。?) 單片機(jī)對(duì)
56、DAC0832 的控制原理</p><p> 當(dāng)DAC0832未工作時(shí)其輸入端應(yīng)為高電平,此時(shí)芯片禁用。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。</p><p> 當(dāng)DAC0832工作時(shí)其輸入端應(yīng)為低電平,直接將單片機(jī)P0口的8位數(shù)字量轉(zhuǎn)換為模擬電壓量的經(jīng)IOUT1引腳輸出,將示波器的正極探針與IOUT1引腳端相連接,就可以看到波形的產(chǎn)生。</
57、p><p> 2.2.7 放大模塊</p><p> 方案一:采用傳統(tǒng)的單電源應(yīng)用場(chǎng)合的標(biāo)準(zhǔn)運(yùn)算放大器,有些時(shí)候必須采用外部偏置元件才能達(dá)到放大的目的和要求。</p><p> 方案二:LM324系列器件帶有真差動(dòng)輸入的四運(yùn)算放大器。LM324系列由四個(gè)獨(dú)立的,高增益,內(nèi)部頻率補(bǔ)償運(yùn)算放大器。應(yīng)用領(lǐng)域包括傳感器放大器,直流增益模塊和所有傳統(tǒng)的運(yùn)算放大器現(xiàn)在可以更容
58、易地在單電源系統(tǒng)中實(shí)現(xiàn)的電路。例如,可直接操作的LM324系列,這是用來(lái)在數(shù)字系統(tǒng)中,輕松地將提供所需的接口電路,而無(wú)需額外的±15V電源標(biāo)準(zhǔn)的5V電源電壓。</p><p> 綜合以上兩種方案,我們選擇方案二,即放大模塊采用LM324來(lái)實(shí)現(xiàn)。</p><p> LM324芯片介紹:</p><p> LM324系列器件帶有真差動(dòng)輸入的四運(yùn)算放大
59、器。該四放大器可以工作在低到3.0V或者高到32V的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一,LM324的引腳排列見(jiàn)圖2.1。</p><p> 圖2.1 LM324的引腳排列圖</p><p> LM324芯片接口說(shuō)明: </p><p> 1,2,3腳是一組;5,6,7腳是一組;8,9,10腳是一組;12,13,14腳是一組;剩下的兩個(gè)腳是電源;
60、1,7,8,14是各組放大器的輸出腳;其它的就是輸入腳。</p><p><b> 2.3系統(tǒng)總體框圖</b></p><p> 本系統(tǒng)是以單片機(jī)STC89C52、頻率調(diào)整模塊、幅度調(diào)整模塊、8位D/A轉(zhuǎn)換芯片DAC0832以及LCD1602顯示模塊、LM324放大、RS232串行通信及USB供電等模塊共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波,脈沖波這五種頻率、幅度可
61、調(diào)的常見(jiàn)波形的功能。系統(tǒng)原理框圖如圖2.2。</p><p> 圖2.2 系統(tǒng)原理框圖</p><p> 由圖2.3 DAC0832轉(zhuǎn)換部分電路圖可知,通過(guò)代入以下數(shù)據(jù)對(duì)波形輸出與頻率、幅值調(diào)節(jié)部分進(jìn)行具體的理論分析計(jì)算。 </p><p> 圖2.3 DAC0832轉(zhuǎn)換部分電路圖</p><p> 利用STC89C52單片機(jī)、DA
62、C0832、8位撥碼開(kāi)關(guān)設(shè)計(jì)一個(gè)能產(chǎn)生正弦波、方波、三角波、鋸齒波和脈沖波的頻率、幅值、波形可調(diào)的波形發(fā)生器。其中8位撥碼開(kāi)關(guān)是用來(lái)產(chǎn)生8位二進(jìn)制數(shù)作為延時(shí)常數(shù),DAC0832是用來(lái)將8位數(shù)字量轉(zhuǎn)化成模擬量輸出。數(shù)字量輸入的范圍為0-255之間,對(duì)應(yīng)的模擬量輸出的范圍在Vref-到Vref+之間。根據(jù)這樣我們可以利用單片機(jī)的并行口輸出的數(shù)字量,產(chǎn)生常用的波形。</p><p> 1)利用單片機(jī)產(chǎn)生方波、正弦波、
63、三角波和鋸齒波等信號(hào)波形,信號(hào)的頻率和幅度可變。</p><p> 2)將一個(gè)周期的信號(hào)分離成256個(gè)點(diǎn)(按X軸等分),每?jī)牲c(diǎn)之間的時(shí)</p><p> 間間隔為T(mén),用單片機(jī)的定時(shí)器產(chǎn)生,其表示式為: T=T/256。如果單片機(jī)的晶振為12MHz,采用定時(shí)器方式0,則定時(shí)器的初值為: </p><p> X=213—T/Tmec
64、 (2.3.1) </p><p><b&g
65、t; 定時(shí)時(shí)間常數(shù)為:</b></p><p> TL =(8192—T)/MOD256 (2.3.2)</p><p> TH=(8192T)/256 (2.3.3)</p><p> MOD256表示除256取余數(shù)</p><p> 3)正弦波的模擬信號(hào)是D/A
66、轉(zhuǎn)換器的模擬量輸出,其計(jì)算公式為:</p><p> Y=(A/2sint)+A/2 (其中A=VREF) (2.3.4)</p><p> t=NT (N=1~256) (2.3.5)</p><p> 那么對(duì)應(yīng)著存放在計(jì)算機(jī)里的這一點(diǎn)的數(shù)據(jù)為: </p><p> (2.3.6)
67、 </p><p> 4)一個(gè)周期被分離成256個(gè)點(diǎn),對(duì)應(yīng)的四種波形的256個(gè)數(shù)據(jù)存放在以TAB1--TAB4為起始地址的存儲(chǔ)器中。</p><p> 由(2.3.4)式可知,當(dāng)DAC0832在 0~255 之間變化時(shí),輸出電壓可在0V~5V+之間 變化,即輸出信號(hào)的峰峰值可由滑動(dòng)變阻器RV2控制。</p><p> 2.4 波形產(chǎn)生相關(guān)理論</p
68、><p> DAC0832是8位的D/A轉(zhuǎn)換器件,其工作電壓是0—5V,當(dāng)輸入00H數(shù)字量的時(shí)候,輸出為0V電壓;當(dāng)輸入07FH數(shù)字量的時(shí)候,輸出為2.5V電壓;當(dāng)輸入0FFH數(shù)字量的時(shí)候,輸出為5V電壓。單片機(jī)的I/O輸出均為+5 V的TTL電平,因此產(chǎn)生的正弦波(以正弦波為例)幅值為+2.5 V。將一個(gè)周期內(nèi)的正弦波形等分為256份,對(duì)應(yīng)256個(gè)數(shù)字量,利用查數(shù)據(jù)表的方式來(lái)實(shí)現(xiàn)波形的產(chǎn)生。第1點(diǎn)的角度為0
69、76;,對(duì)應(yīng)的正弦值為2.5sin0°;第2點(diǎn)的角度為360°/256,對(duì)應(yīng)的正弦值為2.5sin 360°/256 )……,如此計(jì)算下去,將這些單極性方式下的數(shù)字量轉(zhuǎn)換為正弦值模擬量輸出。而每次送到DAC0832的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù)表格而得到[6]。</p><p> 2.5 單片機(jī)軟件集成開(kāi)發(fā)環(huán)境</p><p> WAVE6000編譯軟件
70、是南京偉福公司開(kāi)發(fā)設(shè)計(jì)的單片機(jī)開(kāi)發(fā)軟件,不需要購(gòu)買(mǎi)仿真器,使用軟件模擬器就可以了,使用很方便的。也支持Keil C,但最好不要在WAVE內(nèi)使用C,如果想用C編寫(xiě),還是用Keil C方便。 </p><p> WAVE6000編譯軟件,采用中文界面。用戶(hù)源程序大小不受限制,有豐富的窗口顯示方式,能夠多方位、動(dòng)態(tài)地展示程序的執(zhí)行過(guò)程。其項(xiàng)目管理功能強(qiáng)大,可使單片機(jī)程序化大為小,化繁為簡(jiǎn),便于管理。另外,其書(shū)簽、斷點(diǎn)
71、管理功能以及外設(shè)管理功能等為51單片機(jī)的仿真帶來(lái)極大的便利。 </p><p> 3 硬件實(shí)現(xiàn)及模塊電路設(shè)計(jì)</p><p> 3.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì)</p><p> STC89C52是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠。用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,由于集成度
72、的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元,STC89C52單片機(jī)最小系統(tǒng)如圖3.1所示。其應(yīng)用特點(diǎn)如下[7]:</p><p> 可以給用戶(hù)提供大量I/O口線(xiàn)。</p><p> 內(nèi)部存儲(chǔ)器容量有限。</p><p> 應(yīng)用系統(tǒng)開(kāi)發(fā)具有特殊性。</p><p> 圖3.1 STC89C52單片機(jī)最小系統(tǒng)</p>&
73、lt;p> 對(duì)圖3.1說(shuō)明如下:</p><p> ?。?)單片機(jī)晶振電路:?jiǎn)纹瑱C(jī)外圍的晶振電路是通過(guò)單片機(jī)的第18(XTAL1)引腳,19(XTAL2)引腳接入,XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。對(duì)于本設(shè)計(jì)的電容C用30pF,晶振選用11.0592MHz。晶振電路解法如圖3.1所示,一端接在XTAL1引腳上,另一端接在XTAL2引腳上。 <
74、;/p><p> ?。?)單片機(jī)的復(fù)位引腳 RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST 腳輸出2個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。為了防止程序執(zhí)行過(guò)程中失步或運(yùn)行紊亂,此處我們采用了上電復(fù)位電路[8]。 </p><p> 3.2 波形產(chǎn)生
75、及濾波放大模塊設(shè)計(jì)</p><p> 由單片機(jī)采用編程方法產(chǎn)生三種波形、通過(guò)DA轉(zhuǎn)換模塊DAC0832在進(jìn)過(guò)濾波放大之后輸出。其電路圖3.2如下:</p><p> 圖3.2 DAC0832及濾波放大電路</p><p> 電路性能指標(biāo)分析:用于調(diào)壓的DAC0832的參考電壓是12V,所以,峰峰值可以調(diào)節(jié)到的最大值為12V,由于運(yùn)放的電源均為±12V
76、,故均未達(dá)到飽和。 通過(guò)1k電位器與兩個(gè)1k的電阻進(jìn)行直流偏移的調(diào)節(jié)。當(dāng)電位器的滑動(dòng)觸頭分別位于最右端與最左端時(shí),輸出電壓分別為-5v和+5v,電位器的電壓與輸出的電壓通過(guò)一個(gè)加法器實(shí)現(xiàn)直流偏移的調(diào)節(jié)。由于DAC0832存在的非線(xiàn)性,輸出信號(hào)的幅值存在一定的誤差。 由上述計(jì)算可知,該電路產(chǎn)生波形的峰峰值和直流偏移調(diào)節(jié)的范圍達(dá)到并超過(guò)了題目要求的范圍。 </p><p> 3.3 頻率調(diào)整模塊</p>
77、<p> 按鍵部分我們通過(guò)8位撥碼開(kāi)關(guān)來(lái)實(shí)現(xiàn)8位數(shù)字量通過(guò)74ls165的并行輸入串行輸出給單片機(jī)的方案,這樣設(shè)計(jì)的目的優(yōu)點(diǎn)是節(jié)省單片機(jī)的I/O口資源,電路結(jié)構(gòu)簡(jiǎn)單易行。我們采用74ls165實(shí)現(xiàn)頻率的改變,使頻率能夠?qū)崟r(shí)隨著撥碼按鍵開(kāi)關(guān)量的輸入而改變,電路結(jié)構(gòu)簡(jiǎn)單,實(shí)時(shí)性較強(qiáng),其電路圖如圖3.3。</p><p> 圖3.3頻率調(diào)整模塊電路圖</p><p> 3.4
78、 幅度調(diào)整模塊</p><p> 采用將DAC0832的RFB引腳接一個(gè)100k的滑動(dòng)變阻器來(lái)改變DAC0832的基準(zhǔn)電壓Vref,由DAC0832的輸出電壓Vo=(Vref/2^8)*N(N為單片機(jī)送給DAC0832的8位數(shù)字量)知道,改變基準(zhǔn)電壓Vref就可以改變DAC0832的輸出電壓,從而達(dá)到波形幅度的改變。其電路圖如圖3.4。</p><p> 圖3.4幅度調(diào)整模塊電路圖&l
79、t;/p><p> 3.5 LCD1602顯示模塊</p><p> LCD1602 1602液晶也叫1602字符型液晶它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5×7或者5×11等點(diǎn)陣字符位組成,1602采用并口傳輸,速度比12864快。每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。1602內(nèi)部集成有顯示芯片,可以識(shí)別英文字母、阿拉伯?dāng)?shù)字和日語(yǔ)。此液晶顯示具
80、有微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。其電路圖如圖3.5。</p><p> 圖3.5 LCD1602顯示模塊電路圖</p><p> 3.6 RS232串行通信電路及電源供電電路</p><p> 圖3.6 RS232串行通信電路及電源供電電路電路圖</p><p> 3.6.1 RS2
81、32串行通信電路</p><p> 由于單片機(jī)的輸入輸出是TTL電平,而PC機(jī)配置的都是RS-232標(biāo)準(zhǔn)串行接口,為9針“D”型連接器(插座),如圖3.7所示。由于兩者的電平不匹配,必須對(duì)單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS-232電平,即由12V轉(zhuǎn)換為5V。單片機(jī)與PC機(jī)的接口方案如圖3.8所示。</p><p> 圖3.7“D”型9針插頭引腳定義 圖3.8 單片機(jī)與PC機(jī)的串行接口方
82、案</p><p> 3.6.2 電源供電電路 </p><p> 電源由12V直流穩(wěn)壓電源經(jīng)過(guò)變壓、全波整流、電容濾波、三段集成穩(wěn)壓器7805穩(wěn)壓后給單片機(jī)供電。12V電壓直接接到放大器LM324的4腳,確保波形放大電路的穩(wěn)定工作。這部分電路比較簡(jiǎn)單,采用三端穩(wěn)壓管7805的輸出來(lái)實(shí)現(xiàn)的單片機(jī)的供電要求,由于不是本次設(shè)計(jì)的核心部分,故在此不作詳述。 </p>&l
83、t;p> 4 系統(tǒng)軟件設(shè)計(jì) </p><p> 4.1 系統(tǒng)軟件編程語(yǔ)言方案設(shè)計(jì) </p><p> 單片機(jī)系列的編程語(yǔ)言常用的有兩種,一種是匯編語(yǔ)言,一種是C語(yǔ)言。C語(yǔ)言既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴(lài)計(jì)算機(jī)硬件的應(yīng)用程序。具體應(yīng)用到單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā),但是它仍具有如下缺
84、點(diǎn):</p><p> (1)C語(yǔ)言的缺點(diǎn)主要是表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上做的有很大缺陷,這也是C和C++的一大區(qū)別。</p><p> (2) C語(yǔ)言的語(yǔ)法限制不太嚴(yán)格,對(duì)變量的類(lèi)型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語(yǔ)言比其他高級(jí)語(yǔ)言較難掌握。</p><p> (3)指針就是C語(yǔ)言的一大特色,但
85、是C的指針操作也給它帶來(lái)了很多不安全的因素。C++在這方面做了很好的改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。Java取消了指針操作,提高了安全性。</p><p> 匯編語(yǔ)言,是一種功能很強(qiáng)的程序設(shè)計(jì)語(yǔ)言,匯編語(yǔ)言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具有如下一些優(yōu)點(diǎn):</p><p> (1)能夠直接訪(fǎng)問(wèn)與硬件相關(guān)的存儲(chǔ)器或I/O端口;</p><p>
86、; (2)能夠不受編譯器的限制,對(duì)生成的二進(jìn)制代碼進(jìn)行完全的控制;</p><p> (3)能夠根據(jù)特定的應(yīng)用對(duì)代碼做最佳的優(yōu)化,提高運(yùn)行速度;</p><p> (4)能夠最大限度地發(fā)揮硬件的功能。 </p><p> 匯編語(yǔ)言的機(jī)器代碼生成效率很高,能夠根據(jù)特定的應(yīng)用對(duì)代碼做最佳的優(yōu)化,提高運(yùn)行速度。</p><p> 綜合以上
87、匯編語(yǔ)言的優(yōu)點(diǎn),波形發(fā)生器系統(tǒng)的軟件部分由匯編語(yǔ)言設(shè)計(jì)編程實(shí)現(xiàn)。 </p><p> 4.2 系統(tǒng)整體軟件設(shè)計(jì)思想</p><p> 系統(tǒng)的軟件設(shè)計(jì)是在WAVE6000的集成開(kāi)發(fā)環(huán)境下,采用匯編語(yǔ)言完成了應(yīng)用系統(tǒng)軟件編程,包括主程序、產(chǎn)生四種常用信號(hào)的程序、按鍵功能子程序和顯示子程序等子程序模塊。模塊化的編程方法使得程序具有可讀性和易于維護(hù)的特點(diǎn)。</p><p&g
88、t; 4.3 各個(gè)子程序模塊流程圖</p><p> 系統(tǒng)軟件是由若干子程序構(gòu)成,包括主程序、鍵盤(pán)輸入、頻率調(diào)整子程序、顯示子程序、延時(shí)子程序、各波形產(chǎn)生子程序等。</p><p> 4.3.1 主程序流程圖 </p><p> 主程序設(shè)計(jì)思路:首先給單片機(jī)上電,對(duì)LCD1602和中斷進(jìn)行初始化設(shè)置,然后進(jìn)行進(jìn)行按鍵掃描,如果有按鍵按下就產(chǎn)生外部中斷0中斷
89、,首先判斷方波選擇按鍵SQ是否按下,若按下對(duì)應(yīng)的LED指示燈點(diǎn)亮;若沒(méi)按下繼續(xù)判斷鋸齒波選擇按鍵ST是否按下,若按下對(duì)應(yīng)的LED指示燈點(diǎn)亮;若沒(méi)按下繼續(xù)判斷三角波選擇按鍵TRI是否按下,若按下對(duì)應(yīng)的LED指示燈點(diǎn)亮;若沒(méi)按下繼續(xù)判斷正弦波選擇按鍵SIN是否按下,若按下對(duì)應(yīng)的LED指示燈點(diǎn)亮,若四個(gè)按鍵均未按下,跳到主程序,等待中斷的產(chǎn)生。主程序流程圖如圖4.1所示[9]。 </p><p><b>
90、Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N<
91、/b></p><p><b> Y</b></p><p><b> N</b></p><p> 圖4.1 主程序流程圖</p><p> 4.3.2 頻率調(diào)整子程序</p><p> (1) 程序設(shè)計(jì)思路</p><p> 按鍵
92、部分我們通過(guò)8位撥碼開(kāi)關(guān)來(lái)實(shí)現(xiàn)8位數(shù)字量通過(guò)74ls165的并行輸入串行輸出的數(shù)據(jù)存入單片機(jī)的累加器A中,然后將A中的值取反后送給寄存器R3,以R3為延時(shí)常數(shù)進(jìn)行延時(shí),使得階梯電壓沒(méi)升高一定的數(shù)值后就以R3為延時(shí)常數(shù)進(jìn)行延時(shí),從而改變波形的輸出頻率,使頻率能夠?qū)崟r(shí)隨著撥碼按鍵開(kāi)關(guān)量的輸入而改變,實(shí)時(shí)性較強(qiáng)。</p><p><b> (2) 部分程序</b></p><
93、p> START1: CLR P2.6 ;并行置入數(shù)據(jù),S/ =0</p><p> SETB P2.6 ;允許 串行移位,S/ =1</p><p> RXDATA1:MOV SCON,#00010000B ;設(shè)置串口方式0,允許接收,啟動(dòng)接收</p><p> JNB RI,$
94、 ;等待外部數(shù)據(jù)</p><p> CLR RI ;清除接收完標(biāo)志</p><p> MOV A,SBUF ;讀取數(shù)據(jù)</p><p> CPL A</p><p> MOV R3,A</p><p> 4.3.3
95、顯示子程序流程圖</p><p> 圖4.2 顯示子程序流程圖[10]</p><p> 4.3.4 各波形產(chǎn)生子程序</p><p> (1) 鋸齒波產(chǎn)生子程序</p><p> 鋸齒波產(chǎn)生原理 鋸齒波中的斜線(xiàn)用一個(gè)個(gè)小臺(tái)階來(lái)逼近,在一個(gè)周期內(nèi)從最小值開(kāi)始逐步遞增, 當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺(tái)階間隔很小時(shí),
96、波形基本上近似于直線(xiàn)。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類(lèi)似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來(lái)產(chǎn)生鋸齒波。先將00H 給寄存器R6賦值,然后讓它不斷地自加1,直到加到255,DAC0832可以又自動(dòng)歸0,然后再不斷地重復(fù)上述過(guò)程進(jìn)而產(chǎn)生鋸齒波。</p><p> 鋸齒波產(chǎn)生子程序流程圖如圖4.3所示。</p><p> 圖4.3 鋸齒波產(chǎn)生子
97、程序流程圖</p><p> (2) 方波產(chǎn)生子程序</p><p><b> 方波產(chǎn)生原理 </b></p><p> 先給寄存器R0賦值00H,并且將0FFH送給P0口(DAC0832的八位數(shù)據(jù)輸入端與P0口相連)使得DAC0832電壓輸出端輸出高電平,然后讓它不斷地自加2,直到加到254,重新給寄存器R0賦值00H,并且將00H送給
98、P0口,使得DAC0832電壓輸出端輸出低電平,然后讓它不斷地自加2,直到加到254,可以又自動(dòng)歸0,然后再不斷地重復(fù)上述過(guò)程進(jìn)而產(chǎn)生方波。 </p><p> 方波產(chǎn)生子程序流程圖見(jiàn)圖4.4。</p><p> 圖4.4 方波產(chǎn)生子程序流程圖</p><p> (3) 三角波產(chǎn)生子程序</p><p> 三角波產(chǎn)生子程序流程圖見(jiàn)圖4
99、.5。</p><p> 圖4.5 三角波產(chǎn)生子程序流程圖</p><p><b> 三角波產(chǎn)生原理</b></p><p> 先給寄存器R7賦值00H,然后讓它不斷地自加2,每次R7加2后都要進(jìn)行一次DA轉(zhuǎn)換,直到加到255,然后讓它不斷地自減2,每次R7減2后都要進(jìn)行一次DA轉(zhuǎn)換,直到減到00,可以又自動(dòng)歸0,然后再不斷地重復(fù)上述過(guò)程
100、進(jìn)而產(chǎn)生三角波。 </p><p> (4) 正弦波產(chǎn)生子程序</p><p> 1)正弦波產(chǎn)生子程序流程圖見(jiàn)圖4.6 。</p><p> 圖4.6 正弦波產(chǎn)生子程序流程圖</p><p> 2 )正弦波產(chǎn)生原理</p><p> 方法一:采用分立元件構(gòu)成非穩(wěn)態(tài)的多諧振振蕩器,根據(jù)具體需要加入積分電路等構(gòu)成
101、波形發(fā)生器。但這種波形發(fā)生器輸出頻率范圍窄,而且電路參數(shù)設(shè)定較繁瑣,輸出的波形易受外界環(huán)境影響,不穩(wěn)定,對(duì)電路硬件要求很高,不易實(shí)現(xiàn)。故不采用本方法來(lái)產(chǎn)生正弦波。</p><p> 方法二:DAC0832是8位的D/A轉(zhuǎn)換器件,其工作電壓是0—5V,當(dāng)輸入00H數(shù)字量的時(shí)候,輸出為0V電壓;當(dāng)輸入07FH數(shù)字量的時(shí)候,輸出為2.5V電壓;當(dāng)輸入0FFH數(shù)字量的時(shí)候,輸出為5V電壓。單片機(jī)的I/O輸出均為+5 V
102、的TTL電平,因此產(chǎn)生的正弦波(以正弦波為例)幅值為+2.5 V。將一個(gè)周期內(nèi)的正弦波形等分為256份,對(duì)應(yīng)256個(gè)數(shù)字量,利用查數(shù)據(jù)表的方式來(lái)實(shí)現(xiàn)波形的產(chǎn)生。將這些單極性方式下的數(shù)字量轉(zhuǎn)換為正弦值模擬量輸出。而每次送到DAC0832的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù)表格而得到。</p><p> 5 系統(tǒng)軟硬件調(diào)試與數(shù)據(jù)處理</p><p> 5.1 軟件仿真及軟件程序調(diào)試</p
103、><p> 5.1.1 軟件仿真環(huán)境</p><p> 在Proteus7.5軟件中進(jìn)行硬件電路的原理圖的繪制和仿真,在仿真的過(guò)程中,由于考慮到單片機(jī)的可用I/O口只有32個(gè),若將8位撥碼開(kāi)關(guān)直接接到單片機(jī)的一個(gè)I/O口會(huì)導(dǎo)致LCD的顯示接口不能與單片機(jī)有效的連接,因此最后采用8位并入串出的移位寄存器74LS165來(lái)實(shí)現(xiàn)兩根數(shù)據(jù)線(xiàn)就可以與單片機(jī)連接,達(dá)到單片機(jī)實(shí)時(shí)采集撥碼開(kāi)關(guān)的8位數(shù)字量來(lái)
104、改變波形的頻率。</p><p> 5.1.2 軟件程序調(diào)試</p><p> 系統(tǒng)軟件調(diào)試是通過(guò)程序調(diào)節(jié)從而使電路系統(tǒng)更好的工作,以期得到更接近準(zhǔn)確的數(shù)據(jù),從而使電路工作輸出更精確,更接近實(shí)際。</p><p> 本設(shè)計(jì)主要做了以下程序調(diào)試:</p><p> ?。?)編寫(xiě)完成了通過(guò)四個(gè)按鍵實(shí)現(xiàn)四種波形的輸出,但是此時(shí)的波形的頻率和幅
105、度不可調(diào)。</p><p> (2)通過(guò)我在圖書(shū)館查資料,編寫(xiě)完成了可以通過(guò)8位撥碼開(kāi)關(guān)的數(shù)字量送給單片機(jī)的累加器A,然后取反后在送給寄存器R3中,然后然R3減1,直到減到0為止,利用此段延時(shí)作為兩個(gè)階梯電壓之間的時(shí)間差,從而達(dá)到實(shí)時(shí)改變四種波形的頻率的目的。</p><p> ?。?)為了節(jié)省單片機(jī)的I/O口資源,加了8位并入串出的移位寄存器74LS165來(lái)將撥碼開(kāi)關(guān)的8位數(shù)字量送給單
106、片機(jī),經(jīng)單片機(jī)處理后改變波形的頻率。但是在加入程序后由于將MOV SCON,#00010000B誤寫(xiě)為MOV SCON,#00010000H導(dǎo)致無(wú)法實(shí)現(xiàn)頻率可調(diào),最后改正后,即將正確的74LS165的程序加入到每個(gè)波形的處理子程序中后,四種波形頻率均可調(diào)[10]。</p><p> ?。?)編寫(xiě)完成了能夠使LCD1602顯示40H-46HRAM單元的內(nèi)容程序,但是此程序不能顯示波形的頻率和幅度,經(jīng)過(guò)我修改
107、程序?qū)艽a開(kāi)關(guān)的8位數(shù)字量采集后送到寄存器R0中,然后通過(guò)MOV R0,#10H和MOV 40H,@R0指令實(shí)現(xiàn)在LCD1602上可顯示隨著撥碼開(kāi)關(guān)的8位數(shù)字量的改變而實(shí)現(xiàn)波形頻率的動(dòng)態(tài)變化。但是仿真的時(shí)候還是不能顯示波形頻率。</p><p> ?。?)顯示程序中的數(shù)據(jù)表只有放到子程序里才行,不能放在RET外面,否則程序功能無(wú)法實(shí)現(xiàn);由于調(diào)用DISPLAY是需要一段延時(shí),故每產(chǎn)生一個(gè)周期的波形后必然對(duì)整個(gè)波形的
108、最后的一個(gè)電平狀態(tài)延時(shí)一段時(shí)間(DISPLAY子程序所占的機(jī)器周期)。</p><p> ?。?)在頻率處理電路設(shè)計(jì)時(shí),由于自身電路設(shè)計(jì)的不足和外界噪聲的干擾,致使LCD1602顯示的頻率、幅度與用數(shù)字示波器觀察得到的頻率、幅度有一定的不一致,但通過(guò)一組組的數(shù)據(jù)觀察和比較,發(fā)現(xiàn)了其中的誤差規(guī)律,一次次對(duì)數(shù)據(jù)進(jìn)行記錄、分析、統(tǒng)計(jì)、總結(jié),進(jìn)行了一次次的修正,從而減小了誤差。</p><p>
109、 經(jīng)過(guò)以上程序的調(diào)試,最終實(shí)現(xiàn)了具有頻率和幅度均可調(diào)的四種波形的輸出,并且能在LCD1602上顯示波形的頻率和幅度。能夠更好的服務(wù)于硬件,因此本系統(tǒng)達(dá)到了設(shè)計(jì)任務(wù)書(shū)所要求的性能指標(biāo)。</p><p> 5.2 硬件PCB制作、安裝、測(cè)試與調(diào)試</p><p> 5.2.1 PCB設(shè)計(jì)、制作、安裝</p><p> ?。?)電路版圖的打印。用轉(zhuǎn)印紙將繪制好的電路板
110、打印出來(lái),一般打印兩張電路版圖,即一張紙上打印兩張電路版圖。</p><p> ?。?)覆銅板的裁剪。將覆銅板裁成電路板的大小,不要過(guò)大,以節(jié)約材料。</p><p> 覆銅板的預(yù)處理。用細(xì)砂紙把覆銅板表面氧化層打磨掉,以保證在轉(zhuǎn)印電路板時(shí),熱轉(zhuǎn)印紙上的碳粉能牢固的印在覆銅板上,打磨好板面光亮,沒(méi)有明顯污漬。</p><p> (3)電路板的轉(zhuǎn)印。將打印好的電路
111、板裁剪成合適大小,把印有電路版圖的一面貼在覆銅板上,對(duì)齊好后把覆銅板放入熱轉(zhuǎn)印機(jī),放入時(shí)一定要保證轉(zhuǎn)印紙沒(méi)有錯(cuò)位。一般來(lái)說(shuō)經(jīng)過(guò)3-5次轉(zhuǎn)印,電路板就能很牢固的轉(zhuǎn)印在覆銅板上。熱轉(zhuǎn)印機(jī)事先就已經(jīng)預(yù)熱溫度至160-200攝氏度(一般為180攝氏度)。</p><p> ?。?)線(xiàn)路板的腐蝕過(guò)程。先檢查一下電路版圖是否轉(zhuǎn)印完整,若有少數(shù)沒(méi)有轉(zhuǎn)印好的地方可以用黑色油性筆修補(bǔ)。然后進(jìn)行電路板腐蝕,等電路板上暴露的銅膜完全被
112、腐蝕掉時(shí),在腐蝕液中將線(xiàn)路板取出清洗干凈,這樣就完成了電路板的腐蝕。腐蝕液的成分為濃鹽酸、濃雙氧水、水,比例為1:2:3。</p><p> ?。?)電路板的鉆孔過(guò)程。電路板上是要插入電子元件的,所以就要對(duì)電路板鉆孔了。依據(jù)電子元件管腳的粗細(xì)選擇不同的鉆針,在使用鉆機(jī)鉆孔時(shí),電路板一定要固定,鉆機(jī)速度不能開(kāi)的過(guò)慢,請(qǐng)仔細(xì)看操作人員操作規(guī)范后方能操作。</p><p> (6)預(yù)處理電路板
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的波形發(fā)生器的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的波形發(fā)生器設(shè)計(jì)-畢業(yè)設(shè)計(jì)論文
- 單片機(jī)波形發(fā)生器的設(shè)計(jì)
- 基于單片機(jī)的多波形發(fā)生器設(shè)計(jì)
- 基于8051單片機(jī)的波形發(fā)生器設(shè)計(jì)
- 基于avr單片機(jī)的波形發(fā)生器設(shè)計(jì)
- 基于avr單片機(jī)的波形發(fā)生器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于單片機(jī)的波形發(fā)生器
- 基于單片機(jī)的波形發(fā)生器課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)
- 基于單片機(jī)原理的波形發(fā)生器畢業(yè)論文設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的信號(hào)發(fā)生器
- 基于單片機(jī)的波形發(fā)生器 (2)
- 單片機(jī)課程設(shè)計(jì)--波形發(fā)生器的設(shè)計(jì)
- 課程設(shè)計(jì)基于單片機(jī)之波形發(fā)生器的設(shè)計(jì)
- 課程設(shè)計(jì)基于單片機(jī)之波形發(fā)生器的設(shè)計(jì)
- 波形發(fā)生器的設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(波形發(fā)生器)
- 單片機(jī)課程設(shè)計(jì)---波形發(fā)生器
評(píng)論
0/150
提交評(píng)論