波形發(fā)生器畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  0 引言</b></p><p>  波形隨著電子測(cè)量及其他部門對(duì)各類信號(hào)發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號(hào)發(fā)生器種類增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號(hào)發(fā)生器向著自動(dòng)化、智能化方向發(fā)展?,F(xiàn)在,許多信號(hào)發(fā)生器帶有微處理器,因而具備了自校、自檢、自和智能化方向發(fā)展。但市面上能看到的儀器在頻率精度、帶寬、波形種類及程控方面都已不能滿

2、足許多方面實(shí)際應(yīng)用的需求。加之各類功能的半導(dǎo)體集成芯片的快動(dòng)故障診斷和自動(dòng)波形形成和修正等功能,可以和控制計(jì)算機(jī)及其他測(cè)量?jī)x器一起方便的構(gòu)成自動(dòng)測(cè)試系統(tǒng)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的RC很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,損耗顯著更是致命的弱點(diǎn)。一旦工作需求功能有增加

3、,則電路復(fù)雜程度會(huì)大大增加。隨著集成電路的迅速發(fā)展,用集成電路可很方便地構(gòu)成各種信號(hào)波形發(fā)生器。用集成電路實(shí)現(xiàn)的信號(hào)波形發(fā)生器與其它信號(hào)波形發(fā)生器相比,其波形質(zhì)量、幅度和頻率穩(wěn)定性等性能指標(biāo),都有了很大的提高。</p><p>  當(dāng)前信號(hào)發(fā)生器總的趨勢(shì)是向著寬頻率覆蓋、低功耗、高頻率精度、多功能、自動(dòng)化速生產(chǎn),都使我們研制一種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號(hào)發(fā)生器成為可能。</p>

4、;<p>  在 70 年代前,信號(hào)發(fā)生器主要有兩類:正弦波和脈沖波,而函數(shù)發(fā)生器介于兩類之間,能夠提供正弦波、余弦波、方波、三角波、上弦波等幾種常用標(biāo)準(zhǔn)波形,產(chǎn)生其它波形時(shí),需要采用較復(fù)雜的電路和機(jī)電結(jié)合的方法。這個(gè)時(shí)期的波形發(fā)生器多采用模擬電子技術(shù),而且模擬器件構(gòu)成的電路存在著尺寸大、價(jià)格貴、功耗大等缺點(diǎn),并且要產(chǎn)生較為復(fù)雜的信號(hào)波形,則電路結(jié)構(gòu)非常復(fù)雜。同時(shí),主要表現(xiàn)為兩個(gè)突出問(wèn)題,一是通過(guò)電位器的調(diào)節(jié)來(lái)實(shí)現(xiàn)輸出頻率

5、的調(diào)節(jié),因此很難將頻率調(diào)到某一固定值;二是脈沖的占空比不可調(diào)節(jié)。在 70 年代后,微處理器的出現(xiàn),可以利用處理器、A/D/和 D/A,硬件和軟件使波形發(fā)生器的功能擴(kuò)大,產(chǎn)生更加復(fù)雜的波形。這時(shí)期的波形發(fā)生器多以軟件為主,實(shí)質(zhì)是采用微處理器對(duì) DAC的程序控制,就可以得到各種簡(jiǎn)單的波形。 90 年代末,出現(xiàn)幾種真正高性能、高價(jià)格的函數(shù)發(fā)生器、但是HP公司推出了型號(hào)為 HP770S的信號(hào)模擬裝置系統(tǒng),它由 HP8770A任意波形數(shù)字化和 H

6、P1776A波形發(fā)生軟件組成。HP8770A實(shí)際上也只能產(chǎn)生8 種波形,而且價(jià)格昂貴。不久以后,Analogic公司推出了型號(hào)為 Data-2020</p><p>  早在 1978 年,由美國(guó) Wavetek 公司和日本東亞電波工業(yè)公司公布了最高取樣頻率為 5MHz ,可以形成 256 點(diǎn)(存儲(chǔ)長(zhǎng)度)波形數(shù)據(jù),垂直分辨率為8bit,主要用于振動(dòng)、醫(yī)療、材料等領(lǐng)域的第一代高性能信號(hào)源,經(jīng)過(guò)將近30年的發(fā)展,伴隨

7、著電子元器件、電路、及生產(chǎn)設(shè)備的高速化、高集成化,波形發(fā)生器的性能有了飛速的提高。變得操作越來(lái)越簡(jiǎn)單而輸出波形的能力越來(lái)越強(qiáng)。波形操作方法的好壞,是由波形發(fā)生器控制軟件質(zhì)量保證的,編輯功能增加的越多,波形形成的操作性越好。 </p><p>  以下給出了幾種波形發(fā)生器的性能指標(biāo),從中可以看出當(dāng)今世界上重要電子儀器生產(chǎn)商在波形發(fā)生器上的研制水平。Tektronix公司的AWG710型,主要技術(shù)指標(biāo): 通道數(shù):2,

8、 每通道的最高采樣速率:4GMS/s ,垂直分辨力:8比特,儲(chǔ)存容量:8M;橫河電機(jī)公司的AG5100型,通道數(shù):2, 每通道的最高采樣速率: 1GMS/s ,垂直分辨力:8比特,儲(chǔ)存容量:8M;普源公司的DG3121型,通道數(shù): 2, 每通道的最高采樣速率:300MS/s ,垂直分辨力:14比特,儲(chǔ)存容量:1M。從中不難看出,經(jīng)過(guò)將近30年的發(fā)展,伴隨著電子元器件、電路、及生產(chǎn)設(shè)備的高速化、高集成化,波形發(fā)生器的性能有了飛速的提高。變

9、得操作越來(lái)越簡(jiǎn)單而輸出波形的能力越來(lái)越強(qiáng)。就目前國(guó)內(nèi)的成熟產(chǎn)品來(lái)看,我國(guó)目前在波形發(fā)生器的種類和性能差距正在逐漸地縮小。</p><p>  1設(shè)計(jì)要求及方案論證</p><p>  依據(jù)應(yīng)用場(chǎng)合,需要實(shí)現(xiàn)的波形種類,波形發(fā)生器的具體指標(biāo)要求會(huì)有所不同。依據(jù)不同的設(shè)計(jì)要求選取不同的設(shè)計(jì)方案,通常,波形發(fā)生器需要實(shí)現(xiàn)的波形有正弦波、方波、三角波和鋸齒波。有些場(chǎng)合可能還需要任意波形的產(chǎn)生。各種

