畢業(yè)設(shè)計(jì)--基于單片機(jī)的函數(shù)信號(hào)發(fā)生器_第1頁
已閱讀1頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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 緒論5</b></p><p>  1.1 選題背景及意義5</p><p>  1.1.1 本課題的研究現(xiàn)狀5</p><p>  1.1.2 選題目的及意義6</p><p>  1.2

2、設(shè)計(jì)任務(wù)及要求6</p><p>  1.2.1 設(shè)計(jì)的基本要求7</p><p>  1.2.2 本文結(jié)構(gòu)安排7</p><p>  2 函數(shù)發(fā)生器系統(tǒng)設(shè)計(jì)8</p><p>  2.1 設(shè)計(jì)方案的比較8</p><p>  2.2 系統(tǒng)模塊設(shè)計(jì)8</p><p>  2.2.1

3、控制模塊:8</p><p>  2.2.2 按鍵及其顯示模塊:9</p><p>  2.2.3 波形產(chǎn)生模塊9</p><p>  2.2.4 D/A轉(zhuǎn)換10</p><p>  2.3 系統(tǒng)總體框圖11</p><p>  2.4 理論分析12</p><p>  2.4.1

4、電路的理論計(jì)算12</p><p>  2.4.2 波形產(chǎn)生相關(guān)理論14</p><p>  2.5 單片機(jī)軟件開發(fā)系統(tǒng)15</p><p>  3 系統(tǒng)硬件電路的設(shè)計(jì)17</p><p>  3.1 單片機(jī)最小系統(tǒng)17</p><p>  3.2 單片機(jī)的接口電路18</p><p&g

5、t;  3.3 幅度控制模塊22</p><p>  3.3.1 單片機(jī)與DAC0832的接口22</p><p>  3.3. 2DAC0832與運(yùn)放的連接22</p><p>  4 系統(tǒng)軟件設(shè)計(jì)25</p><p>  4.1 系統(tǒng)軟件設(shè)計(jì)方案25</p><p>  4.2 系統(tǒng)軟件流程圖25<

6、;/p><p>  4.3 信號(hào)產(chǎn)生程序26</p><p>  4.3.1 正弦波產(chǎn)生27</p><p>  4.3.2 三角波產(chǎn)生27</p><p>  4.3.2 方波產(chǎn)生28</p><p>  4.3.4 鋸齒波的產(chǎn)生30</p><p>  5 系統(tǒng)調(diào)試與測(cè)試31<

7、/p><p><b>  5.1 調(diào)試31</b></p><p><b>  5.2 測(cè)試34</b></p><p>  6 結(jié)論與展望37</p><p><b>  6.1 結(jié)論37</b></p><p><b>  6.2 展望

8、37</b></p><p><b>  致 謝38</b></p><p><b>  參考文獻(xiàn)50</b></p><p><b>  附 錄39</b></p><p>  附錄一 系統(tǒng)軟件部分源程序39</p><p>  

9、附錄二 系統(tǒng)原理圖48</p><p>  附錄三 系統(tǒng)PCB圖49</p><p>  基于單片機(jī)的波形發(fā)生器的設(shè)計(jì)</p><p>  摘要:函數(shù)發(fā)生器是一種用于產(chǎn)生標(biāo)準(zhǔn)信號(hào)的電子儀器,它廣泛用于工業(yè)生產(chǎn)、科研和國防等各個(gè)領(lǐng)域中,所以論文選題具有一定的實(shí)用意義。本文介在紹了函數(shù)發(fā)生器的基本概念及原理的基礎(chǔ)上,采用AT89C51單片機(jī)為核心,完成了簡(jiǎn)易的DDS

10、函數(shù)發(fā)生器的硬件設(shè)計(jì)和軟件編程,并通過調(diào)試實(shí)現(xiàn)了其功能和主要技術(shù)指標(biāo)。在系統(tǒng)的硬件部分,設(shè)計(jì)了由單片機(jī)最小系統(tǒng)為核心、通過接口設(shè)計(jì),擴(kuò)展了DAC轉(zhuǎn)換模塊、按鍵和LED顯示模塊。其中,采用兩片DAC0832實(shí)現(xiàn)了全數(shù)字化的頻率合成器(簡(jiǎn)稱DDS)。系統(tǒng)的軟件設(shè)計(jì)是在keil uVision4的集成開發(fā)環(huán)境下,采用C語言完成了應(yīng)用系統(tǒng)軟件編程,包括主程序、產(chǎn)生四種常用信號(hào)的程序、按鍵功能和顯示子程序等電腦模塊;模塊化的編程使得程序具有可讀性

11、和易于維護(hù)的特點(diǎn)。</p><p>  關(guān)鍵詞:信號(hào)發(fā)生器 單片機(jī) keilc51 </p><p>  Based on SCM waveform generator design</p><p>  Abstract:Function generator is used to produce a standard signal electronic ins

12、trument, it is widely used in industrial production, scientific research and national defense, and other fields, so the thesis has certain practical significance. This paper in shaoxing interface the function generator o

13、f basic concepts and principles, and on the basis of the AT89C51 microcontroller as the core, the completion of the simple DDS function generator hardware design and software programming, and through t</p><p&g

14、t;  Key words:Signal generator Single-chip microcomputer keilc51</p><p><b>  1 緒論</b></p><p>  1.1 選題背景及意義</p><p>  函數(shù)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式

15、來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數(shù)信號(hào)發(fā)生器。在通信、廣播、電視系統(tǒng),在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),函數(shù)信號(hào)發(fā)生器在實(shí)驗(yàn)和設(shè)備檢測(cè)中具有十分廣泛的用途。</p><p>  1.1.1 本課題的研究現(xiàn)狀</p><p>  函數(shù)發(fā)生器既可以構(gòu)成獨(dú)立的信號(hào)源,也可以是高性能網(wǎng)絡(luò)分析儀、頻譜儀及其它自動(dòng)測(cè)試設(shè)備的組成部分。函數(shù)發(fā)生器的關(guān)鍵技術(shù)

16、是多種高性能儀器的支撐技術(shù),因?yàn)樗軌蛱峁└哔|(zhì)量的精密信號(hào)源及掃頻源,可使相應(yīng)系統(tǒng)的檢測(cè)過程大大簡(jiǎn)化,降低檢測(cè)費(fèi)用并極大地提高檢測(cè)精度。美國安捷倫生產(chǎn)的33250A型函數(shù)任意波形發(fā)生器可以產(chǎn)生穩(wěn)定、精確和低失真的任意波形,其輸出頻率范圍為1μHz~80MHz,而輸出幅度為10mVpp~10Vpp;該公司生產(chǎn)的8648D射頻信號(hào)發(fā)生器的頻率覆蓋范圍更可高達(dá)9kHz~4GHz。國產(chǎn)SG1060數(shù)字合成信號(hào)發(fā)生器能雙通道同時(shí)輸出高分辨率、高精

