基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)論文(終稿)副4.doc_第1頁(yè)
基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)論文(終稿)副4.doc_第2頁(yè)
基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)論文(終稿)副4.doc_第3頁(yè)
基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)論文(終稿)副4.doc_第4頁(yè)
基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)論文(終稿)副4.doc_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

韶 關(guān) 學(xué) 院畢 業(yè) 設(shè) 計(jì)題 目:基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)學(xué)生姓名:何廣贏(yíng)學(xué) 號(hào):09101071011院 (系):物理與機(jī)電工程學(xué)院 電子系專(zhuān) 業(yè):電子信息科學(xué)與技術(shù)班 級(jí):2009級(jí)1班指導(dǎo)老師姓名及職稱(chēng):陸英 副教授起止時(shí)間: 2012 年 9 月 2013 年 5 月摘要基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì)摘 要:信號(hào)發(fā)生器是一種常用的信號(hào)源,廣泛地應(yīng)用于電子電路、自動(dòng)控制系統(tǒng)和教學(xué)實(shí)驗(yàn)等領(lǐng)域。目前使用的信號(hào)發(fā)生器大部分是函數(shù)信號(hào)發(fā)生器,且特殊函數(shù)發(fā)生器的價(jià)格昂貴。所以本設(shè)計(jì)使用的是AT89C51單片機(jī)構(gòu)成的發(fā)生器,可產(chǎn)生三角波、方波、正弦波等多種特殊波形和任意波形,波形的頻率可用程序控制改變。在單片機(jī)上加外圍器件距陣式鍵盤(pán),通過(guò)鍵盤(pán)控制波形頻率的增減以及波形的選擇,并用了LCD顯示頻率大小。在單片機(jī)的輸出端口接DAC0832進(jìn)行D/A轉(zhuǎn)換,再通過(guò)運(yùn)放進(jìn)行波形調(diào)整,最后輸出波形接在示波器上顯示。本設(shè)計(jì)具有線(xiàn)路簡(jiǎn)單、結(jié)構(gòu)緊湊、價(jià)格低廉、性能優(yōu)越等優(yōu)點(diǎn)。 論述了采用DAC0832芯片設(shè)計(jì)數(shù)字函數(shù)信號(hào)發(fā)生器的原理以及整機(jī)的結(jié)構(gòu)設(shè)計(jì)。該函數(shù)信號(hào)發(fā)生器可輸出三角波,方波和正弦波。 關(guān)鍵詞: 信號(hào)發(fā)生器; 單片機(jī); DAC0832; 波形調(diào)整; LCD。Function generator design based on single chip microcomputerAbstract: Signal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc. Currently used mostly function signal generator signal generator, waveform generator and a special price of expensive . So the dissertation is usage of the AT89s51 single-chip microcomputer constitute of wave-form generator, which can generate triangle wave, square wave, sine wave etc variety wave-form, the period of wave can be controlled by procedure, at outer circle spare part of the machine, plus independence type keyboard , which can control wave increase or decrease of form-frequency and the choice of wave-form, at the same time LED display frequency size. The output of the machine connect DAC0832 to carry on a DA conversion,again pass operation amplifier to put an end exportation wave-form. This design has advantage of simple circuit, tightly packed structure, cheap price, superior function etc. We discussed the principle and the whole frame of the digital function signal generator. Thegenerator can output three kinds of waves : sine wave , square wave , triangle wave. Keywords: signal generator; MCU; DAC0832; wave-form adjustment; LCD.目錄目 錄緒論11函數(shù)發(fā)生器的概述和分類(lèi)11.1函數(shù)發(fā)生器概述11.2函數(shù)發(fā)生器的分類(lèi)22 方案比較與論證22.1設(shè)計(jì)任務(wù)與要求22.2 方案比較與論證33 系統(tǒng)硬件設(shè)計(jì)63.1 系統(tǒng)主要功能63.2 系統(tǒng)硬件構(gòu)成及功能63.2.1 AT89C52單片機(jī)及其說(shuō)明73.2.2 資源分配113.2.3 D/A轉(zhuǎn)換模塊部件113.2.4 外部控制模塊部件133.2.5 放大部分133.3 系統(tǒng)的軟件設(shè)計(jì)143.3.1 信號(hào)頻率數(shù)據(jù)采集143.3.2 正弦波產(chǎn)生程序143.3.3 三角波產(chǎn)生程序153.3.4 方波產(chǎn)生程序163.3.5 鋸齒波產(chǎn)生程序163.3.6信號(hào)放大模塊設(shè)計(jì)173. 3. 7數(shù)模轉(zhuǎn)換模塊設(shè)計(jì)174 仿真圖及結(jié)果分析184.1函數(shù)發(fā)生器的調(diào)試與測(cè)試184.2仿真結(jié)果圖195 總結(jié)與展望21致 謝22參考文獻(xiàn)23附錄24附錄A 程序清單24附錄B 電路原理圖32附錄C 電路實(shí)物圖330 正文 基于單片機(jī)的函數(shù)發(fā)生器設(shè)計(jì) 專(zhuān)業(yè)班級(jí):2009電子1班 姓 名:何廣贏(yíng) 指導(dǎo)教師:陸 英 副教授 緒論函數(shù)發(fā)生器也稱(chēng)函數(shù)發(fā)生器,作為實(shí)驗(yàn)信號(hào)源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。目前,市場(chǎng)上常見(jiàn)的函數(shù)發(fā)生器多為純硬件的搭接而成,且波形種類(lèi)有限,多為鋸齒波,正弦波,方波,三角波等波形。函數(shù)發(fā)生器作為一種常見(jiàn)的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路經(jīng)之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿(mǎn)意,而且由于低頻信號(hào)源所需的RC很大;大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證;體積大,漏電,損耗顯著更是致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。1函數(shù)發(fā)生器的概述和分類(lèi)1.1函數(shù)發(fā)生器概述在電子工程、通信工程、自動(dòng)控制、遙測(cè)控制、測(cè)量?jī)x器、儀表和計(jì)算機(jī)等技術(shù)領(lǐng)域,經(jīng)常需要用到各種各樣的函數(shù)信號(hào)發(fā)生器。隨著集成電路的迅速發(fā)展,用集成電路可很方便地構(gòu)成各種函數(shù)信號(hào)發(fā)生器。用集成電路實(shí)現(xiàn)的函數(shù)信號(hào)發(fā)生器與其它信號(hào)函數(shù)發(fā)生器相比,其波形質(zhì)量、幅度和頻率穩(wěn)定性等性能指標(biāo),都有了很大的提高。函數(shù)發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號(hào)和用戶(hù)定義信號(hào),并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。函數(shù)發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點(diǎn),不僅可以模擬各種復(fù)雜信號(hào),還可對(duì)頻率、幅值、相移、波形進(jìn)行動(dòng)態(tài)、及時(shí)的控制,并能夠與其它儀器進(jìn)行通訊,組成自動(dòng)測(cè)試系統(tǒng),因此被廣泛用于自動(dòng)控制系統(tǒng)、震動(dòng)激勵(lì)、通訊和儀器儀表領(lǐng)域。1.2函數(shù)發(fā)生器的分類(lèi)函數(shù)信號(hào)發(fā)生器應(yīng)用廣泛,種類(lèi)繁多,性能各異,分類(lèi)也不盡一致。按照頻率范圍分類(lèi)可以分為:超低頻信號(hào)發(fā)生器、低頻信號(hào)發(fā)生器、視頻信號(hào)發(fā)生器、高頻函數(shù)發(fā)生器、甚高頻函數(shù)發(fā)生器和超高頻信號(hào)發(fā)生器。按照輸出波形分類(lèi)可以分為:正弦信號(hào)發(fā)生器和非正弦信號(hào)發(fā)生器,非正弦信號(hào)發(fā)生器又包括:脈沖信號(hào)發(fā)生器,函數(shù)信號(hào)發(fā)生器、掃頻信號(hào)發(fā)生器、數(shù)字序列函數(shù)發(fā)生器、圖形信號(hào)發(fā)生器、噪聲信號(hào)發(fā)生器等。按照信號(hào)發(fā)生器性能指標(biāo)可以分為一般信號(hào)發(fā)生器和標(biāo)準(zhǔn)信號(hào)發(fā)生器。前者指對(duì)輸出信號(hào)的頻率、幅度的準(zhǔn)確度和穩(wěn)定度以及波形失真等要求不高的一類(lèi)信號(hào)發(fā)生器。后者是指其輸出信號(hào)的頻率、幅度、調(diào)制系數(shù)等在一定范圍內(nèi)連續(xù)可調(diào),并且讀數(shù)準(zhǔn)確、穩(wěn)定、屏蔽良好的中、高檔信號(hào)發(fā)生器。2 方案比較與論證2.1設(shè)計(jì)任務(wù)與要求設(shè)計(jì)一個(gè)基于單片機(jī)的函數(shù)信號(hào)發(fā)生器,該函數(shù)信號(hào)發(fā)生器可以輸出四種波形,有正弦波,鋸齒波,三角波,方波。在此基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)對(duì)波形頻率和占空比的調(diào)節(jié),并用液晶屏分兩行顯示波形名稱(chēng)和波形頻率。課程設(shè)計(jì)的目的:1、鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識(shí)面,提高綜合及靈活運(yùn)用所學(xué)知識(shí)解決實(shí)際課題設(shè)計(jì)的能力。2、培養(yǎng)針對(duì)課題需要,選擇和查閱有關(guān)手冊(cè)、圖表及文獻(xiàn)資料的能力,提高組成系統(tǒng)、編程、調(diào)試的動(dòng)腦動(dòng)手能力。3、通過(guò)對(duì)課題設(shè)計(jì)方案的分析、選擇、比較,熟悉運(yùn)用單片機(jī)系統(tǒng)開(kāi)發(fā)、軟硬件設(shè)計(jì)的方法內(nèi)容及步驟。4、掌握DAC0832,LM324,74LS22的接口電路,及使用方法。 5、熟悉掌握函數(shù)信號(hào)發(fā)生器的工作原理。課程設(shè)計(jì)要求:1、熟悉組成系統(tǒng)中的實(shí)驗(yàn)?zāi)K原理,畫(huà)出實(shí)驗(yàn)原理圖。2、 寫(xiě)出完整的設(shè)計(jì)任務(wù)書(shū):課題的名稱(chēng)、系統(tǒng)的功能、硬件原理圖、軟件框圖、元件清單、程序清單、參考資料。3、輸出幾種波形,實(shí)現(xiàn)對(duì)頻率和占空比的調(diào)節(jié),以1HZ作為步進(jìn)進(jìn)行調(diào)節(jié)。依據(jù)應(yīng)用場(chǎng)合需要實(shí)現(xiàn)的波形種類(lèi),函數(shù)發(fā)生器的具體指標(biāo)要求會(huì)有所不同。依據(jù)不同的設(shè)計(jì)要求選取不同的設(shè)計(jì)方案。通常,函數(shù)發(fā)生器需要實(shí)現(xiàn)的波形有正弦波、方波、三角波和鋸齒波。有些場(chǎng)合可能還需要任意波形的產(chǎn)生。各種波形共有的指標(biāo)有:波形的頻率、幅度要求,頻率穩(wěn)定度,準(zhǔn)確度等。對(duì)于不同波形,具體的指標(biāo)要求也會(huì)有所差異,例如,占空比是脈沖波形特有的指標(biāo)。函數(shù)發(fā)生器的設(shè)計(jì)方案多種多樣,大致可以分為三大類(lèi):純硬件設(shè)計(jì)法、純軟件設(shè)計(jì)法和軟硬件結(jié)合設(shè)計(jì)法。2.2 方案比較與論證方案一:函數(shù)發(fā)生器設(shè)計(jì)的純硬件法早期,函數(shù)發(fā)生器的設(shè)計(jì)主要是采用運(yùn)算放大器加分立元件來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)的波形比較單一,主要為正弦波、方波和三角波。工作原理嗍也相對(duì)簡(jiǎn)單:首先是產(chǎn)生正弦波,然后通過(guò)波形變換(正弦波通過(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和石英晶體振蕩器三類(lèi)。LC振蕩器適宜于產(chǎn)生幾Hz至幾百M(fèi)Hz的高頻信號(hào);石英晶體振蕩器能產(chǎn)生幾百kHz至幾十MHz的高頻信號(hào)且穩(wěn)定度高;對(duì)于頻率低于幾MHz,特別是在幾百Hz時(shí),常采用RC振蕩電路。RC振蕩電路又分為文氏橋振蕩電路、雙T網(wǎng)絡(luò)式和移相式振蕩電路等類(lèi)型。其中,以文氏橋振蕩電路最為常用。目前,實(shí)現(xiàn)函數(shù)發(fā)生器最簡(jiǎn)單的方法是采用單片集成的函數(shù)信號(hào)發(fā)生器。它是將產(chǎn)生各種波形的功能電路集成優(yōu)化到一個(gè)集成電路芯片里,外加少量的電阻、電容元件來(lái)實(shí)現(xiàn)。采用這種方法的突出優(yōu)勢(shì)是電路簡(jiǎn)單,實(shí)現(xiàn)方便,精度高,性能優(yōu)越;缺點(diǎn)是功能較全的集成芯片價(jià)格較貴。實(shí)際中應(yīng)用較多的單片函數(shù)信號(hào)發(fā)生器有MAX038(最高頻率可達(dá)40MHz)和ICL8038(最高頻率為300kHz)。方案二:函數(shù)發(fā)生器設(shè)計(jì)的純軟件法 函數(shù)發(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)任意函數(shù)發(fā)生器的功能:在LabVIEW軟件的前面板通過(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)任意函數(shù)發(fā)生器的功能。采用純軟件的虛擬儀器設(shè)計(jì)思路可以使設(shè)計(jì)簡(jiǎn)單、高效,僅改變軟件程序就可以輕松實(shí)現(xiàn)波形功能的改變或升級(jí)。從長(zhǎng)遠(yuǎn)角度來(lái)看,純軟件法成本較低。軟件法的缺點(diǎn)是波形的響應(yīng)速度和精度遜色于硬件法。方案三:軟硬件結(jié)合法軟硬件結(jié)合的函數(shù)發(fā)生器設(shè)計(jì)方法同時(shí)兼具軟硬件設(shè)計(jì)的優(yōu)勢(shì):既具有純硬件設(shè)計(jì)的快速、高性能,同時(shí)又具有軟件控制的靈活性、智能性。如以單片機(jī)和單片集成函數(shù)發(fā)生器為核心(如圖2.2)。輔以鍵盤(pán)控制、液晶顯示等電路,設(shè)計(jì)出智能型函數(shù)函數(shù)發(fā)生器,采用軟硬件結(jié)合的方法可以實(shí)現(xiàn)功能較全、性能更優(yōu)的函數(shù)發(fā)生器,同時(shí)還可以擴(kuò)展函數(shù)發(fā)生器的功能,比如通過(guò)軟件編程控制實(shí)現(xiàn)波形的存儲(chǔ)、運(yùn)算、打印等功能,采用USB接口設(shè)計(jì)。使函數(shù)發(fā)生器具有遠(yuǎn)程通信功能等。目前,實(shí)驗(yàn)、科研和工業(yè)生產(chǎn)中使用的信號(hào)源大多采用此方法來(lái)實(shí)現(xiàn)。AT89C51單片機(jī)DAC0832復(fù)位鍵鍵盤(pán)液晶顯示圖 2-1 軟硬件結(jié)合的函數(shù)發(fā)生器 純硬件設(shè)計(jì)法功能較單一,波形改變困難、控制的靈活性不夠,不具備智能性,其中由運(yùn)算放大器加分立元件組成的函數(shù)發(fā)生器,除在學(xué)生實(shí)驗(yàn)訓(xùn)練中使用外?;静槐徊捎?。純軟件設(shè)計(jì)法實(shí)現(xiàn)簡(jiǎn)單,程序改變及功能升級(jí)靈活,但實(shí)現(xiàn)的波形精度及響應(yīng)速度不如硬件法高。純軟件法主要適用于對(duì)波形精度、響應(yīng)速度要求不是很高的場(chǎng)合。相比之下,軟硬件結(jié)合的方法可以設(shè)計(jì)出性能最優(yōu)、功能擴(kuò)展靈活、控制智能化的新一代的函數(shù)發(fā)生器,可以滿(mǎn)足教學(xué)、科研、工業(yè)生產(chǎn)等各方面對(duì)函數(shù)發(fā)生器性能有較高要求的應(yīng)用場(chǎng)合。 綜合以上幾種設(shè)計(jì)方案,本設(shè)計(jì)采用方案三的方法軟硬件設(shè)計(jì)法。其方案能夠產(chǎn)生很好的波形,也易實(shí)現(xiàn)。3 系統(tǒng)硬件設(shè)計(jì)3.1 系統(tǒng)主要功能該函數(shù)信號(hào)發(fā)生器可以輸出四種波形,有正弦波,鋸齒波,三角波,方波。在此基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)對(duì)波形頻率和占空比的調(diào)節(jié),并用液晶屏分兩行顯示波形名稱(chēng)和波形頻率。3.2 系統(tǒng)硬件構(gòu)成及功能函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)總體框圖如圖所示,主要有單片機(jī)AT89C52,電源,鍵盤(pán)模塊,LCD1602顯示模塊構(gòu)成。按案件模塊:由5個(gè)復(fù)位開(kāi)關(guān)與74LS21組成的系統(tǒng)通過(guò)對(duì)單片機(jī)傳輸中斷信號(hào)來(lái)實(shí)現(xiàn)波形切換及頻率和占空比的調(diào)節(jié)。顯示模塊:用LCD1602,分行顯示波形類(lèi)型和波形頻率的顯示。電源模塊:電源模塊有220V市變電壓經(jīng)變壓,整流,穩(wěn)壓得到+ -5V, + -12V的電壓,維持系統(tǒng)正常工作。系統(tǒng)的總體框圖如圖1所示:鍵盤(pán)顯示控制器顯示模塊鍵盤(pán)模塊波形輸出模塊電 源源主控器AT89C52圖3-1系統(tǒng)總體框圖 3.2.1 AT89C52單片機(jī)及其說(shuō)明典型的MCS-51單片機(jī)芯片集成了以下幾個(gè)基本組成部分。1 一個(gè)8位的CPU2 128B或256B單元內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM)3 4KB或8KB片內(nèi)程序存儲(chǔ)器(ROM或EPROM)4 4個(gè)8位并行I/O接口P0P3。5 兩個(gè)定時(shí)/計(jì)數(shù)器。6 5個(gè)中斷源的中斷管理控制系統(tǒng)。7 一個(gè)全雙工串行I/O口UART(通用異步接收、發(fā)送器) 8 一個(gè)片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路。圖3-2 單片機(jī)引腳 CPU結(jié)構(gòu):CPU 是單片機(jī)的核心部件。它由運(yùn)算器和控制器等部件組成。1.運(yùn)算器 運(yùn)算器以完成二進(jìn)制的算術(shù)/邏輯運(yùn)算部件ALU為核心。它可以對(duì)半字節(jié)(4)、單字節(jié)等數(shù)據(jù)進(jìn)行操作。例如,能完成加、減、乘、除、加1、減1、BCD碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算,完成與、或、異或、求反、循環(huán)等邏操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。運(yùn)算器還包含有一個(gè)布爾處理器,用以處理位操作。它以進(jìn)位標(biāo)志位C為累加器,可執(zhí)行置位、復(fù)位、取反、位判斷轉(zhuǎn)移,可在進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行位數(shù)據(jù)傳誦等操作,還可以完成進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。2.程序計(jì)數(shù)器PCPC是一個(gè)16位的計(jì)數(shù)器,用于存放一條要執(zhí)行的指令地址,尋址范圍為64kB,PC有自動(dòng)加1功能,即完成了一條指令的執(zhí)行后,其內(nèi)容自動(dòng)加1。3.指令寄存器 指令寄存器用于存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送如指令寄存器,經(jīng)指令譯碼器譯碼后由定時(shí)有控制電路發(fā)出相應(yīng)的控制信號(hào),完成指令功能。存儲(chǔ)器和特殊功能寄存器存儲(chǔ)器(Memory)是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù)。計(jì)算機(jī)中的全部信息,包括輸入的原始數(shù)據(jù)、計(jì)算機(jī)程序、中間運(yùn)行結(jié)果和最終運(yùn)行結(jié)果都保存在存儲(chǔ)器中。它根據(jù)控制器指定的位置存入和取出信息。特殊功能寄存器(SFR)的地址范圍為80HFFH。在MCS51中,除程序計(jì)數(shù)器PC和四個(gè)工作寄存器區(qū)外,其余21個(gè)特殊功能寄存器都在這SFR塊中。其中5個(gè)是雙字節(jié)寄存器,它們共占用了26個(gè)字節(jié)。各特殊功能寄存器的符號(hào)和地址見(jiàn)附表2。其中帶號(hào)的可位尋址。特殊功能寄存器反映了8051的狀態(tài),實(shí)際上是8051的狀態(tài)字及控制字寄存器。用于CPU PSW便是典型一例。這些特殊功能寄存器大體上分為兩類(lèi),一類(lèi)與芯片的引腳有關(guān),另一類(lèi)作片內(nèi)功能的控制用。與芯片引腳有關(guān)的特殊功能寄存器是P0P3,它們實(shí)際上是4個(gè)八位鎖存器(每個(gè)I/O口一個(gè)),每個(gè)鎖存器附加有相應(yīng)的輸出驅(qū)動(dòng)器和輸入緩沖器就構(gòu)成了一個(gè)并行口。MCS51共有P0P3四個(gè)這樣的并行口,可提供32根I/O線(xiàn),每根線(xiàn)都是雙向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、標(biāo)志寄存器PSW、數(shù)據(jù)指針DPTR等的功能前已提及。 3.P0-P3口結(jié)構(gòu) P0口功能:P0口具有兩種功能:第一,P0口可以作為通用I/O接口使用,P0.7P0.0用于傳送CPU的輸入/輸出數(shù)據(jù)。輸出數(shù)據(jù)時(shí)可以得到鎖存,不需外接專(zhuān)用鎖存器,輸入數(shù)據(jù)可以得到緩沖。第二,P0.7P0.0在CPU訪(fǎng)問(wèn)片外存儲(chǔ)器時(shí)用于傳送片外存儲(chǔ)器de低8位地址,然后傳送CPU對(duì)片外存儲(chǔ)器的讀寫(xiě) P1口 功能:P1口的功能和P0口de第一功能相同,僅用于傳遞I/O輸入/輸出數(shù)據(jù)。 P2口的功能:2口的第一功能和上述兩組引腳的第一功能相同,即它可以作為通用I/O使用。它的第二功能和P0口引腳的第二功能相配合,作為地址總線(xiàn)用于輸出片外存儲(chǔ)器的高8位地址。 P3口功能:P3口有兩個(gè)功能:第一功能與其余三個(gè)端口的第一功能相同;第二功能作控制用,每個(gè)引腳都不同。 P3.0RXD串行數(shù)據(jù)接收口 P3.1TXD串行數(shù)據(jù)發(fā)送口 P3.2INT0外中斷0輸入 P3.3INT1外中斷1輸入 P3.4T0計(jì)數(shù)器0計(jì)數(shù)輸入 P3.5T1計(jì)數(shù)器1計(jì)數(shù)輸入 P3.6WR外部RAM寫(xiě)選通信號(hào) P3.7RD外部RAM讀選通信號(hào) 時(shí)鐘電路和復(fù)位電路 單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn);復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。 時(shí)鐘電路:單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩方式。圖3-3 時(shí)鐘部分電路圖在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷諧振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自積振蕩,并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6MHZ、12MHZ、或24MHZ。5. 單片機(jī)的時(shí)序單位振蕩周期:晶振的振蕩周期,又稱(chēng)時(shí)鐘周期,為最小的時(shí)序單位。狀態(tài)周期:振蕩頻率經(jīng)單片機(jī)內(nèi)的二分頻器分頻后提供給片內(nèi)CPU的時(shí)鐘周期。因此一個(gè)狀態(tài)周期包含2個(gè)振蕩周期。機(jī)器周期:1個(gè)機(jī)器周期由6個(gè)狀態(tài)周期12個(gè)振蕩周期組成,是計(jì)算機(jī)執(zhí)行一種基本操作的時(shí)間單位。指令周期:執(zhí)行一條指令所需的時(shí)間。一個(gè)指令周期由1-4個(gè)機(jī)器周期組成,依據(jù)指令不同而不同.單片機(jī)的復(fù)位狀態(tài)當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱(chēng)RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開(kāi)關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。上電或開(kāi)關(guān)復(fù)位要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在單片機(jī)運(yùn)行期間,用開(kāi)關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容C3的充電和反相門(mén)的作用,使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ù)位的操作。圖3- 4 復(fù)位電路單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC0000H,這表明程序從0000H地址單元開(kāi)始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過(guò)24個(gè)振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。51單片機(jī)在系統(tǒng)復(fù)位時(shí),將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。3.2.2 資源分配晶振采用12MHZ。P1口的P1.0-P1.4分別與四個(gè)按鍵連接,分別控制波形切換、頻率加、頻率減,占空比加,占空比減。P2口與DAC0832的D0-D7數(shù)據(jù)輸入端相連。P3口用來(lái)控制DAC0832的輸入寄存器選擇信號(hào)CS。3.2.3 D/A轉(zhuǎn)換模塊部件DAC0832芯片原理管腳功能介紹(如圖6所示)圖3-5 DAC0832管腳圖DI7DI0:8位的數(shù)據(jù)輸入端,DI7為最高位。ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線(xiàn),高電平有效。CS:選片信號(hào)輸入線(xiàn)(選通數(shù)據(jù)鎖存器),低電平有效。WR1:數(shù)據(jù)鎖存器寫(xiě)選選通輸入線(xiàn),負(fù)脈沖有效,由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線(xiàn)變化,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存。XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線(xiàn),低電平有效,負(fù)脈沖有效。WR2:DAC寄存器選通輸入線(xiàn),負(fù)脈沖有效,由WR2、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時(shí),DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開(kāi)始D/A轉(zhuǎn)換。IOUT1:模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng) DAC寄存器中數(shù)據(jù)全為0時(shí),輸出電流為0。IOUT2:模擬電流輸出端2, IOUT2與IOUT1的和為一個(gè)常數(shù),即IOUT1IOUT2常數(shù)。RFB:反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以 RFB端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器的輸出端和輸入端之間。VREF:參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來(lái)的模擬量電壓值的幅度,VREF范圍為(+10-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。Vcc:芯片供電電壓,范圍為(+5+15)V。AGND:模擬量地,即模擬電路接地端。DGND:數(shù)字量地。3.2.4 外部控制模塊部件 圖3-6 74LS22管腳圖74LS22為四輸入雙與門(mén)A1,B1,C1,D1為第一個(gè)與門(mén)的輸入,Y1為第一個(gè)與門(mén)的輸出。A2,B2,C2,D2為第一個(gè)與門(mén)的輸入,Y2為第一個(gè)與門(mén)的輸出。在此系統(tǒng)中用來(lái)給單片機(jī)提供中斷信號(hào)。3.2.5 放大部分LM324引腳圖(管腳圖) 圖3-7 LM324引腳圖簡(jiǎn)介: LM324系列器件為價(jià)格便宜的帶有真差動(dòng)輸入的四運(yùn)算放大器。與單電源應(yīng)用場(chǎng)合的標(biāo)準(zhǔn)運(yùn)算放大器相比,它們有一些顯著優(yōu)點(diǎn)。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。共模輸入范圍包括負(fù)電源,因而消除了在許多應(yīng)用場(chǎng)合中采用外部偏置元件的必要性。它有5個(gè)引出腳,其中“+”、“-”為兩個(gè)信號(hào)輸入端,“V+”、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個(gè)信號(hào)輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的位相反;Vi+(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號(hào)與該輸入端的相位相同。3.3 系統(tǒng)的軟件設(shè)計(jì)3.3.1 信號(hào)頻率數(shù)據(jù)采集本程序通過(guò)外部中斷,接收減頻或加頻按鍵,單片機(jī)內(nèi)部對(duì)接受的值經(jīng)過(guò)運(yùn)算得出波形的輸出延時(shí),從而產(chǎn)生頻率的改變。電路較為簡(jiǎn)單,成本較低。3.3.2 正弦波產(chǎn)生程序輸入正弦波的采樣點(diǎn),計(jì)算出256個(gè)(一個(gè)周期內(nèi))正弦波信號(hào)值。然后通過(guò)輸出的兩點(diǎn)間的延時(shí)來(lái)實(shí)現(xiàn)調(diào)頻。依次循環(huán)輸出,可得出正弦波。采點(diǎn)值放在table2中,程序如下:void sin()/正弦波unsigned int i;for(i=0;i256;i+)DAC0832=table2i;delay(pinlv/256);3.3.3 三角波產(chǎn)生程序設(shè)個(gè)自變量i讓它不斷地自加1,直到加到255時(shí),t=i,對(duì)t進(jìn)行不斷地自減1直到減到t=0,然后再不斷地重復(fù)上述過(guò)程產(chǎn)生三角波。程序如下:void tran()/三角波unsigned char i;for(i=0;i0;i-)DAC0832=i;delay(pinlv/64);3.3.4 方波產(chǎn)生程序設(shè)個(gè)自變量i=0使之延時(shí)一段時(shí)間,再另i=255時(shí)在延時(shí)與i=0相同的時(shí)間,然后再重復(fù)上述過(guò)程。程序如下:void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0xff;delay(pinlv/2);3.3.5 鋸齒波產(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í),波形基本上近似于直線(xiàn)。適當(dāng)選擇循環(huán)的時(shí)間,可以得到不同的周期鋸齒波。鋸齒波發(fā)生原理與方波類(lèi)似,只是高低兩個(gè)時(shí)延的常數(shù)不同,所以用延時(shí)法,來(lái)產(chǎn)生鋸齒波,設(shè)個(gè)自變量i讓它不斷地自加1,直到叫到255,DAC0832可以又自動(dòng)歸0,然后再不斷地重復(fù)上述過(guò)程。程序如下:void jvchi()/鋸齒波unsigned char i;for(i=0;i255;i+)DAC0832=i;delay(pinlv/256);3.3.6信號(hào)放大模塊設(shè)計(jì)從單片機(jī)中輸出的數(shù)字信號(hào)經(jīng)過(guò)DAC0832轉(zhuǎn)換后,由于信號(hào)的幅值比較小,所以需要放大。采用常規(guī)的放大方式,采用兩片運(yùn)放,實(shí)現(xiàn)兩級(jí)放大,設(shè)計(jì)的電路如圖6: 圖3 3-8放大電路接口3. 3. 7數(shù)模轉(zhuǎn)換模塊設(shè)計(jì)本設(shè)計(jì)模數(shù)轉(zhuǎn)換采用常見(jiàn)的芯片:DAC0832,本設(shè)計(jì)采用直通方式進(jìn)行模數(shù)轉(zhuǎn)換。為了簡(jiǎn)潔起見(jiàn),在仿真圖中采用網(wǎng)絡(luò)節(jié)點(diǎn)的方式進(jìn)行連線(xiàn),從單片機(jī)P0口輸出的數(shù)據(jù)直接連接到模數(shù)芯片DAC0832的數(shù)據(jù)口。如圖: 圖3-9 DA轉(zhuǎn)換接口電路 4 仿真圖及結(jié)果分析 4.1函數(shù)發(fā)生器的調(diào)試與測(cè)試 本系統(tǒng)是在protues下仿真,使用Keil C編程。從而實(shí)現(xiàn)其設(shè)計(jì)及仿真。在測(cè)試本系統(tǒng)是采用的是將設(shè)置的數(shù)值與示波器所測(cè)值進(jìn)行對(duì)比,進(jìn)而可以知道本系統(tǒng)的性能。頻率測(cè)試數(shù)據(jù): 設(shè)定頻率(HZ)示波器測(cè)試頻率(HZ) 相對(duì)誤差%3.93.961.57.87.931.2815.6316.133.194.2仿真結(jié)果圖正弦波仿真圖 圖4-1正弦波圖三角波仿真圖 圖4-2三角波圖鋸齒波仿真圖 圖4-3鋸齒波圖方波仿真圖 圖4-4方波圖32總結(jié)5 總結(jié)與展望本次的設(shè)計(jì)中利用AT89C52和DAC0832以及放大器完成電路的設(shè)計(jì),用開(kāi)關(guān)來(lái)控制各種波形的發(fā)生及轉(zhuǎn)換,用單片機(jī)輸出后,經(jīng)過(guò)模數(shù)轉(zhuǎn)換器生成波形,最終可以通過(guò)示波器觀(guān)察。在這次的軟件設(shè)計(jì)中,程序設(shè)計(jì)采用的是C語(yǔ)言。雖然匯編語(yǔ)言具有速度快,可以直接對(duì)硬件進(jìn)行操作的優(yōu)點(diǎn),它可以極好的發(fā)揮硬件的功能。但是匯編語(yǔ)言也存在編寫(xiě)的代碼非常難懂,不好維護(hù),很容易產(chǎn)生 bug,難于調(diào)試的缺點(diǎn)。因此,在大型程序的設(shè)計(jì)中,多采用C語(yǔ)言進(jìn)行程序編譯。C語(yǔ)言簡(jiǎn)潔高效,是最貼近硬件的高級(jí)編程語(yǔ)言,經(jīng)過(guò)多年的發(fā)展,現(xiàn)在已成熟為專(zhuān)業(yè)水平的高級(jí)語(yǔ)言。而且,現(xiàn)在單片機(jī)產(chǎn)品推出時(shí)紛紛配套了C語(yǔ)言編譯器,應(yīng)用廣泛。由于真正意義上的程序設(shè)計(jì)還不多,因此還不是很得心應(yīng)手,所以在設(shè)計(jì)中遇到一些問(wèn)題和一些難點(diǎn)。比如:在程序設(shè)計(jì)中如何實(shí)現(xiàn)程序結(jié)構(gòu)的最優(yōu)化,以達(dá)到較高的質(zhì)量。這是以后設(shè)計(jì)中要注意的問(wèn)題。 通過(guò)這次課程設(shè)計(jì),我進(jìn)一步了解了函數(shù)發(fā)生器的原理,在實(shí)際動(dòng)手操作過(guò)程中,使我接觸了許多我以前沒(méi)接觸過(guò)的元件,而且重新溫習(xí)了剛學(xué)不久的匯編語(yǔ)言,使我學(xué)得了許多知識(shí),使我獲益匪淺。這次課程設(shè)計(jì),使我的動(dòng)手能力得到了很大的提高,更使我們懂得理論知識(shí)的重要性,沒(méi)有理論的指導(dǎo)一切實(shí)際行動(dòng)都是盲目的,且實(shí)際操作是我們得到的理論知識(shí)得到驗(yàn)證,更能增加對(duì)理論知識(shí)的理解。致謝致 謝從寫(xiě)開(kāi)題報(bào)告到現(xiàn)在的論文定稿,經(jīng)過(guò)了幾個(gè)月的不懈努力,今天終于可以完成畢業(yè)設(shè)計(jì)論文最后的部分,開(kāi)始寫(xiě)謝辭了。這表示可以進(jìn)入畢業(yè)答辯了,更表示我離開(kāi)這個(gè)學(xué)校的時(shí)刻快要到了。回憶起求學(xué)期間的點(diǎn)點(diǎn)滴滴,不禁感嘆,真是時(shí)光飛逝??!大學(xué)生活就在這一轉(zhuǎn)眼間過(guò)去了!四年的努力與付出,隨著論文的完成,終于讓我的大學(xué)生活劃下了一個(gè)完整的句點(diǎn)。 畢業(yè)設(shè)計(jì)的順利完成,乃至學(xué)業(yè)的順利完成,在這個(gè)漫長(zhǎng)而又短暫的過(guò)程中,有多少可敬的師長(zhǎng)、同學(xué)和朋友給了我莫大的支持與幫助。在這里請(qǐng)接受我誠(chéng)摯的謝意!感謝我的指導(dǎo)教師陸英老師,本論文從選題到完成,每一步都傾注了陸老師大量的心血。是他給了我大力的支持與幫助、耐心的輔導(dǎo)與解惑。陸老師淵博的專(zhuān)業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,使我感受到她樸實(shí)無(wú)華、平易近人的人格魅力。她是我日后學(xué)習(xí)、工作與生活中的最好的榜樣!感謝我的同學(xué)與朋友們,是你們陪我渡過(guò)了大學(xué)四年的美好時(shí)光,給我留下了許多難忘的回憶。感謝我同寢室的朋友們,感謝你們四年來(lái)的陪伴以及在生活中給予的關(guān)心和幫助。讓我學(xué)會(huì)了與人相處的藝術(shù)。感謝我的學(xué)校,感謝為我們提供了如此好的學(xué)習(xí)與生活環(huán)境.感謝在大學(xué)期間所有傳授我知識(shí)的老師們,感謝你們不但教會(huì)了我許多的專(zhuān)業(yè)知識(shí),更培養(yǎng)了我良好的自主學(xué)習(xí)能力。這也是論文得以順利完成的基礎(chǔ)。感謝我的家人,感謝你們這么多年來(lái)默默的支持與關(guān)愛(ài)。培養(yǎng)了我樂(lè)觀(guān)向上,積極進(jìn)取的精神。感謝人生中所有喜歡和不喜歡我的人,感謝人生中所有給予和沒(méi)有給予過(guò)我?guī)椭娜耍兄x生活對(duì)我的磨練,造就了我堅(jiān)強(qiáng)勇敢的性格。更加給了我繼續(xù)前行的動(dòng)力。祝所有我感謝的人們,一生幸福平安.參考文獻(xiàn)參考文獻(xiàn)1 程全.基于A(yíng)T89C52實(shí)現(xiàn)的多種函數(shù)發(fā)生器的設(shè)計(jì)J.周口師范學(xué)院學(xué)報(bào),2005.22(5):5758.2 周明德.微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用M.北京:清華大學(xué)出版社,2002.341364.3 劉樂(lè)善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用M.北京:北京航空航天大學(xué)出版社,2001.258264.4 童詩(shī)白.模擬電路技術(shù)基礎(chǔ)M.北京:高等教育出版社,2000.171202.5 杜華.任意函數(shù)發(fā)生器及應(yīng)用J.國(guó)外電子測(cè)量技術(shù),2005.1:3840.6 張友德.單片微型機(jī)原理、應(yīng)用與實(shí)踐M.上海:復(fù)旦大學(xué)出版社,2004.4044. 7 程朗.基于8051單片機(jī)的雙通道函數(shù)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)J.計(jì)算機(jī)工程與應(yīng)用,2004.8:100103.8 張永瑞.電子測(cè)量技術(shù)基礎(chǔ)M.西安:西安電子科技大學(xué)出版社,2006.61101.9 李葉紫. MCS-51單片機(jī)應(yīng)用教程M.北京:清華大學(xué)出版社,2004.232238.附錄 附錄附錄A 程序清單#include#define uchar unsigned char#define uint unsigned int/#define Fosc 24000000/12000000 /12分頻后的頻率#define DAdata P1/DA數(shù)據(jù)端口sbit DA_S1= P20; / 控制DAC0832的8位輸入寄存器,僅當(dāng)都為0時(shí),可以輸出數(shù)據(jù)(處于直通狀態(tài)),否則,輸出將被鎖存sbit DA_S2= P21; / 控制DAC0832的8位DAC寄存器,僅當(dāng)都為0時(shí),可以輸出數(shù)據(jù)(處于直通狀態(tài)),否則,輸出將被鎖存sbit KEY1 = P24;sbit KEY2 = P25;sbit KEY3 = P26;sbit KEY4 = P27;sbit MN_DAT = P34; /模擬外部中斷數(shù)據(jù)端口sbit KEY_INT0 = P32;uchar wavecount; /抽點(diǎn)計(jì)數(shù)uchar THtemp,TLtemp;/傳遞頻率的中間變量/uint T_temp;uchar judge=1; /在方波輸出函數(shù)中用于簡(jiǎn)單判別作用uchar waveform; /當(dāng)其為0、1、2時(shí),分別代表三種波uchar code freq_unit4=10,50,200,10; /三種波的頻率單位 sawtoothuchar idata wavefreq4=1,1,1,1; /給每種波定義一個(gè)數(shù)組單元,用于存放單位頻率的個(gè)數(shù)uchar code lcd_hang1=Sine Wave Triangle Wave Square Wave sawtooth Wave Select Wave: press No.1 key! ;uchar idata lcd_hang216=f= Hz ;/*uchar code wave_freq_adjust= /頻率調(diào)整中間值 0xff,0xb8,0x76,0x56,0x43,0x37,0x2e,0x26,0x20,0x1c, /正弦波頻率調(diào)整中間值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e,/三角波頻率調(diào)整中間值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e; uint code wave_freq_adjust= /頻率調(diào)整中間值 380,184,118,86,67,55,46,28,38,32,295,142, 90,65,50,40,32,27,23,14,295,142, 90,65,50,40,32,27,23,14; */*uchar code waveTH= 0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;uchar code waveTL= 0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1,0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b, 0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee;*/*這兩組數(shù)組很重要,需要根據(jù)波形來(lái)調(diào)試,選擇合適的值,使輸出波形達(dá)到頻率要求*/uchar code waveTH= 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, /正弦波頻率調(diào)整中間值0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde,/三角波頻率調(diào)整中間值0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c; /*/uchar code triangle_tab= /每隔數(shù)字8,采取一次0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff,0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80,0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00;uchar code sine_tab256=/輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,/輸出電壓從最大值到0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,/輸出電壓從0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論