10、波形共有的指標(biāo)有:波形的頻率、幅度要求,頻率穩(wěn)定度,準(zhǔn)確度等。對(duì)于不同波形,具體的指標(biāo)要求也會(huì)有所差異,例如,占空比是脈沖波形特有的指標(biāo)。波形發(fā)生器的設(shè)計(jì)方案多種多樣,大致可以分為三大類:純硬件設(shè)計(jì)法、純軟件設(shè)計(jì)法和軟硬件結(jié)合設(shè)計(jì)法。</p><p><b>  1.1設(shè)計(jì)要求</b></p><p>  設(shè)計(jì)制作一個(gè)波形發(fā)生器,該波形發(fā)生器能產(chǎn)生正弦波、方波、三角波

11、和由用戶編輯的特定形狀波形。要求如下所示</p><p> ?。?)具有產(chǎn)生正弦波、方波、三角波三種周期性波形的功能。(2)用鍵盤輸入編輯生成上述三種波形(同周期)的線性組合波形,以及由基波及其諧波(5次以下)線性組合的波形。(3)具有波形存儲(chǔ)功能。(4)輸出波形的頻率范圍為100Hz~20kHz(非正弦波頻率按10次諧波計(jì)算);重復(fù)頻率可調(diào),頻率步進(jìn)間隔≤100Hz。(5)輸出波形幅度范圍0~5V(峰-

12、峰值),可按步進(jìn)0.1V(峰-峰值)調(diào)整。(6)具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能。</p><p><b>  1.2 方案論證</b></p><p>  方案一:波形發(fā)生器設(shè)計(jì)的純硬件法早期,波形發(fā)生器的設(shè)計(jì)主要是采用運(yùn)算放大器加分立元件來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)的波形比較單一,主要為正弦波、方波和三角波。工作原理嗍也相對(duì)簡(jiǎn)單:首先是產(chǎn)生正弦波,然后通過(guò)波

13、形變換(正弦波通過(guò)比較器產(chǎn)生方波,方波經(jīng)過(guò)積分器變?yōu)槿遣?實(shí)現(xiàn)方波和三角波。在各種波形后加上一級(jí)放大電路,可以使輸出波形的幅度達(dá)到要求,通過(guò)開(kāi)關(guān)電路實(shí)現(xiàn)不同輸出波形的切換,改變電路的具體參數(shù)可以實(shí)現(xiàn)頻率、幅度和占空比的改變。通過(guò)對(duì)電路結(jié)構(gòu)的優(yōu)化及所用元器件的嚴(yán)格選取可以提高電路的頻率穩(wěn)定性和準(zhǔn)確度。純硬件法中,正弦波的設(shè)計(jì)是基礎(chǔ),實(shí)現(xiàn)方法也比較多,電路形式一般有LC、RC和石英晶體振蕩器三類。LC振蕩器適宜于產(chǎn)生幾Hz至幾百M(fèi)Hz的高

14、頻信號(hào);石英晶體振蕩器能產(chǎn)生幾百kHz至幾十MHz的高頻信號(hào)且穩(wěn)定度高;對(duì)于頻率低于幾MHz,特別是在幾百Hz時(shí),常采用RC振蕩電路。RC振蕩電路又分為文氏橋振蕩電路、雙T網(wǎng)絡(luò)式和移相式振蕩電路等類型。其中,以文氏橋振蕩電路最為常用。目前,實(shí)現(xiàn)波形發(fā)生器最簡(jiǎn)單的方法是采用單片集成的函數(shù)信號(hào)發(fā)生器。它是將產(chǎn)生各種波形的功能電路集成優(yōu)化到一個(gè)集成電路芯片里,外加少量的電阻</p><p><b>  圖1方

15、案一基本框圖</b></p><p>  方案二:波形發(fā)生器設(shè)計(jì)的純軟件法 波形發(fā)生器的設(shè)計(jì)還可以采用純軟件的方法來(lái)實(shí)現(xiàn)。虛擬儀器鞠使傳統(tǒng)儀器發(fā)生了革命性的變化,是21世紀(jì)測(cè)試儀器領(lǐng)域技術(shù)發(fā)展的重要方向。它以計(jì)算機(jī)為基礎(chǔ),軟件為核心,沒(méi)有傳統(tǒng)儀器那樣具體的物理結(jié)構(gòu).在計(jì)算機(jī)上實(shí)現(xiàn)儀器的虛擬面板,通過(guò)軟件設(shè)計(jì)實(shí)現(xiàn)和改變儀器的功能。例如用圖形化編程工具LabVIEW來(lái)實(shí)現(xiàn)任意波形發(fā)生器的功能:在LabVI

16、EW軟件的前面板通過(guò)拖放控件,設(shè)計(jì)儀器的功能面板(如波形顯示窗口,波形選擇按鍵,波形存儲(chǔ)回放等工作界面),在軟件的后面板直接拖放相應(yīng)的波形函數(shù)并進(jìn)行參數(shù)設(shè)置或直接調(diào)用編程函數(shù)來(lái)設(shè)計(jì)任意波形以實(shí)現(xiàn)波形產(chǎn)生功能;完成的軟件打包后,可脫離編程環(huán)境獨(dú)立運(yùn)行。實(shí)現(xiàn)任意波形發(fā)生器的功能。采用純軟件的虛擬儀器設(shè)計(jì)思路可以使設(shè)計(jì)簡(jiǎn)單、高效,僅改變軟件程序就可以輕松實(shí)現(xiàn)波形功能的改變或升級(jí)。從長(zhǎng)遠(yuǎn)角度來(lái)看,純軟件法成本較低。軟件法的缺點(diǎn)是波形的響應(yīng)速度和

17、精度遜色于硬件法,方案二基本框圖如圖2所示。</p><p><b>  圖2方案二基本框圖</b></p><p>  方案三:軟硬件結(jié)合法軟硬件結(jié)合的波形發(fā)生器設(shè)計(jì)方法同時(shí)兼具軟硬件設(shè)計(jì)的優(yōu)勢(shì):既具有純硬件設(shè)計(jì)的快速、高性能,同時(shí)又具有軟件控制的靈活性、智能性。如以單片機(jī)和單片集成函數(shù)發(fā)生器為核心。輔以鍵盤控制、液晶顯示等電路,設(shè)計(jì)出智能型函數(shù)波形發(fā)生器,采用軟硬