17、度、高可靠性的各種波形,頻率覆蓋范圍為1μHz~60MHz;國產(chǎn)S1000型數(shù)字合成掃頻信號(hào)發(fā)生器通過采用新技術(shù)、新器件實(shí)現(xiàn)高精度、寬頻帶的掃頻源,同時(shí)應(yīng)用DDS和鎖相技術(shù),使頻率范圍從1MHz~1024MHz能精確地分辨到100Hz,它既是一臺(tái)高精度的掃頻源,同時(shí)也是一臺(tái)高精度的標(biāo)準(zhǔn)信號(hào)發(fā)生器。還有很多其它類型的信號(hào)發(fā)生器,他們各有各的優(yōu)點(diǎn),但是函數(shù)發(fā)生器總的趨勢(shì)將向著寬頻率覆蓋、高頻率精度、多功能、多用途、自動(dòng)化和智能化方向發(fā)展。&

18、lt;/p><p>  目前,市場(chǎng)上的信號(hào)發(fā)生器多種多樣,一般按頻帶分為以下幾種:</p><p>  超高頻:頻率范圍1MHz以上,可達(dá)幾十兆赫茲。</p><p>  高頻:幾百KHZ到幾MHZ。</p><p>  低頻:頻率范圍為幾十HZ到幾百KHZ。</p><p>  超低頻:頻率范圍為零點(diǎn)幾赫茲到幾百赫茲。&

19、lt;/p><p>  超高頻信號(hào)發(fā)生器,產(chǎn)生波形一般用LC振蕩電路。</p><p>  高頻、低頻和超低頻信號(hào)發(fā)生器,大多使用文氏橋振蕩電路,即RC振蕩電路,通過改變電容和電阻值,改變頻率。</p><p>  用以上原理設(shè)計(jì)的信號(hào)發(fā)生器,其輸出波形一般只有兩種,即正弦波和脈沖波,其零點(diǎn)不可調(diào),而且價(jià)格也比較貴,一般在幾百元左右。在實(shí)際應(yīng)用中,超低頻波和高頻波一般是

20、不用的,一般用中高頻,即幾十HZ到幾MHZ。用單片機(jī)AT89C51,加上一片DAC0832,就可以做成一個(gè)簡(jiǎn)單的信號(hào)發(fā)生器,其頻率受單片機(jī)運(yùn)行的程序的控制。我們可以把產(chǎn)生各種波形的程序,寫在ROM中,裝入本機(jī),按用戶的選擇,運(yùn)行不同的程序,產(chǎn)生不同的波形。再在DAC0808輸出端加上一些電壓變換電路,就完成了一個(gè)頻率、幅值、零點(diǎn)均可調(diào)的多功能信號(hào)發(fā)生器的設(shè)計(jì)。這樣的機(jī)器體積小,價(jià)格便宜,耗電少,頻率適中。</p><

21、p>  1.1.2 選題目的及意義</p><p>  函數(shù)發(fā)生器是一種經(jīng)常使用的設(shè)備,由純粹物理器件構(gòu)成的傳統(tǒng)的設(shè)計(jì)方法存在許多弊端,如:體積較大、重量較沉、移動(dòng)不夠方便、信號(hào)失真較大、波形種類過于單一、波形形狀調(diào)節(jié)過于死板,無法滿足用戶對(duì)精度、便攜性、穩(wěn)定性等的要求,研究設(shè)計(jì)出一種具有頻率穩(wěn)定、準(zhǔn)確、波形質(zhì)量好、輸出頻率范圍寬、便攜性好等特點(diǎn)的波形發(fā)生器具有較好的市場(chǎng)前景,以滿足軍事和民用領(lǐng)域?qū)π盘?hào)源的

22、要求。</p><p>  本次設(shè)計(jì)的主要目標(biāo)是學(xué)習(xí)和運(yùn)用單片機(jī)的C語言和匯編語言,利用單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的發(fā)生,并且可以接收外接鍵盤輸入而在一定范圍內(nèi)改變頻率。</p><p>  在無標(biāo)準(zhǔn)函數(shù)發(fā)生儀器時(shí),本設(shè)計(jì)可以作為簡(jiǎn)單的函數(shù)發(fā)生器使用。本次設(shè)計(jì)準(zhǔn)備在成本較低廉的前提下完成,主要是用AT89C51單

23、片機(jī),DAC0832,性能指數(shù)都不是很高,所以對(duì)此信號(hào)源的基本要求是能發(fā)生幾種常見的波形,正弦波,方波,三角波,鋸齒波,并且能夠在一定的范圍內(nèi)改變頻率。通過該課題的設(shè)計(jì)掌握以AT89C51為核心的單片機(jī)系統(tǒng)的軟硬件開發(fā)過程和基本信號(hào)的產(chǎn)生原理、測(cè)量及誤差分析方法,同時(shí)掌握函數(shù)發(fā)生器系統(tǒng)的設(shè)計(jì)流程;培養(yǎng)我們綜合運(yùn)用所學(xué)的基本知識(shí)、基本理論和基本技能的能力,學(xué)習(xí)解決一般工程技術(shù)和有關(guān)專業(yè)問題的能力,學(xué)習(xí)工程設(shè)計(jì)和科學(xué)研究的基本方法,完成對(duì)所

24、學(xué)知識(shí)的綜合訓(xùn)練。</p><p>  1.2 設(shè)計(jì)任務(wù)及要求</p><p>  本設(shè)計(jì)采用AT89C51及其外圍擴(kuò)展系統(tǒng),軟件方面主要是應(yīng)用C語言設(shè)計(jì)程序。系統(tǒng)以AT89C51單片機(jī)為核心,配置相應(yīng)的外設(shè)及接口電路,用C語言開發(fā),組成一個(gè)多功能信號(hào)發(fā)生系統(tǒng)。該系統(tǒng)的軟件可運(yùn)行于Windows XP環(huán)境下,硬件電路設(shè)計(jì)具有典型性。同時(shí),本系統(tǒng)中任何一部分電路模塊均可移植于實(shí)用開發(fā)系統(tǒng)的設(shè)

25、計(jì)中,電路設(shè)計(jì)具有實(shí)用性。</p><p>  1.2.1 設(shè)計(jì)的基本要求</p><p><b> ?。?)功能要求</b></p><p>  1.能產(chǎn)生正弦波、方波、三角波、鋸齒波等4種周期性波形,并且可通調(diào)節(jié)變形成其它相關(guān)波形。</p><p>  2.用鍵盤輸入可生成正弦波的基波及各次諧波單獨(dú)的波形,也可生成基

26、波和各次諧波線形組合的波形。</p><p>  3.輸出波形的頻率范圍為1MHz~1Hz;可以通過鍵盤輸入粗調(diào)頻率。</p><p>  4.輸出波形幅度范圍為0~5V(峰-峰值),可調(diào)整。</p><p>  5.具有顯示輸出波形類型、及其粗調(diào)頻率和幅度的功能。</p><p>  1.2.2 本文結(jié)構(gòu)安排</p><