18、件結(jié)合的方法可以實(shí)現(xiàn)功能較全、性能更優(yōu)的波形發(fā)生器,同時(shí)還可以擴(kuò)展波形發(fā)生器的功能,比如通過(guò)軟件編程控制實(shí)現(xiàn)波形的存儲(chǔ)、運(yùn)算、打印等功能,采用USB接口設(shè)計(jì),使波形發(fā)生器具有遠(yuǎn)程通信功能等。目前,實(shí)驗(yàn)、科研和工業(yè)生產(chǎn)中使用的信號(hào)源大多采用此方法來(lái)實(shí)現(xiàn)。</p><p>  綜合考慮,純硬件設(shè)計(jì)法功能較單一,波形改變困難、控制的靈活性不夠,不具備智能性,其中由運(yùn)算放大器加分立元件組成的波形發(fā)生器,除在學(xué)生實(shí)驗(yàn)訓(xùn)練中

19、使用外,基本不被采用。純軟件設(shè)計(jì)法實(shí)現(xiàn)簡(jiǎn)單,程序改變及功能升級(jí)靈活,但實(shí)現(xiàn)的波形精度及響應(yīng)速度不如硬件法高。純軟件法主要適用于對(duì)波形精度、響應(yīng)速度要求不是很高的場(chǎng)合。相比之下,軟硬件結(jié)合的方法可以設(shè)計(jì)出性能最優(yōu)、功能擴(kuò)展靈活、控制智能化的新一代的波形發(fā)生器,可以滿足教學(xué)、科研、工業(yè)生產(chǎn)等各方面對(duì)波形發(fā)生器性能有較高要求的應(yīng)用場(chǎng)合。本設(shè)計(jì)采用方案三的方法—軟硬件設(shè)計(jì)法,其方案能夠產(chǎn)生很好的波形,也易實(shí)現(xiàn)。本次設(shè)計(jì)所研究的就是對(duì)所需要的幾種

20、波形輸出對(duì)應(yīng)的數(shù)字信號(hào),在通過(guò)D/A轉(zhuǎn)換器和單片機(jī)部分的轉(zhuǎn)換輸出一組連續(xù)變化的0~5V的電壓脈沖值。在通過(guò)顯示部分顯示其頻率和波形。在設(shè)計(jì)時(shí)分塊來(lái)做,按照波形設(shè)定,D/A轉(zhuǎn)換,51單片機(jī)連接,鍵盤控制和顯示五個(gè)模塊的設(shè)計(jì)。最后通過(guò)聯(lián)調(diào)仿真,做出電路板成品,系統(tǒng)結(jié)構(gòu)框圖如圖3所示。</p><p><b>  圖3系統(tǒng)結(jié)構(gòu)框圖</b></p><p><b>

21、  模塊介紹:</b></p><p>  1波形設(shè)定:對(duì)任意波形的手動(dòng)設(shè)定。</p><p>  2 D/A轉(zhuǎn)換:主要選用DAC0832來(lái)把數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),在送入單片機(jī)進(jìn)行處理。</p><p>  3電流電壓轉(zhuǎn)換:LM324運(yùn)放。</p><p>  4單片機(jī)部分:最小系統(tǒng)。</p><p> 

22、 5鍵盤:用按鍵來(lái)控制輸出波形的種類和數(shù)值的輸入。</p><p>  6顯示部分:采用液晶顯示波形的頻率和波形類別。</p><p><b>  2 系統(tǒng)硬件設(shè)計(jì)</b></p><p>  波形的產(chǎn)生是通過(guò)AT89C52單片機(jī)執(zhí)行某一波形發(fā)生程序,向D/A轉(zhuǎn)換器的輸入端按一定的規(guī)律發(fā)生數(shù)據(jù),從而在D/A轉(zhuǎn)換電路的輸出端得到相應(yīng)的電壓波形。A

23、T89C52單片機(jī)和數(shù)模轉(zhuǎn)換器件DAC0832產(chǎn)生所需不同信號(hào)的低頻信號(hào)源,其信號(hào)幅度和頻率都是可以按要求控制的。文中簡(jiǎn)要介紹了DAC0832數(shù)模轉(zhuǎn)換器的結(jié)構(gòu)原理和使用方法,AT89C52的基礎(chǔ)理論,以及與設(shè)計(jì)電路有關(guān)的各種芯片應(yīng)用。</p><p>  2.1 單片機(jī)AT89C52及接口設(shè)計(jì)</p><p>  AT89C52是一種低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編

24、程Flash 存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,兩個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/

25、計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作[17]。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p>  AT89C52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash

26、片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器,其功能引腳圖如圖4所示。</p><p><b>  圖4 單片機(jī)引腳</b></p><p>  單片機(jī)AT89C52的接口及引腳功能</

27、p><p> ?。?):接+5V電源。 </p><p><b>  (2):接電源地。</b></p><p>  (3)P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)

28、部上拉電阻。在 flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p>  (4)P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p&

29、gt;<p>  此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié),P1口引腳及其功能如表1所示。</p><p>  表1 P1口引腳及其功能</p><p> ?。?)P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O

30、口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容

31、。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p> ?。?)P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào),P3口亦作

32、為AT89C52特殊功能(第二功能)使用,P3口引腳及其功能如下表2所示。</p><p>  表2 P3口引腳及其功能</p><p> ?。?)RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效

33、。</p><p> ?。?)ALE/:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”,ALE

34、僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。</p><p>  (9):外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。</p><p>  當(dāng) AT89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。&l

35、t;/p><p> ?。?0)/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。</p><p>  在flash編程期間,A也接收12伏VPP電壓。</p><p> ?。?1)XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p&

36、gt;  (12)XTAL2:振蕩器反相放大器的輸出端。</p><p>  AT89C52是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠,最小系統(tǒng)如圖5所示。</p><p>  圖5 AT89C52最小系統(tǒng)</p><p>  單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定

37、的狀態(tài)開(kāi)始運(yùn)行。在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自積振蕩,并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6MHZ、12MHZ、或24MHZ。當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開(kāi)關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。上電或

38、開(kāi)關(guān)復(fù)位要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在單片機(jī)運(yùn)行期間,用開(kāi)關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵K后松開(kāi),也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開(kāi)關(guān)復(fù)位的操作。51單片機(jī)的復(fù)位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過(guò)24個(gè)振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后