27、p>  全文共分為6章,第1章緒論(介紹設(shè)計(jì)的研究現(xiàn)狀、選題意義及設(shè)計(jì)的任務(wù)與要求);第2章系統(tǒng)總體的設(shè)計(jì)原理;第3章系統(tǒng)的硬件設(shè)計(jì);第4章系統(tǒng)的軟件設(shè)計(jì);第5章系統(tǒng)的調(diào)試與測(cè)試;第6章總結(jié)與展望</p><p>  2 函數(shù)發(fā)生器系統(tǒng)設(shè)計(jì)</p><p>  2.1 設(shè)計(jì)方案的比較</p><p>  函數(shù)發(fā)生器的設(shè)計(jì)方案可用多種方案來完成。在設(shè)計(jì)前對(duì)各種方

28、案進(jìn)行了比較:</p><p>  方案一:用差分放大電路實(shí)現(xiàn)三角波到正弦波以及集成運(yùn)放組成的電路實(shí)現(xiàn)函數(shù)發(fā)生器。波形變換的原理是利用差分放大器的傳輸特性曲線的非線性,傳輸特性曲線越對(duì)稱,線性區(qū)域越窄越好;三角波的幅度應(yīng)正好使晶體接近飽和區(qū)域或者截至區(qū)域。</p><p>  方案二:用二極管折線近似電路以及集成運(yùn)放組成的電路實(shí)現(xiàn)函數(shù)發(fā)生器。根據(jù)二極管折線近似電路實(shí)現(xiàn)三角波——正弦波的變換

29、頻率調(diào)節(jié)部分設(shè)計(jì)時(shí),可先按三個(gè)頻率段給定三個(gè)電容值:1000pF、0.01mf、0.1μF然后再計(jì)算R的大小。手控與壓控部分線路要求更換方便。為滿足對(duì)方波前后沿時(shí)間的要求,以及正弦波最高工作頻率(1MHz)的要求,在積分器、比較器、正弦波轉(zhuǎn)換器和輸出級(jí)中應(yīng)選用Sr值較大的運(yùn)放(如LF353)。為保證正弦波有較小的失真度,應(yīng)正確計(jì)算二極管網(wǎng)絡(luò)的電阻參數(shù),并注意調(diào)節(jié)輸出三角波的幅度和對(duì)稱度。輸入波形中不能含有直流成分。</p>

30、<p>  方案三 :利用單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的發(fā)生,并且可以接收外接鍵盤輸入而在一定范圍內(nèi)改變頻率。</p><p><b>  可行性分析:</b></p><p>  上面三種方案中,方案一與方案二中三角波——正弦波部分原理雖然不一樣,但是他們有共通的地方就是都要認(rèn)為

31、地搭建波形變換的電路圖。而方案三利用單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。系統(tǒng)擴(kuò)展、系統(tǒng)配置靈活。容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),且應(yīng)用系統(tǒng)有較高的軟、硬件利用系數(shù)。單片機(jī)具有可編程性,硬件的功能描述可完全在軟件上實(shí)現(xiàn),而且設(shè)計(jì)時(shí)間短,成本低,可靠性高。</p><p>  綜上所述我們選擇了第三種設(shè)計(jì)方案</p><p>  2.2 系統(tǒng)模塊設(shè)計(jì)</p><p>  該

32、函數(shù)發(fā)生器有以下幾部分組成:(1)控制模塊(2)按鍵及其顯示模塊(3)D/A轉(zhuǎn)換模塊。</p><p>  2.2.1 控制模塊:</p><p>  方案一:用單片AT89C51作為系統(tǒng)的主控核心。具有體積小,使用靈活的,易于人機(jī)對(duì)話和良好的數(shù)據(jù)處理,單指令周期和35M高速運(yùn)算功能等優(yōu)點(diǎn)。且單片機(jī)功耗低,價(jià)格低廉的優(yōu)點(diǎn)。</p><p>  方案二:用單片AT89

33、C51作為系統(tǒng)的主控核心。具有價(jià)格低廉的優(yōu)點(diǎn),但處理速度較慢(1/12M),AT89C51是它的35倍。</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ù)字邏輯器件較為突出的問題,因此在使用

34、時(shí)必須注意毛刺的產(chǎn)生、消除及抗干擾性。</p><p>  在次系統(tǒng)中,采用單片機(jī)作為控制比采用FPGA實(shí)現(xiàn)更簡(jiǎn)便?;诰C合性價(jià)比,確定選擇方案一.</p><p>  2.2.2 按鍵及其顯示模塊:</p><p>  方案一:采用傳統(tǒng)的獨(dú)立式按鍵;用傳統(tǒng)的LED段選位選的方式進(jìn)行波形的切換及顯示。這種方式占用系統(tǒng)資源較多,并且效率低,程系編寫大量而復(fù)雜。<

35、/p><p>  方案二:為了提高單片機(jī)的資源利用率和運(yùn)行的效率,按鍵顯示部分我們直接使用zlg7289擴(kuò)展鍵盤,鍵盤與單片機(jī)連接。zlg7289芯片與單片機(jī)之間通信方便,而且由zlg7289對(duì)鍵盤進(jìn)行自動(dòng)掃描,可以去抖動(dòng),充分的提高了單片機(jī)的工作效率。</p><p>  在次系統(tǒng)中,我們直接采用zlg7289擴(kuò)展鍵盤實(shí)現(xiàn)更簡(jiǎn)便,確定選擇方案二。</p><p>  

36、2.2.3 波形產(chǎn)生模塊</p><p>  方案一:使用鎖相環(huán)通過分頻運(yùn)算實(shí)現(xiàn)頻率的步進(jìn),這種方案頻率穩(wěn)定度高,但程控比較困難,而且步進(jìn)范圍過大,鑒于鎖相環(huán)技術(shù)比較復(fù)雜,沒有采用這種方案。</p><p>  方案二:使用專用函數(shù)發(fā)生電路,如ICL8038 或MAX038,通過D/A轉(zhuǎn)換調(diào)整函數(shù)發(fā)生器控制電壓實(shí)現(xiàn)頻率的控制,這種方案可以使頻率連續(xù)可調(diào),省卻了波形轉(zhuǎn)換電路,但控制電壓與頻率

37、的變化不是嚴(yán)格的線性關(guān)系,如果不加頻率負(fù)反饋則頻率無法穩(wěn)定準(zhǔn)確,加上頻率負(fù)反饋將使電路大大復(fù)雜,穩(wěn)定度也會(huì)下降,而且如果要實(shí)現(xiàn)比較大的帶寬,就需要不斷更換振蕩電容,電路復(fù)雜程度進(jìn)一步增加。為避免調(diào)試?yán)щy,沒有采用這種方案。</p><p>  方案三:使用單片機(jī)的定時(shí)器設(shè)置定時(shí)時(shí)間,每半個(gè)周期對(duì)I/O 口取反一次,從而實(shí)現(xiàn)頻率輸出。這種方案雖然在高頻頻段誤差比較大,但是編程簡(jiǎn)單控制容易,權(quán)衡以上利弊,我們選擇了方