39、,才檢查EA</p><p>  2.2 D/A轉(zhuǎn)換電路的設(shè)計(jì)</p><p>  1 DAC0832芯片:</p><p>  DAC0832是CMOS工藝制造的8位D/A轉(zhuǎn)換器,屬于8位電流輸出型D/A轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間為1us,片內(nèi)帶輸入數(shù)字鎖存器。DAC0832與單片機(jī)接成數(shù)據(jù)直接寫(xiě)入方式,當(dāng)單片機(jī)把一個(gè)數(shù)據(jù)寫(xiě)入DAC寄存器時(shí),DAC0832的輸出模擬電壓信號(hào)

40、隨之對(duì)應(yīng)變化。利用D/A轉(zhuǎn)換器可以產(chǎn)生各種波形,如方波、三角波、正弦波、鋸齒波等以及它們組合產(chǎn)生的復(fù)合波形和不規(guī)則波形。</p><p>  2 DAC0832的主要特性參數(shù)如下:</p><p><b>  分辨率為8位;</b></p><p>  電流穩(wěn)定時(shí)間1us;</p><p>  可單緩沖、雙緩沖或直接數(shù)字

41、輸入;</p><p>  只需在滿量程下調(diào)整其線性度;</p><p>  單一電源供電(+5V~+15V);</p><p>  低功耗,200mW。</p><p>  3 DAC0832結(jié)構(gòu): </p><p>  D0~D7:8位數(shù)據(jù)輸入線,TTL電平,有效時(shí)間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò));&l

42、t;/p><p>  ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;</p><p>  CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;</p><p>  WR1:數(shù)據(jù)鎖存器寫(xiě)選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;</

43、p><p>  XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效;</p><p>  WR2:DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由WR1、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時(shí),DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開(kāi)始D/A轉(zhuǎn)換。</p><p>

44、;  IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;</p><p>  IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);</p><p>  Rfb:反饋信號(hào)輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;</p><p>  Vcc:電源輸入端,Vcc的范圍為+5V~+15V;</p><p>  VREF:基

45、準(zhǔn)電壓輸入線,VREF的范圍為-10V~+10V;</p><p>  AGND:模擬信號(hào)地</p><p>  DGND:數(shù)字信號(hào)地。</p><p>  DAC0832簡(jiǎn)化電路框圖如圖6所示。</p><p>  圖6 DAC0832簡(jiǎn)化電路框圖</p><p>  待轉(zhuǎn)換的8位數(shù)字量由芯片的8位數(shù)據(jù)輸入線D0~D

46、7輸入,經(jīng)DAC0832轉(zhuǎn)換后,通過(guò)2個(gè)電流輸出端IOUT1和IOUT2輸出,IOUT1是邏輯電平為"1"的各位輸出電流之和,IOUT2是邏輯電平為"0"的各位輸出電流之和。DAC0832由8位輸入寄存器、8位DAC寄存器和8位D/A轉(zhuǎn)換電路組成。輸入寄存器和DAC寄存器作為雙緩沖,因?yàn)樵贑PU數(shù)據(jù)線直接接到DAC0832的輸入端時(shí),數(shù)據(jù)在輸入端保持的時(shí)間僅僅是在CPU執(zhí)行輸出指令的瞬間內(nèi),輸入寄

47、存器可用于保存此瞬間出現(xiàn)的數(shù)據(jù)。有時(shí),微機(jī)控制系統(tǒng)要求同時(shí)輸出多個(gè)模擬量參數(shù),此時(shí)對(duì)應(yīng)于每一種參數(shù)需要一片DAC0832,每片DAC0832的轉(zhuǎn)換時(shí)間相同,就可采用DAC寄存器對(duì)CPU分時(shí)輸入到輸入寄存器的各參數(shù)在同一時(shí)刻開(kāi)始鎖存,進(jìn)而同時(shí)產(chǎn)生各模擬信號(hào)。</p><p>  4 DAC0832與AT89C52連接</p><p>  DAC0832的數(shù)據(jù)輸出方式在微機(jī)應(yīng)用系統(tǒng)中,通常使用

48、的是電壓信號(hào),而DAC0832輸出的是電流信號(hào),這就需要由運(yùn)算放大器組成的電路實(shí)現(xiàn)轉(zhuǎn)換。其中有輸出電壓各自極性固定的單位性輸出和在隨動(dòng)系統(tǒng)中輸出電壓有正負(fù)極性的雙極性輸出兩種輸出方式。 DAC 0832同CPU的連接,微處理器與DAC0832之間可以不加鎖存器,而是利用DAC0832內(nèi)部鎖存器,將CPU通過(guò)數(shù)據(jù)總線直接向DAC0832輸出的停留時(shí)間很短的數(shù)據(jù)保存,直至轉(zhuǎn)換結(jié)束。DAC0832同AT89C52的接口如圖7所示。</p

49、><p>  圖7 DAC0832同AT89C52連接電路</p><p><b>  2.3按鍵電路設(shè)計(jì)</b></p><p><b>  人機(jī)交互接口的設(shè)計(jì)</b></p><p>  所謂人機(jī)交互接口,是指人與計(jì)算機(jī)之間建立聯(lián)系、交互信息的輸入/輸出設(shè)備的接口。這些輸入/輸出設(shè)備主要有鍵盤、顯示

50、器和打印機(jī)等,他們是計(jì)算機(jī)應(yīng)用系統(tǒng)中必不可少的輸入、輸出設(shè)備,是控制系統(tǒng)與操作人員之間的交互窗口。一個(gè)安全可靠的控制系統(tǒng)必須具有方便的交互功能。操作人員可以通過(guò)系統(tǒng)顯示的內(nèi)容,及時(shí)掌握生產(chǎn)情況,并可通過(guò)鍵盤輸入數(shù)據(jù),傳遞命令,對(duì)計(jì)算機(jī)應(yīng)用系統(tǒng)進(jìn)行人工干擾,使其隨時(shí)能按照操作人員的意圖工作。</p><p>  鍵盤設(shè)計(jì)需要解決的幾個(gè)問(wèn)題</p><p>  鍵盤是若干按鍵的集合,是向系統(tǒng)提

51、供操作人員干預(yù)命令及數(shù)據(jù)的接口設(shè)備。鍵盤可分為編碼鍵盤和非編碼鍵盤兩種類型。編碼鍵盤能自動(dòng)識(shí)別按下的鍵并產(chǎn)生相應(yīng)代碼,以并行或串行方式發(fā)給CPU。它使用方便,接口簡(jiǎn)單,響應(yīng)速度快,但需要專用的硬件電路。非編碼鍵盤則是通過(guò)軟件來(lái)確定按鍵并計(jì)算鍵值。這種方法雖然沒(méi)有編碼鍵盤速度快,但它不需要專用的硬件支持,因此得到了廣泛的應(yīng)用。鍵盤是計(jì)算機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要組成部分,設(shè)計(jì)時(shí)必須解決下述一些問(wèn)題。</p><p> 

52、 按鍵的確認(rèn),鍵盤實(shí)際上是一組按鍵開(kāi)關(guān)的集合,其中每一個(gè)按鍵就是一個(gè)開(kāi)關(guān)量輸入裝置。鍵的閉合與否,取決于機(jī)械彈性開(kāi)關(guān)的通、斷狀態(tài)。反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,若高電平表示斷開(kāi),那么低電平鍵閉合。所以,通過(guò)電平狀態(tài)(高或低)的檢測(cè),便可確定相應(yīng)按鍵是否已被按下。</p><p>  重鍵與連擊的處理, 實(shí)際按鍵操作中,若無(wú)意中同時(shí)或先后按下兩個(gè)以上的鍵,系統(tǒng)確定哪個(gè)鍵操作是有效的,完全取決設(shè)計(jì)者的意圖。如

53、視按下時(shí)間最長(zhǎng)者為有效鍵,或認(rèn)為最先按下的鍵為當(dāng)前的按鍵,也可以將最后釋放的鍵看成是輸入鍵。不過(guò)單片機(jī)控制系統(tǒng)的資源有限,交互能力不強(qiáng),通??偸遣捎脝捂I按下有效,多鍵同時(shí)按下無(wú)效的原則。有時(shí),由于操作人員按鍵動(dòng)作不夠熟練,會(huì)使一次按鍵產(chǎn)生多次擊鍵的效果,及重鍵的情形。為消除重鍵的影響,編制程序時(shí)可以將鍵的釋放作為按鍵的結(jié)束。等鍵釋放電平后再轉(zhuǎn)去執(zhí)行相應(yīng)的功能程序,以防止一次擊鍵多次執(zhí)行的錯(cuò)誤發(fā)生。</p><p>

54、;  按鍵防抖動(dòng)技術(shù),鍵盤作為向系統(tǒng)提供操作人員的干預(yù)命令的接口,以其特定的按鍵代表著各種確定操作命令。所以準(zhǔn)確無(wú)誤地辨認(rèn)每個(gè)鍵的動(dòng)作及其所處的狀態(tài),是系統(tǒng)能否正常工作的關(guān)鍵。多數(shù)鍵盤的按鍵均采用機(jī)械彈性開(kāi)關(guān)。一個(gè)電信號(hào)通過(guò)機(jī)械觸點(diǎn)的斷開(kāi)、閉合過(guò)程,完成高、低電平的切換。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)閉合及斷開(kāi)的瞬間必然伴隨有一連串的抖動(dòng)。消除按鍵盤抖動(dòng)通常有兩種方法:硬件消抖和軟件消抖。通過(guò)硬件電路消除按鍵過(guò)程中抖動(dòng)的影響是一種

55、廣為采用的措施。這種做法,工作可靠,且節(jié)省機(jī)時(shí)。 硬件消抖是通過(guò)在按鍵輸出電路上加一定的硬件線路來(lái)消除抖動(dòng),一般采用R—S觸發(fā)器或單穩(wěn)態(tài)電路。單穩(wěn)態(tài)硬件消抖電路如圖8所示,軟件消抖則是利用延時(shí)來(lái)跳過(guò)抖動(dòng)過(guò)程。</p><p>  圖8 單穩(wěn)態(tài)硬件消抖電路</p><p>  鍵盤的結(jié)構(gòu)形式一般有兩種:獨(dú)立式鍵盤與矩陣式鍵盤。獨(dú)立式鍵盤就是各按鍵相互獨(dú)立,每個(gè)按鍵各接一根I/O口線,每根I

56、/O口線上的按鍵都不會(huì)影響</p><p>  其它的I/O口線。矩陣式鍵盤又叫行列式鍵盤。用I/O口線組成行、列結(jié)構(gòu),鍵位設(shè)置在行列的交點(diǎn)上。例如4×4的行、列結(jié)構(gòu)可組成16個(gè)鍵的鍵盤,比一個(gè)鍵位用一根I/O口線的獨(dú)立式鍵盤少了一半的I/O口線。對(duì)矩陣鍵盤的工作過(guò)程可分兩步:第一步是CPU首先檢測(cè)鍵盤上是否有鍵按下;第二步是再識(shí)別是哪一個(gè)鍵按下,獨(dú)立式鍵盤如圖9所示。</p><p

57、><b>  圖9 獨(dú)立式鍵盤</b></p><p><b>  矩陣鍵盤的工作方式</b></p><p>  查詢工作方式:這種方式是直接在主程序中插入鍵盤檢測(cè)子程序,主程序每執(zhí)行一次,則鍵盤檢測(cè)子程序就對(duì)鍵盤進(jìn)行檢測(cè)一次。如果沒(méi)有鍵按下,則跳過(guò)鍵識(shí)別,直接執(zhí)行其他程序;如果有鍵按下,則通過(guò)鍵盤掃描子程序識(shí)別按鍵,得到按鍵的編碼值。

58、然后根據(jù)編碼值進(jìn)行相應(yīng)的處理,處理完后再回到主程序執(zhí)行。</p><p>  中斷工作方式:鍵盤中斷工作方式如圖10所示,就是中斷工作方式,當(dāng)有中斷的時(shí)候,就去執(zhí)行掃描程序,沒(méi)有中斷的時(shí)候,CPU可以去做其他的事情,這樣可以提高CPU的效率。</p><p>  圖10 鍵盤中斷工作方式</p><p>  在本系統(tǒng)中設(shè)置了5個(gè)按鍵,波形選在按鍵與P1.0口連接,

59、頻率控制鍵分別P1.1和P1.2口連接,幅值增減控制鍵位分別接P1.3和P1.4口,實(shí)現(xiàn)了波形選擇和頻幅控制,系統(tǒng)鍵盤實(shí)現(xiàn)設(shè)計(jì)圖如圖11所示。</p><p>  圖11 系統(tǒng)鍵盤實(shí)現(xiàn)設(shè)計(jì)圖</p><p><b>  2.4顯示模塊設(shè)計(jì)</b></p><p>  液晶模塊采用的是液晶LCD1602字符型液晶,字符型液晶顯示模塊是一種專門用于