38、案三。</p><p>  2.2.4 D/A轉(zhuǎn)換</p><p>  單片輸出的是數(shù)字信號(hào),必須通過D/A轉(zhuǎn)換后才能模擬信號(hào)。</p><p>  方案一:采用D/A轉(zhuǎn)換器AD7543。AD7543是一種串行的D/A轉(zhuǎn)換器,與單片機(jī)之間的連線少,布線方便,而且又是12位的D/A轉(zhuǎn)換器,精度高。但串行數(shù)據(jù)傳輸速度慢,當(dāng)頻率較高時(shí),必須減少每周期輸出的點(diǎn)數(shù),這將會(huì)導(dǎo)致

39、階梯現(xiàn)象更加明顯,因此,此方案不宜使用。</p><p>  方案二:采用DAC0832。這是8位的并行D/A轉(zhuǎn)換器,轉(zhuǎn)換速度快。</p><p>  方案三:采用2片DAC0832。由其中一芯片的輸出電壓作為另一芯片的參考電壓,這樣就可以方便的控制最大輸出電壓。</p><p>  若采用方案二,在輸出電壓較低的情況下,比如為1V時(shí),輸出的最大電壓只有參考電壓的1

40、/5,這將會(huì)使精度降低,而方案三剛好可以解決這個(gè)問題,因此,本系統(tǒng)選擇了方案三。</p><p>  DAC0832芯片介紹</p><p>  DAC0832 是美國國家半導(dǎo)體公司生產(chǎn)的一種8 位分辨率、雙通道A/D轉(zhuǎn)換芯片。由于它體積小,兼容性,性價(jià)比高而深受單片機(jī)愛好者及企業(yè)歡迎,其目前已經(jīng)有很高的普及率。學(xué)習(xí)并使用DAC0832 可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機(jī)技

41、術(shù)水平的提高。</p><p>  DAC0832 具有以下特點(diǎn):</p><p><b>  · 8位分辨率;</b></p><p>  · 雙通道A/D轉(zhuǎn)換;</p><p>  · 輸入輸出電平與TTL/CMOS相兼容;</p><p>  · 5V

42、電源供電時(shí)輸入電壓在0到5V之間;</p><p>  · 電流建立時(shí)間1μS;</p><p>  · 一般功耗僅為15mW;</p><p>  · 8P、14P—DIP(雙列直插)、PICC 多種封裝;</p><p>  · 商用級(jí)芯片溫寬為0°C 到 +70°C,工業(yè)級(jí)芯片

43、溫寬為?40°C 到 +85°C;</p><p><b>  芯片接口說明:</b></p><p>  · CS 片選使能,低電平芯片使能。</p><p>  · CH0 模擬輸入通道0,或作為IN+/-使用。</p><p>  · CH1 模擬輸入通道1,或作為

44、IN+/-使用。</p><p>  · GND 芯片參考0 電位(地)。</p><p>  · DI 數(shù)據(jù)信號(hào)輸入,選擇通道控制。</p><p>  · DO 數(shù)據(jù)信號(hào)輸出,轉(zhuǎn)換數(shù)據(jù)輸出。</p><p>  · CLK 芯片時(shí)鐘輸入。</p><p>  · V

45、cc/REF 電源輸入及參考電壓輸入(復(fù)用)。</p><p>  DAC0832 為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0到5V之間。據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨(dú)立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過DI 數(shù)據(jù)輸入端,可以輕易的實(shí)現(xiàn)通道功能的選擇。

46、</p><p>  單片機(jī)對(duì)DAC0832 的控制原理:</p><p>  正常情況下DAC0832 與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI 并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)DAC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK 和DO/DI 的電平可任意。當(dāng)要

47、進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK 輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。在第1 個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。在第2、3個(gè)脈沖下沉之前DI端應(yīng)輸入2 位數(shù)據(jù)用于選擇通道功能 </p><p>  當(dāng)此2 位數(shù)據(jù)為“1”、“0”時(shí),只對(duì)CH0 進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位

48、數(shù)據(jù)為“1”、“1”時(shí),只對(duì)CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)2 位數(shù)據(jù)為“0”、“0”時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)2 位數(shù)據(jù)為“0”、“1”時(shí),將CH0作為負(fù)輸入端IN-,CH1 作為正輸入端IN+進(jìn)行輸入。到第3 個(gè)脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個(gè)脈沖下沉開始由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個(gè)脈沖下沉DO端輸出

49、下一位數(shù)據(jù)。直到第11個(gè)脈沖時(shí)發(fā)出最低位數(shù)據(jù)DATA0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個(gè)相反字節(jié)的數(shù)據(jù),即從第11個(gè)字節(jié)的下沉輸出DATA0。隨后輸出8位數(shù)據(jù),到第19 個(gè)脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了。作為單通道模擬信號(hào)輸入時(shí)DAC0832的輸入電壓是0到5V且8位分辨率時(shí)的電壓精度為19.53mV。如果作為由IN+與IN-輸入的輸入時(shí)

50、,可是將電壓值設(shè)定在某一個(gè)較大范圍之內(nèi),從而提高轉(zhuǎn)換</p><p>  2.3 系統(tǒng)總體框圖</p><p>  本系統(tǒng)是以單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832以及zlg7289鍵盤及顯示共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見波形的產(chǎn)生及顯示相互切換的功能。</p><p>  系統(tǒng)原理框圖如圖2-1</p><p&g

51、t;  圖2-1 系統(tǒng)框圖</p><p><b>  2.4 理論分析</b></p><p>  2.4.1 電路的理論計(jì)算</p><p>  由圖3-6可知到U5的輸出將作為DAC0832(2)的基準(zhǔn)電壓。</p><p>  假設(shè)運(yùn)放U6的輸入為;DAC0832(2)的內(nèi)部的電阻為。設(shè)U5的輸入電壓為;DAC

52、0832(2)的內(nèi)部的電阻為。下面進(jìn)行討論計(jì)算:</p><p>  U6為一個(gè)反相比例器:</p><p>  U5也為一個(gè)反相比例器:</p><p>  這是U4的輸入為,記為V</p><p>  由于,這是U4實(shí)際上為為一個(gè)反響跟隨器,即:</p><p><b>  所以:</b>&l

53、t;/p><p>  2.本設(shè)計(jì)中的運(yùn)放的連接的第二部分如圖3-6</p><p>  如圖3-6中的U2輸入中的為圖3-7中U4的輸出。</p><p>  對(duì)于本運(yùn)放組成的電路分析采用疊加法:</p><p><b>  設(shè)U2的輸出為。</b></p><p>  <1>當(dāng)電源全部接