60、顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD。相對(duì)于數(shù)碼管,液晶顯示屏顯得更加專業(yè)和直觀,顯示內(nèi)容更加豐富,在通訊,儀器儀表,電子設(shè)備,家用電器等低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。目前常用16*1,16*2,20*2和40*2行等的模塊。1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,液晶模塊如圖12所示。</p><p><b>  圖1

61、2 液晶模塊圖</b></p><p><b>  引腳功能說(shuō)明</b></p><p>  1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如下所示:</p><p>  第1腳:VSS為地電源。</p><p>  第2腳:VDD接5V正電源。</p><

62、p>  第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或

63、者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  第15腳:背光源正極。</p><p>  第16腳:背光源負(fù)極。

64、</p><p>  LCD1602液晶顯示模塊直接與單片機(jī)AT89C52相連接,1腳接地,2腳接電源,4~6腳分別與P1.5~P1.7口連接,7~14腳D0~D7分別和51單片機(jī)P0.1~P0.7口連接,LCD1602與AT89C52連接圖如圖13所示。 </p><p>  圖13 LCD1602與AT89C52連接圖</p><p>  2.5 LM324簡(jiǎn)介

65、</p><p>  LM324是四運(yùn)放集成電路,它采用14腳雙列直插塑料封裝,外形如圖所示。它的內(nèi)部包含四組形式完全相同的運(yùn)算放大器,除電源共用外,四組運(yùn)放相互獨(dú)立。每一組運(yùn)算放大器可用圖1所示的符號(hào)來(lái)表示,它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入端,“V+”、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個(gè)信號(hào)輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相反;Vi+(+)

66、為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。由于LM324四運(yùn)放電路具有電源電壓范圍寬,靜態(tài)功耗小,可單電源使用,價(jià)格低廉等優(yōu)點(diǎn),因此被廣泛應(yīng)用在各種電路中,LM324管腳功能如圖14所示。</p><p>  圖14 LM324各對(duì)應(yīng)管腳</p><p>  若D/A轉(zhuǎn)換器輸出為雙極性,如圖15所示。</p><p>  圖15 D/A轉(zhuǎn)換器雙極

67、性輸出電路</p><p>  圖15中,運(yùn)算放大器A2的作用是把運(yùn)算放大器A1的單向輸出電壓轉(zhuǎn)換成雙向輸出電壓。其原理是將A2的輸入端Σ通過(guò)電阻R1與參考電壓VREF相連,VREF經(jīng)R1向A2提供一個(gè)偏流I1,其電流方向與I2相反,因此運(yùn)算放大器A2的輸入電流為I1、I2之代數(shù)和。則D/A轉(zhuǎn)換器的總輸出電壓為:</p><p><b> ?。?)</b></p

68、><p><b> ?。?) </b></p><p>  為DAC0832提供的參考電壓,輸入的波形數(shù)據(jù)。由上兩式可得:</p><p><b> ?。?)</b></p><p>  取,當(dāng)時(shí),;時(shí),;時(shí),。由上述分析可看出,取不同數(shù)據(jù)時(shí)(0~255),可得對(duì)稱的雙極性波形輸出。再取,則式(1)

69、可表示為: </p><p>  由上式可知,輸出信號(hào)的幅度受的改變而改變。</p><p>  DAC0832為電流輸出型轉(zhuǎn)換器,一般要求輸出是電壓,所以還必須經(jīng)過(guò)一個(gè)外接的運(yùn)算放大器轉(zhuǎn)換成電壓。</p><p>  如圖16所示為一種用兩級(jí)運(yùn)算放大器組成的模擬電壓

70、輸出電路,從第一個(gè)運(yùn)放輸出為單極性模擬電壓,從第二個(gè)運(yùn)放輸出為雙極性模擬電壓。如果參考電壓為+5V,則點(diǎn)a輸出電壓為0~-5V,點(diǎn)b輸出電壓為±5V。 </p><p>  圖16 I/V轉(zhuǎn)換波形發(fā)生電路</p><p><b>  3系統(tǒng)軟件設(shè)計(jì)</b></p><p>  系統(tǒng)軟件由主程序和產(chǎn)生波形的子程序組成,軟件設(shè)計(jì)主要是產(chǎn)生

71、各種波形的子程序的編程,通過(guò)編程可得到各種波形。周期的改變可采用插入延時(shí)子程序的方法來(lái)實(shí)現(xiàn),主程序和幾種常用波形子程序的流程圖如下圖所示。</p><p>  3.1 主程序流程圖</p><p>  圖17 主程序流程圖</p><p><b>  信號(hào)的產(chǎn)生:</b></p><p>  利用8位D/A轉(zhuǎn)換器DAC

72、0832,可以將8位數(shù)字量轉(zhuǎn)換成模擬量輸出。數(shù)字量輸入的范圍為0~255,對(duì)應(yīng)的模擬量輸出的范圍在VREF-到VREF+之間。根據(jù)這一特性,可以利用單片機(jī)的并行口輸出的數(shù)字量,產(chǎn)生常用的波形。例如,要產(chǎn)生幅度為0~5V的三角波,只要將DAC0832的VREF-接地,VREF+接+5V,單片機(jī)的并行口首先輸出00H,再輸出01H、02H,直到輸出FFH,再輸出00H,依此循環(huán),這樣在圖16所示的Vout端就可以看到在0到5V之間變化的三角

73、波。</p><p>  3.2鍵位掃描子程序設(shè)計(jì)</p><p>  鍵位掃描子程序的任務(wù)是檢查4個(gè)按鍵是否有鍵按下,若有鍵按下,則執(zhí)行相應(yīng)的功能。在這里,4個(gè)按鍵分別用于頻率增減、波形選擇和波形復(fù)位功能。其流程圖如圖18所示。</p><p>  圖18鍵盤掃描流程圖</p><p>  波形數(shù)據(jù)產(chǎn)生子程序流程圖</p>&

74、lt;p>  波形數(shù)據(jù)產(chǎn)生的子程序是定時(shí)器T1的中斷程序,當(dāng)定時(shí)器溢出時(shí),發(fā)生一次中斷。當(dāng)發(fā)生中斷時(shí),單片機(jī)將按波形數(shù)據(jù)表中的波形數(shù)據(jù)一一送入DAC0832,DAC0832再根據(jù)輸入的輸入數(shù)據(jù)大小輸出對(duì)應(yīng)的電壓,

75、