54、地時(shí),有如下:</p><p>  此時(shí)的運(yùn)放實(shí)際為一個(gè)反相比例器:</p><p><b> ?。?-1)</b></p><p>  <2>當(dāng)-12V和接地時(shí):</p><p><b> ?。?-2)</b></p><p>  <3>當(dāng)12V和接

55、地時(shí):</p><p><b> ?。?-3)</b></p><p>  所以綜上所述:為,,三者之和。</p><p><b>  即:</b></p><p>  下面對(duì)的結(jié)果作一些輔助說明:</p><p>  特例:當(dāng)時(shí) (2-4)</p>

56、<p>  以下進(jìn)行代入數(shù)據(jù)的具體的分析:</p><p>  于是對(duì)于將圖3-6與圖3-7及連在一起時(shí),波形輸出與調(diào)節(jié)部分的理論計(jì)算。</p><p>  當(dāng)單片機(jī)分別向DAC0832(1)和DAC0832(2)輸入數(shù)據(jù)和時(shí)</p><p><b> ?。?-5)</b></p><p><b>

57、 ?。?-6)</b></p><p>  其中,,代入以上各式,得</p><p><b> ?。?-7)</b></p><p>  或者 (2-8)</p><p>  由(2-7)式可知,當(dāng)在 0~255 之間變化時(shí),可在~之間</p>&l

58、t;p>  變化,即輸出信號(hào)的峰峰值可由控制。</p><p>  該電路由102電位器串接2個(gè)1電阻實(shí)現(xiàn)調(diào)節(jié)直流偏移,電位器觸頭在最右端和最左端時(shí),電位器輸出的電壓分別為-5v和+5v,電位器的電壓與通過一個(gè)加法器后,實(shí)現(xiàn)直流偏移的調(diào)節(jié)。</p><p>  2.4.2 波形產(chǎn)生相關(guān)理論</p><p>  DAC0832是8位的D/A轉(zhuǎn)換器件,其工作電壓是

59、0—5V,當(dāng)輸入00數(shù)字量的時(shí)候,輸出為0V電壓;當(dāng)輸入80數(shù)字量的時(shí)候,輸出為2.5V電壓;當(dāng)輸入FF數(shù)字量的時(shí)候,輸出為5V電壓。單片機(jī)的I/O輸出均為+5 V的TTL電平,因此產(chǎn)生的正弦波幅值為+2.5 V。將一個(gè)周期內(nèi)的正弦波形等分為256份,那么第1點(diǎn)的角度為0°,對(duì)應(yīng)的正弦值為2.5sin0°;第2點(diǎn)的角度為360°/256,對(duì)應(yīng)的正弦值為2.5sin (360°/256 ) ……,如

60、此計(jì)算下去,將這些模擬量正弦值都轉(zhuǎn)換為單極性方式下的數(shù)字量,得到一張按照點(diǎn)號(hào)順序排列的正弦波波形數(shù)據(jù)表。而每次送到74LS373的八位數(shù)字量是根據(jù)查正弦波形數(shù)據(jù)表格而得到。</p><p>  其實(shí)在計(jì)算正弦波形數(shù)據(jù)的時(shí)候,并不需要算出整個(gè)0—2π區(qū)間的每一個(gè)值,而只需計(jì)算出0—π中的值就行,其他區(qū)間的值都可以通過對(duì)0—π中的值取不同的變換。比如π—π的值可以和0—π值一一對(duì)應(yīng),而π—2π的值可以對(duì)0—π區(qū)間的值

61、取反得到。計(jì)算值可以用C語言編程得到。</p><p>  幅度公式為Y=2.5[1+sin()] (N=0,1,2……64)</p><p>  相應(yīng)的Y值數(shù)字化后的遞增量δ=≈0.0196</p><p>  那么每一個(gè)點(diǎn)相對(duì)于起一個(gè)點(diǎn)的遞增率為A= (Y2當(dāng)前的點(diǎn),Y1為前一個(gè)點(diǎn))</p><p>  所以每一個(gè)點(diǎn)的數(shù)字量與遞增率A成

62、一一對(duì)應(yīng)關(guān)系。</p><p>  2.5 單片機(jī)軟件開發(fā)系統(tǒng)</p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面

63、。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。</p><p>  Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)    C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE

64、),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別</p><p>  由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器

65、使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng), 使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision4 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。 &l

66、t;/p><p>  第二部分 uVision4集成開發(fā)環(huán)境 </p><p><b>  項(xiàng)目管理 </b></p><p>  工程(project)是由源文件、開發(fā)工具選項(xiàng)以及編程說明三部分組成的。 </p><p>  一個(gè)單一的uVision4工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組”。開發(fā)工具

67、選項(xiàng)可以對(duì)應(yīng)目標(biāo),組或單個(gè)文件。 </p><p>  uVision4包含一個(gè)器件數(shù)據(jù)庫(device database),可以自動(dòng)設(shè)置匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來滿足用戶充分利用特定 微控制器的要求。此數(shù)據(jù)庫包含:片上存儲(chǔ)器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extra data pointer)或者加速器(math accelerator)的特 性。</p><p>  u

68、Vision4可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模。</p><p>  第三部分編輯器和調(diào)試器 </p><p><b>  一、源代碼編輯器 </b></p><p>  uVision4編輯器包含了所有用戶熟悉的特性。彩色語法顯像和文件辯識(shí)都對(duì)C源代碼進(jìn)行和優(yōu)化??梢栽诰庉嬈鲀?nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更

69、快速地檢查和修改程序。 </p><p><b>  二、斷點(diǎn) </b></p><p>  uVision4允許用戶在編輯時(shí)設(shè)置程序斷點(diǎn)(甚至在源代碼未經(jīng)編譯和匯編之前)。用戶啟動(dòng)V2調(diào)試器之后,斷點(diǎn)即被激活。斷點(diǎn)可設(shè)置為條件表達(dá)式,變量或存儲(chǔ)器訪問,斷點(diǎn)被觸發(fā)后,調(diào)試器命令或調(diào)試功能即可執(zhí)行。 </p><p>  在屬性框(attribu

70、tes column)中可以快速瀏覽斷點(diǎn)設(shè)置情況和源程序行的位置。代碼覆蓋率信息可以讓你區(qū)分程序中已執(zhí)行和未執(zhí)行的部分。 </p><p><b>  三、調(diào)試函數(shù)語言 </b></p><p>  uVision4中,你可以編寫或使用類似C的數(shù)語言進(jìn)行調(diào)試。 </p><p>  1.內(nèi)部函數(shù):如printf, memset, rand及其它