76、 </p><p>  圖19波形數(shù)據(jù)產(chǎn)生子程序流程圖</p><p>  3.3 正弦波程序設(shè)計(jì)</p><p>  正弦波波形設(shè)計(jì)通過(guò)查表指令得出,DAC0832是8位的D/A轉(zhuǎn)換器件,其工作電壓是0—5V,當(dāng)輸入00數(shù)字量的

77、時(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份,那么第一點(diǎn)的角度為0°,對(duì)應(yīng)的正弦值為2.5sin0°;第二點(diǎn)的角度為360°/256,對(duì)應(yīng)的正弦值為2.5sin (360°/256 ) ……,如此計(jì)算下去,將這些模擬量正弦

78、值都轉(zhuǎn)換為單極性方式下的數(shù)字量,得到一張按照點(diǎn)號(hào)順序排列的正弦波波形數(shù)據(jù)表如表3所示。</p><p>  其實(shí)在計(jì)算正弦波形數(shù)據(jù)的時(shí)候,并不需要算出整個(gè)0—2π區(qū)間的每一個(gè)值,而只需計(jì)算出四分之一周期中的值就行,其他區(qū)間的值都可以通過(guò)對(duì)四分之一周期中的值取不同的變換得到。</p><p>  表3 正弦波形數(shù)據(jù)表</p><p>  正弦波程序設(shè)計(jì)如下:<

79、/p><p>  #include<math.h></p><p><b>  main()</b></p><p><b>  {</b></p><p>  int n,i=0,j,k;</p><p>  float y=0, a=3.1415926,b=0,c

80、=2.5000,d=0;</p><p>  for(n=0;n<=64;n++)</p><p><b>  {</b></p><p>  y=2.5*sin(a*n/128)+2.5;</p><p>  b=y; //b,y為當(dāng)前幅度值</p><p>  d=b-c;

81、 //d為遞增率</p><p>  j=d/0.0196; //j為數(shù)字遞增率,0.0196為δ</p><p>  k=128+j; //k為數(shù)字量</p><p>  printf(“%d,%f,%f,%d,%d\n”,i,y,d,j,k); </p><p><b>  i++;</b></

82、p><p><b>  }</b></p><p><b>  }</b></p><p>  3.4 三角波程序設(shè)計(jì)</p><p>  三角波產(chǎn)生是通過(guò)P0口將00H送入寄存器A中,DAC0832輸出A中的內(nèi)容,通過(guò)A中數(shù)值的加1遞升,同時(shí)延時(shí),當(dāng)A中的內(nèi)容為0FF時(shí),A中的內(nèi)容減1遞減,從而循環(huán)產(chǎn)

83、生三角波。</p><p>  else if( wave_choice == 2 ) //三角波</p><p><b>  {</b></p><p>  if(c <= 128)</p><p><b>  {</b></p><p>

84、;<b>  P0 = c;</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  P0 = 255 - c;</p><p>&

85、lt;b>  }</b></p><p><b>  c ++;</b></p><p><b>  }</b></p><p>  3.5 方波程序設(shè)計(jì)</p><p>  方波產(chǎn)生是通過(guò)P0口將00H輸出給DAC0832,輸出對(duì)應(yīng)模擬量,然后讀取P2口的狀態(tài),取反后作為延時(shí)常量

86、,延時(shí)時(shí)間到,將FFH輸出時(shí),同樣輸出對(duì)應(yīng)模擬量,再延時(shí),從而得到方波。</p><p>  else if( wave_choice == 3 ) // 方波</p><p><b>  {</b></p><p>  k = zk * 256 / 100;</p><p><b&g

87、t;  d ++;</b></p><p>  if(d <= k)</p><p><b>  {</b></p><p>  P0 = 0x00;</p><p><b>  }</b></p><p><b>  else </b>

88、;</p><p>  P0 = 0xff;</p><p><b>  }</b></p><p>  3.6鋸齒波程序設(shè)計(jì)</p><p>  鋸齒波中的斜線用一個(gè)個(gè)小臺(tái)階來(lái)逼近,在一個(gè)周期內(nèi)從最小值開(kāi)始逐步遞增,當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺(tái)階間隔很小時(shí),波形基本上近似于直線。適當(dāng)選擇循環(huán)的時(shí)間,可以得

89、到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個(gè)延時(shí)的常數(shù)不同,所以用延時(shí)法,來(lái)產(chǎn)生鋸齒波。</p><p>  else if(wave_choice == 4) //鋸齒波</p><p><b>  {</b></p><p>  if(e <= 255)</p><p>&l

90、t;b>  {</b></p><p>  P0 = 255 - e;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  

91、P0=0;</b></p><p><b>  }</b></p><p><b>  e++;</b></p><p><b>  }</b></p><p>  4 信號(hào)發(fā)生器的調(diào)試</p><p><b>  4.1調(diào)試步驟&

92、lt;/b></p><p>  4.1.1調(diào)試儀器和軟件</p><p>  調(diào)試儀器和軟件:穩(wěn)壓電源、示波器、數(shù)字萬(wàn)用表、Proteus軟件、Kiel c51。</p><p>  4.1.2電路圖調(diào)試過(guò)程</p><p>  在PROTUES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到

93、模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。</p><p>  4.1.3程序調(diào)試過(guò)程</p><p>  首先,輸入源程序事,應(yīng)以西方文字方式輸入字母和符號(hào),且中文注釋前要加分號(hào)。其次,對(duì)源程序進(jìn)行匯編和糾錯(cuò),根據(jù)匯編提供的錯(cuò)去信息逐一更改錯(cuò)誤。最后,把編譯好的程序?qū)懭雴纹瑱C(jī)的FLASH ROM 里,進(jìn)行下一步調(diào)試。</p><p>  通過(guò)系統(tǒng)聯(lián)調(diào),在示波器上觀察波形得出系統(tǒng)調(diào)

94、試結(jié)果,測(cè)試數(shù)據(jù)如表4所示。 </p><p><b>  表4測(cè)試數(shù)據(jù)</b></p><p><b>  4.2調(diào)試結(jié)果</b></p><p> ?。?)能產(chǎn)生正弦波,方波,三角波,按下波形控制鍵可以控制波形輸出,按下頻率增減控制鍵可以控制各波形頻率增減,增減步進(jìn)為100Hz,按復(fù)位鍵可以恢復(fù)到最初波形。</p