71、功能的函數(shù)。 </p><p>  2.信號(hào)函數(shù):模擬產(chǎn)生CPU的模擬信號(hào)和脈沖信號(hào)(simulate analog and digital inputs to CPU)。 </p><p>  3.用戶函數(shù):擴(kuò)展指令范圍,合并重復(fù)動(dòng)作。</p><p>  3 系統(tǒng)硬件電路的設(shè)計(jì)</p><p>  3.1 單片機(jī)最小系統(tǒng)</p>

72、;<p>  單片機(jī)最小系統(tǒng)如圖3-1</p><p>  圖 3-1 單片機(jī)最小系統(tǒng)</p><p>  對(duì)圖3-1說明如下:</p><p><b>  單片機(jī)晶振電路</b></p><p>  單片機(jī)外圍的晶振電路是通過單片機(jī)的第18(XTAL1),19(XTAL2)引腳接入,XTAL1:振蕩器

73、反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。</p><p>  對(duì)于STC11CF01一般的晶振頻率可以在12MHz—35MHz之間選擇,這時(shí)電容C可以對(duì)應(yīng)的選擇10pF—30pF。對(duì)于本設(shè)計(jì)的電容C用30pF,晶振選用35MHz。晶振電路解法圖3-1,一條引腳接在XTAL1,另一條接在XTAL2。</p><p><b>  單片機(jī)的復(fù)位電路&

74、lt;/b></p><p>  RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。為了防止程序執(zhí)行過程中失步或運(yùn)行紊亂,此處我們采用了上電復(fù)位及手動(dòng)復(fù)位電路,</p><p> ?。?)/VPP

75、:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接收12伏VPP電壓。</p><p>  (4)ALE/:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來作為外

76、部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。</p><p>  3.2 單片機(jī)的接口電路</p>&l

77、t;p> ?。?)ZLG7289芯片引腳介紹</p><p>  1-2 VDD 正電源</p><p><b>  3 5 NC 懸空</b></p><p><b>  4 VSS 接地</b></p><p>  6 CS 片選輸入端此引腳為低電平時(shí)可向芯片發(fā)送指令及讀取鍵盤數(shù)據(jù)<

78、/p><p>  7 CLK 同步時(shí)鐘輸入端向芯片發(fā)送數(shù)據(jù)及讀取鍵盤數(shù)據(jù)時(shí)此引腳電平上</p><p><b>  升沿表示數(shù)據(jù)有效</b></p><p>  8 DATA 串行數(shù)據(jù)輸入/輸出端當(dāng)芯片接收指令時(shí)此引腳為輸入端當(dāng)讀取</p><p>  鍵盤數(shù)據(jù)時(shí)此引腳在讀指令最后一個(gè)時(shí)鐘的下降沿變?yōu)檩敵龆?lt;/p>

79、;<p>  9 KEY 按鍵有效輸出端平時(shí)為高電平當(dāng)檢測(cè)到有效按鍵時(shí)此引腳變?yōu)榈碗娖?lt;/p><p>  10-16 SG-SA 段g—段a 驅(qū)動(dòng)輸出</p><p>  17 DP 小數(shù)點(diǎn)驅(qū)動(dòng)輸出</p><p>  18-25 DIG0-DIG7數(shù)字0 數(shù)字7 驅(qū)動(dòng)輸出</p><p>  26 OSC2 振蕩器輸出端 &

80、lt;/p><p>  27 OSC1 振蕩器輸入端</p><p><b>  28 RESET</b></p><p>  zlg7289A 的指令結(jié)構(gòu)有三種類型1.不帶數(shù)據(jù)的純指令指令的寬度為8 個(gè)BIT 即微處理器需發(fā)送8 個(gè)CLK 脈沖2.帶有數(shù)據(jù)的指令寬度為16 個(gè)BIT 即微處理器需發(fā)送16 個(gè)CLK 脈沖3.讀取鍵盤數(shù)據(jù)指令寬度為1

81、6 個(gè)BIT 前8 個(gè)為微處理器發(fā)送到zlg7289A 的指令后8 個(gè)BIT 為zlg7289A 返回的鍵盤代碼執(zhí)行此指令時(shí)zlg7289A 的DATA 端在第9 個(gè)CLK 脈沖的上升沿變?yōu)檩敵鰻顟B(tài)并與第16 個(gè)脈沖的下降沿恢復(fù)為輸入狀態(tài)等待接收下一個(gè)指令</p><p>  串行接口的時(shí)序如下圖:</p><p><b>  純指令:</b></p>

82、<p>  圖3-2 純指令時(shí)序圖</p><p><b>  帶數(shù)據(jù)指令:</b></p><p>  圖3-2 帶數(shù)據(jù)指令時(shí)序圖</p><p><b>  讀鍵盤指令:</b></p><p>  圖3-3 讀鍵盤指令時(shí)序圖</p><p>  (2

83、)ZLG7289的接口電路圖如圖3-4所示。</p><p>  zlg7289A應(yīng)連接共陰式數(shù)碼管應(yīng)用中無需用到的數(shù)碼管和鍵盤可以不連接省去數(shù)碼管和對(duì)數(shù)碼管設(shè)置消隱屬性均不會(huì)影響鍵盤的使用如果不用鍵盤則典型電路中連接到鍵盤的8只10K電阻和8只100K下拉電阻均可以省去如果使用了鍵盤則電路中的8只10K電阻和8只100K 下拉電阻均不得省略除非不接數(shù)碼管否則串入DP 及SA-SG 連線的8 只電阻均不能省去實(shí)際

84、應(yīng)用中8只下拉電阻和8只鍵盤連接位選線DIG0-DIG7的8只電阻位選電阻應(yīng)遵從一定的比例關(guān)系下拉電阻應(yīng)大于位選電阻的5倍而小于其50倍典型值為10倍下拉電阻的取值范圍是10K-100K位選電阻的取值范圍是1K-10K在不影響顯示的前提下下拉電阻應(yīng)盡可能的取較小的值這樣可以提高鍵盤部分的抗干擾能力因?yàn)椴捎醚h(huán)掃描的工作方式如果采用普通的數(shù)碼管亮度有可能不夠采用高亮或超高亮的型號(hào)可以解決這個(gè)問題數(shù)碼管的尺寸也不宜選的過大一般字符高度不超過

85、1 英寸如使用大型的數(shù)碼管應(yīng)使用適當(dāng)?shù)尿?qū)動(dòng)電路zlg7289A 需要一外接晶體振蕩電路供系統(tǒng)工作其典型值分別為F=16MHz C=15P如果芯片無法正常工作請(qǐng)首先檢查此振蕩電路在印刷電路板布線時(shí)所有元件尤其是振</p><p>  zlg7289A 將輸出所按下鍵的代碼鍵盤代碼的定義中代碼以10進(jìn)制表示如果在沒有按鍵的情況下收到讀鍵盤指令zlg7289A 將輸出0FFH 255程序中盡可能地減少CPU 對(duì)zlg7