95、><p> ?。?)三種波的頻率均可調(diào),頻率范圍:0--20000Hz。</p><p> ?。?)三種波形幅值變化為:0.1—5V。</p><p> ?。?)液晶顯示頻率和正弦波,三角波,方波波形類別。</p><p> ?。?)此外還可以產(chǎn)生鋸齒波。</p><p><b>  結(jié)束語(yǔ)</b>&

96、lt;/p><p>  此次設(shè)計(jì)利用單片機(jī)控制多功能信號(hào)發(fā)生器,結(jié)合了硬件和軟件,達(dá)到了靈活控制,精度也進(jìn)一步得到改善。在本次設(shè)計(jì)的過(guò)程中,我的理論知識(shí)掌握得更扎實(shí),動(dòng)手能力明顯提高。同時(shí),我發(fā)現(xiàn)很多的問(wèn)題,雖然以前還做過(guò)這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多。在整個(gè)電路的設(shè)計(jì)過(guò)程中,花費(fèi)時(shí)間最多的是各個(gè)單元電路的連接及電路的細(xì)節(jié)設(shè)計(jì)上,如在多種方案的選擇中,我仔細(xì)比較分析其原理以及可行的原因。其硬件電路是比較簡(jiǎn)單的

97、,主要是解決程序設(shè)計(jì)的問(wèn)題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問(wèn)題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過(guò)程中大部分時(shí)間是用在程序上面的。很多子程序是可以借鑒書(shū)本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問(wèn)題所在,這需要對(duì)單片機(jī)的結(jié)構(gòu)很熟悉。因此可以說(shuō)單片機(jī)的設(shè)計(jì)是軟件和硬件的結(jié)合,二者是密不可分的。</p><p>  此次設(shè)計(jì)雖然基本達(dá)到設(shè)計(jì)要求,但還有很多可以改進(jìn)的地方,如控制頻

98、率和幅值增減方面可以多增加一些控制鍵,以方便大幅值和高頻率的調(diào)控,以及解決液晶屏顯示時(shí)跳進(jìn)太慢等問(wèn)題。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]沙占友, 王彥朋, 孟志永等. 單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003.</p><p>  [2]胡乾斌,李光斌, 李玲等. 單片微型計(jì)算機(jī)原理與應(yīng)用

99、[M].武漢:華中科技大學(xué)出版社,2005.</p><p>  [3]康華光主編. 電子技術(shù)基礎(chǔ)模擬部分[M]. 第四版. 北京: 高等教育出版社,1999.</p><p>  [4]曹漢房主編. 數(shù)字電路與邏輯設(shè)計(jì)[M]. 第四版. 武漢: 華中科技大學(xué)出版社,2004.</p><p>  [5]謝自美主編. 電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M

100、]. 第二版. 武漢: 華中科技大學(xué)出版社,2000.</p><p>  [6]梅麗鳳,王艷秋等. 單片機(jī)原理及接口技術(shù)[M]. 北京:清華大學(xué)出版社, 2004.</p><p>  [7]陳明熒. 8051單片機(jī)課程設(shè)計(jì)實(shí)例教材[M].北京:清華大學(xué)出版社,2007.</p><p>  [8]先鋒工作室. 單片機(jī)程序設(shè)計(jì)實(shí)例[M]. 北京: 清華大學(xué)出版社,

101、2003.</p><p>  [9]孫肖子等. 電子設(shè)計(jì)指南[M].北京:高等教育出版社,2005.</p><p>  [10]張毅剛. MCS-51單片機(jī)應(yīng)用設(shè)計(jì),哈爾濱工業(yè)大學(xué)出版社,2004</p><p>  [11]康華光主編.電子技術(shù)基礎(chǔ) 模擬部分[M](第四版).北京:高等教育出版社,1999.</p><p>  [12]

102、何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1997</p><p>  [13]孫進(jìn)生編著.電子產(chǎn)品設(shè)計(jì)實(shí)例教程[M].北京:冶金工業(yè)出版社,2004</p><p>  [14]段九州編著.放大電路實(shí)用設(shè)計(jì)手冊(cè)[M].沈陽(yáng):遼寧科學(xué)技術(shù)出版社,2002</p><p>  [15]潘新民,王燕芳編著.微型計(jì)算機(jī)控制技術(shù)[M].北京:電子工業(yè)出

103、版社,2004</p><p>  [16]全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì)編.第五屆全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品選編[M].</p><p>  北京:北京理工大學(xué)出版社,2003</p><p>  [17]楊寧編著.單片機(jī)與控制技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005</p><p>  [18]ATMEL. Microcont

104、roller Data Book[M].1995</p><p>  [19]www.msclub.ce.cctpu.edu.ru/LITERATU/i386《MDCS 51 Family of Microcontrollers Architectural Overview》[J].</p><p>  [20]Oppenheim A V, Willsky A S, Young I T.

105、Signals and Systems[M]. Englewood Cliffs,NJ:Prentice-Hall,1983</p><p><b>  附錄:</b></p><p><b>  附錄1:源程序</b></p><p>  #include <reg51.h></p><p

106、>  #include <intrins.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  #define dataout P1</p><p>  sbit k1 = P2^4;</p>

107、<p>  sbit k11 = P3^0;</p><p>  sbit k12 = P3^1;</p><p>  sbit k2 = P2^5;</p><p>  sbit k3 = P2^6;</p><p>  sbit rs = P2^0;</p><p>  sbit rw = P2^1;&

108、lt;/p><p>  sbit lcden = P2^2;</p><p>  void delay(int z)</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(j=z;j>0;j--)</

109、p><p>  for(i=0;i<110;i++);</p><p><b>  }</b></p><p>  void delay_ms(uint ms)</p><p>  {</p><p>  unsigned char i=10;</p><

110、p>  while(ms--)</p><p><b>  {</b></p><p>  while(i--)</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  }

111、</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void write_com(uchar com) // 寫(xiě)指令函數(shù)</p><p><b>  {</b></p><p><

112、;b>  rs=0;</b></p><p><b>  rw=0;</b></p><p><b>  lcden=1;</b></p><p>  P0=com; //com指令付給P0口</p><p>  delay(1); //</p><p&

113、gt;<b>  lcden=0;</b></p><p>  delay(1); </p><p><b>  }</b></p><p>  void write_date(uchar date) // 寫(xiě)數(shù)據(jù)函數(shù)</p><p><b>  {</b></p>

114、;<p><b>  rs=1;</b></p><p><b>  rw=0;</b></p><p><b>  lcden=1;</b></p><p><b>  P0=date;</b></p><p><b>  del

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論