86、289A 的訪問次數(shù)可以使得程序更有效率因?yàn)樾酒苯域?qū)動(dòng)LED 數(shù)碼管顯示電流較大且為動(dòng)態(tài)掃描方式故如果該部分電路電源連線較細(xì)較長(zhǎng)可能會(huì)引入較大的電源噪聲干擾在電源的正負(fù)極并入一47U 到220U的電容可以提高電路抗干擾的能力注意如果有2 個(gè)鍵同時(shí)按下zlg7289A 將只能給出其中一個(gè)鍵的代碼因此zlg7289A不適于應(yīng)用在需要2 個(gè)或2 個(gè)以上鍵同時(shí)按下的場(chǎng)合。</p><p>  圖 3-4 單片機(jī)與Z

87、LG7289連接電路</p><p>  3.3 幅度控制模塊</p><p>  3.3.1 單片機(jī)與DAC0832的接口</p><p>  由于D/A轉(zhuǎn)換器與單片機(jī)連接時(shí),單片機(jī)是靠指令輸出數(shù)字量供數(shù)模轉(zhuǎn)換之用,而指令送出的數(shù)據(jù)在數(shù)據(jù)總線上的時(shí)間是短暫的,所以在DAC和單片機(jī)之間,需要有數(shù)據(jù)寄存器來保持單片機(jī)計(jì)算機(jī)輸出的數(shù)據(jù),供DAC轉(zhuǎn)換使用。目前生產(chǎn)的DAC

88、芯片分為兩類,一類芯片內(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)部具有兩級(jí)數(shù)據(jù)寄存器,完成8位電流D/A轉(zhuǎn)換。故不需要外加電路。因此單片機(jī)與DAC0832連接方式如圖3-5</p><p>  圖 3-

89、5 D/A接線圖</p><p>  3.3. 2DAC0832與運(yùn)放的連接</p><p>  1. 在本設(shè)計(jì)中的運(yùn)放的連接方式第一部分如圖3-6</p><p>  圖 3-6 三運(yùn)放連接圖</p><p>  上圖3-5中的三個(gè)運(yùn)放實(shí)現(xiàn)的功能分為:U6作為一個(gè)反向比例器,U5也是一個(gè)反向比例器,然而U4作為一個(gè)加法器,其理論的計(jì)

90、算分析見第二章的第四節(jié)電路計(jì)算分析。實(shí)際上Uout3的輸出結(jié)果為Uout1與Uout2的和。</p><p>  2. 本設(shè)計(jì)中的運(yùn)放的連接的第二部分如圖3-7</p><p>  圖 3-7 直流偏移調(diào)節(jié)運(yùn)放連接圖 </p><p>  該電路由102電位器串接2個(gè)1電阻實(shí)現(xiàn)調(diào)節(jié)直流偏移,電位器觸頭在最右端和最左端時(shí),電位器輸出的電壓分別為-5v和+5v,電位

91、器的電壓與通過一個(gè)加法器后,實(shí)現(xiàn)直流偏移的調(diào)節(jié)。</p><p>  2.電路性能指標(biāo)分析</p><p>  用于調(diào)壓的DAC0832的參考電壓是12V,所以,峰峰值可以調(diào)節(jié)到的最大值為12V,由于運(yùn)放的電源均為12V,故均未達(dá)到飽和。</p><p>  通過1電位器與兩個(gè)1的電阻進(jìn)行直流偏移的調(diào)節(jié)。當(dāng)電位器的滑動(dòng)觸頭分別位于最右端與最左端時(shí),輸出電壓分別為-5

92、v和+5v,電位器的電壓與輸出的電壓通過一個(gè)加法器實(shí)現(xiàn)直流偏移的調(diào)節(jié)。</p><p>  由于DAC0832存在的非線性,輸出信號(hào)的幅值存在一定的誤差。</p><p>  由上述計(jì)算可知,該電路產(chǎn)生波形的峰峰值和直流偏移調(diào)節(jié)的范圍達(dá)到并超過了題目要求的范圍。</p><p><b>  4 系統(tǒng)軟件設(shè)計(jì)</b></p><

93、;p>  4.1 系統(tǒng)軟件設(shè)計(jì)方案</p><p>  51單片機(jī)系列的編程語言常用的有兩種,一種是匯編語言,一種是C語言。</p><p>  匯編語言,是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言。匯編語言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具有如下一些優(yōu)點(diǎn):(1)能夠直接訪問與硬件相關(guān)的存儲(chǔ)器或I/O端口;(2)能夠不受編譯器的限制,對(duì)生

94、成的二進(jìn)制代碼進(jìn)行完全的控制;(3)能夠?qū)﹃P(guān)鍵代碼進(jìn)行更準(zhǔn)確的控制,避免因線程共同訪問或者硬件設(shè)備共享引起的死鎖;(4)能夠根據(jù)特定的應(yīng)用對(duì)代碼做最佳的優(yōu)化,提高運(yùn)行速度;(5)能夠最大限度地發(fā)揮硬件的功能。同時(shí)還應(yīng)該認(rèn)識(shí)到,匯編語言是一種層次非常低的語言,它僅僅高于直接手工編寫二進(jìn)制的機(jī)器指令碼,因此不可避免地存在一些缺點(diǎn):(1)編寫的代碼非常難懂,不好維護(hù);(2)很容易產(chǎn)生bug,難于調(diào)試;(3)只能針對(duì)特定的體系結(jié)構(gòu)和處理器進(jìn)行優(yōu)

95、化;(4)開發(fā)效率很低,時(shí)間長(zhǎng)且單調(diào)。</p><p>  C語言,是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。它具有如下優(yōu)點(diǎn):(1)簡(jiǎn)潔緊湊、靈活方便;(2)運(yùn)算符豐

96、富;(3)數(shù)據(jù)結(jié)構(gòu)豐富;(4)C是結(jié)構(gòu)式語言;(5)C語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大;(6)C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作;(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;(8)C語言適用范圍大,可移植性好。</p><p>  匯編語言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C語言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過匯編語言

97、,而且C語言還可以嵌入?yún)R編來解決高時(shí)效性的代碼編寫問題。對(duì)于開發(fā)周期來說,中大型的軟件編寫用C語言的開發(fā)周期通常要小于匯編語言很多。綜合以上C語言的優(yōu)點(diǎn),函數(shù)發(fā)生器系統(tǒng)的軟件部分由C語言設(shè)計(jì)編程實(shí)現(xiàn)。</p><p>  4.2 系統(tǒng)軟件流程圖</p><p>  系統(tǒng)軟件是由若干子程序構(gòu)成,包括主程序、顯示子程序、各模式子程序等等。主程序的流程圖如圖4-1所示</p>&l

98、t;p>  2.鍵盤輸入的流程圖如圖4-2</p><p>  4.3 信號(hào)產(chǎn)生程序</p><p>  本設(shè)計(jì)將各種波形的數(shù)據(jù)固定在單片機(jī)的程序存儲(chǔ)器里,通過改變這些數(shù)據(jù)的輸出速度來改變信號(hào)的頻率,然后通過改變D/A轉(zhuǎn)換器的參考點(diǎn)要來改變信號(hào)的峰峰值,電路較為簡(jiǎn)單,成本較低。</p><p>  4.3.1 正弦波產(chǎn)生</p><p>

99、;  方法一:首先在單片機(jī)的存儲(chǔ)器中存入正弦波的點(diǎn)數(shù),通過輸出的兩點(diǎn)間的延時(shí)來實(shí)現(xiàn)調(diào)頻的功能。我們通過兩個(gè)機(jī)器周期的語句作為調(diào)頻的最小時(shí)間單位,通過循環(huán)次數(shù)來控制時(shí)間,假設(shè)波形點(diǎn)數(shù)為n,輸入頻率為f,每個(gè)頻段的最小分辨率為x。</p><p>  方法二:直接輸入計(jì)算式方法。</p><p><b>  程序如下:</b></p><p>  

100、zhengxianbo()</p><p><b>  {</b></p><p><b>  int x,y;</b></p><p><b>  while(1)</b></p><p>  {for(x=0;x<128;x++)</p><p&

101、gt;<b>  {</b></p><p>  y=59*sin(2*3.1415926*x/128)+128;</p><p>  DA0832A = y;</p><p><b>  }</b></p><p><b>  }</b></p><p&

102、gt;<b>  }</b></p><p>  4.3.2 三角波產(chǎn)生</p><p>  1.產(chǎn)生三角波的原理</p><p>  設(shè)個(gè)自變量i讓它不斷地自加1,直到加到255時(shí),t=i ,對(duì)t進(jìn)行不斷地自減一直到減到t=0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生三角波。</p><p>  2.程序流程圖見圖4-3<

103、;/p><p>  圖4-3 三角波流程圖</p><p>  void sanjiaobo()</p><p><b>  {</b></p><p>  uchar i = 1,temp=0x00;</p><p><b>  while(1)</b></p>

104、;<p><b>  {</b></p><p>  DA0832A=temp;</p><p><b>  temp+=i;</b></p><p>  if(temp==0xc0||temp==0x00)</p><p><b>  i=0-i;</b>&l

105、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.2 方波產(chǎn)生</p><p><b>  1.產(chǎn)生方波的原理</b></p><p>  設(shè)個(gè)自變量i=0使之延時(shí)一段時(shí)間,再另i=255時(shí)在延時(shí)與

106、i=0相同的時(shí)間,然后在重復(fù)上述過程。假設(shè)延時(shí)為T。</p><p>  2.方波流程圖見圖4-4</p><p>  圖4-4 方波流程圖</p><p><b>  3.程序</b></p><p><b>  fangbo()</b></p><p><b>

107、;  {</b></p><p><b>  uchar i;</b></p><p><b>  CS=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><

108、;p>  if(i<0x7f)</p><p>  DA0832A=0x00;</p><p>  if(i>=0x7f)</p><p>  DA0832A=0xff;</p><p><b>  i++;</b></p><p>  if(i==0xff)</p>

109、<p><b>  i=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.4 鋸齒波的產(chǎn)生</p><p>  1.產(chǎn)生鋸齒波的原理</p><p>  鋸齒波中的斜線

110、用一個(gè)個(gè)小臺(tái)階來逼近,在一個(gè)周期內(nèi)從最小值開始逐步遞增,當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺(tái)階間隔很小時(shí),波形基本上近似于直線。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來產(chǎn)生鋸齒波,設(shè)個(gè)自變量i讓它不斷地自加1,直到加到255,DAC0832可以又自動(dòng)歸0,然后再不斷地重復(fù)上述過程進(jìn)而產(chǎn)生鋸齒波。</p><p><b> 

111、 3.程序</b></p><p><b>  juchi()</b></p><p><b>  {</b></p><p>  uchar temp=0x00;</p><p><b>  while(1)</b></p><p>&l

112、t;b>  {</b></p><p>  DA0832A=temp++;</p><p>  if(temp==0xc0)</p><p><b>  temp=0;</b></p><p><b>  }</b></p><p><b>  

113、}</b></p><p><b>  5 系統(tǒng)調(diào)試與測(cè)試</b></p><p><b>  5.1 調(diào)試</b></p><p>  簡(jiǎn)單系統(tǒng)硬件的調(diào)試通常采用載入簡(jiǎn)單的測(cè)試程序并運(yùn)行,使用數(shù)字表或示波器觀察;對(duì)有些硬件例如顯示器、鍵盤等可直接編入程序觀察程序執(zhí)行狀態(tài)。</p><p&g

114、t;  1.上電復(fù)位后用示波器觀察晶振或ALE是否有波形輸出。如有表明單片機(jī)已激活。用示波器觀察晶振波形如圖5-1所示。</p><p>  圖5-1 晶振波形</p><p><b>  2.按鍵的調(diào)試</b></p><p>  對(duì)于新給定的一個(gè)ZLG7289及鍵盤是,我們應(yīng)當(dāng)首先確定每個(gè)按鍵的鍵值,只有當(dāng)我們確定鍵之后,才可以對(duì)我們所要

115、設(shè)置的按鍵的功能通過真正做到使軟硬件相結(jié)合在一起,實(shí)現(xiàn)我們的目標(biāo)功能,真是我們可以利用系統(tǒng)的顯示部分也即就是系統(tǒng)的LED,我們通過假設(shè)法使出本系統(tǒng)的鍵值。一般對(duì)于設(shè)計(jì)心得系統(tǒng)我們都可以采用這種方法,因?yàn)楝F(xiàn)在是人性化社會(huì)每個(gè)設(shè)計(jì)都有自己的特色,在設(shè)計(jì)中我們的充分利用系統(tǒng)為我們所提供的一些顯而易見的東西來完成我們所打算實(shí)現(xiàn)的功能。</p><p>  對(duì)于十六個(gè)按鍵及功能介紹見表5-1</p><

116、p>  表 5-1 按鍵功能表</p><p>  通過仿真器對(duì)系統(tǒng)進(jìn)行調(diào)試,使用調(diào)試軟件為KeilC51,軟件版本為μVision4。系統(tǒng)上電運(yùn)行后,第1次按下波形切換鍵K14,再按下確認(rèn)件K16,從示波器上觀察結(jié)果如圖5-3</p><p>  圖 5-3 正弦波</p><p>  第2次按下K14按確定K16后從示波器觀察圖形如圖5-4</

117、p><p>  圖 5-4 方波</p><p>  第3次按下K14按確定K16后從示波器觀察圖形如圖5-5</p><p>  圖 5-5 鋸齒波</p><p>  第3次按下K14按確定K16后從示波器觀察圖形如圖5-6</p><p>  圖 5-6 三角波</p><p>  

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論