基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)設(shè)計(jì)1_第1頁(yè)
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)設(shè)計(jì)1_第2頁(yè)
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)設(shè)計(jì)1_第3頁(yè)
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)設(shè)計(jì)1_第4頁(yè)
基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)設(shè)計(jì)1_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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)介

1、華東交通大學(xué)理工學(xué)院畢業(yè)設(shè)計(jì)華東交通大學(xué)理工學(xué)院institute of technology. east china jiaotong university 畢 業(yè) 設(shè) 計(jì)(論 文)設(shè)計(jì)論文不分,去掉論文留下設(shè)計(jì) graduation design (thesis)(2010 2014 年)題 目 基于單片機(jī)的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)論文寫(xiě)作存在格式問(wèn)題;另外沒(méi)有按照要求給出系統(tǒng)主體原理圖、完整的硬件電路圖、系統(tǒng)proteus仿真圖以及程序清單。 分 院: 電氣與信息工程分院 專(zhuān) 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 電力2010-1 學(xué) 號(hào): 20100210470134 學(xué)生姓名: 曹開(kāi)建 指導(dǎo)

2、教師: 李房云 起訖日期: 2013.112014.5 格式排版不合格目錄論文結(jié)構(gòu)還算合理,但是內(nèi)容有抄襲現(xiàn)象存在,此外格式上存在一定的問(wèn)題,請(qǐng)結(jié)合批注修改,沒(méi)有批注的地方也要自己認(rèn)真檢查,a線(xiàn)問(wèn)題要認(rèn)真按照有關(guān)文件要求進(jìn)行修改。摘 要i第1章 緒 論11.1 本課題研究背景11.2 函數(shù)發(fā)生器分類(lèi)21.3 研究?jī)?nèi)容3第2章 整體設(shè)計(jì)方案42.1 方案的提出和整論42.2 設(shè)計(jì)原理5第3章 硬件設(shè)計(jì)74.1 硬件整體設(shè)計(jì)74.2 復(fù)位電路84.3 時(shí)鐘電路84.4 鍵盤(pán)電路94.5 d/a轉(zhuǎn)換模塊114.5.1 dac0832轉(zhuǎn)換器簡(jiǎn)介114.6 顯示電路設(shè)計(jì)13第4章 軟件設(shè)計(jì)144.1 設(shè)

3、計(jì)構(gòu)思144.2 主程序流程圖144.3 波形產(chǎn)生子程序184.4 中斷服務(wù)子程序204.5 按鍵掃描子程序214.6 顯示子程序22第5章 仿真驗(yàn)證235.1 整體設(shè)計(jì)235.2 功能實(shí)現(xiàn)235.3 本章小結(jié)26結(jié)論27參考文獻(xiàn)29摘 要 信號(hào)發(fā)生器是學(xué)習(xí)、科研領(lǐng)域中一種十分常用的信號(hào)源,廣泛地應(yīng)用于電子電路、自動(dòng)控制系統(tǒng)和教學(xué)實(shí)驗(yàn)等領(lǐng)域。目前使用的信號(hào)發(fā)生器大部分是函數(shù)信號(hào)發(fā)生器,且特殊波形發(fā)生器的價(jià)格昂貴。為此,為節(jié)省成本,本文利用80c51單片機(jī)構(gòu)成信號(hào)發(fā)生器,可產(chǎn)生三角波、方波、正弦波等多種特殊波形,波形的頻率可用程序控制改變。 本次設(shè)計(jì)利用80c51設(shè)計(jì)一個(gè)函數(shù)信號(hào)發(fā)生器,詳細(xì)說(shuō)明

4、了其實(shí)現(xiàn)過(guò)程。本系統(tǒng)使用匯編語(yǔ)言編寫(xiě),用80c51單片機(jī)來(lái)實(shí)現(xiàn)各模塊功能,使用proteus進(jìn)行仿真。本文描述使用匯編語(yǔ)言和proteus仿真實(shí)現(xiàn)函數(shù)信號(hào)發(fā)生器的基本功能,實(shí)現(xiàn)了方波、三角波、正弦波、鋸齒波,頻率可調(diào)為10hz、100hz、500hz、1000hz。本文給出了源程序、各模塊的連接圖以及仿真圖,并做出了詳細(xì)的分析。經(jīng)測(cè)試該設(shè)計(jì)方案線(xiàn)路優(yōu)化,結(jié)構(gòu)緊湊,性能優(yōu)越,滿(mǎn)足設(shè)計(jì)要求。關(guān)鍵詞:信號(hào)發(fā)生器;80c51;proteus;頻率可調(diào);單片機(jī)iiabstractsignal generators are learning, research in the field of a very

5、 common source, widely used in the field of electronic circuits, automatic control system and teaching experiments. most of the current signal generator is a function of the signal generator, and the price is expensive special waveform generator. for this reason, in order to save costs, we use 80c51

6、 microcontroller constitute signal generator can generate triangle wave, square wave, sine wave and other special frequency can be controlled by changing the waveform. the design uses 80c51 design a function generator, a detailed description of its implementation process. the system is written in as

7、sembly language, using 80c51 microcontroller to achieve the function of each module, using the proteus simulation.this paper describes the use of assembly language and proteus simulation function of the basic functions of the signal generator to achieve a square wave, triangle wave, sine, sawtooth,

8、adjustable frequency is 10hz, 100hz, 500hz, 1000hz. in this paper, the source, connection diagram and simulation diagram of each module, and make a detailed analysis. . the line has been tested and optimized design, compact structure, superior performance to meet the design requirements.key words: s

9、ignal generator; 80c51; proteus; adjustable frequency; mcu34第1章 緒 論1.1 本課題研究背景 隨著電子測(cè)量及其他部門(mén)電子測(cè)量是一個(gè)技術(shù),其他部門(mén)是一個(gè)單位,兩者之間你有類(lèi)比關(guān)系嗎?對(duì)各類(lèi)信號(hào)發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號(hào)發(fā)生器種類(lèi)增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號(hào)發(fā)生器向著自動(dòng)化、智能化方向發(fā)展?,F(xiàn)在,許多信號(hào)發(fā)生器帶有微處理器,因而具備了自校、自檢、自動(dòng)故障診斷和自動(dòng)波形形成和修正等功能,可以和控制計(jì)算機(jī)及其他測(cè)量?jī)x器一起方便的構(gòu)成自動(dòng)測(cè)試系統(tǒng)。當(dāng)前信號(hào)發(fā)生器總的趨勢(shì)是向著寬頻率覆蓋、低功

10、耗、高頻率精度、多功能、自動(dòng)化和智能化方向發(fā)展。在科學(xué)研究、工程教育及生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控制、教學(xué)實(shí)驗(yàn)、機(jī)械振動(dòng)試驗(yàn)、動(dòng)態(tài)分析、材料試驗(yàn)、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號(hào)發(fā)生器。而在我們?nèi)粘I钪校约耙恍┛茖W(xué)研究中,鋸齒波和正弦波、矩形波信號(hào)是常用的基本測(cè)試信號(hào)。譬如在示波器、電視機(jī)等儀器中,為了使電子按照一定規(guī)律運(yùn)動(dòng),以利用熒光屏顯示圖像,常用到鋸齒波產(chǎn)生器作為時(shí)基電路。信號(hào)發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測(cè)控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。 但市面上能看到的儀器在頻率精度、帶寬、波形種類(lèi)及程控方面都已不能滿(mǎn)足許多方面實(shí)際應(yīng)用的需求。加之各類(lèi)功能的半導(dǎo)體集成芯片的快速生

11、產(chǎn),都使我們研制一種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號(hào)發(fā)生器成為可能1。單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:cpu、內(nèi)存、內(nèi)部和外部總線(xiàn)系統(tǒng),目前大部分還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)是所有微處理機(jī)中性?xún)r(jià)比最高的一種,隨著種類(lèi)的不斷全面,功能不斷完善,其應(yīng)用領(lǐng)域也迅速擴(kuò)大。單片機(jī)在智能儀表、實(shí)時(shí)控制、機(jī)電一體化、辦公機(jī)械、家用電器等方面都有相當(dāng)?shù)膽?yīng)用領(lǐng)域。當(dāng)前

12、,8位單片機(jī)主要用于工業(yè)控制,如溫度、壓力、流量、計(jì)量和機(jī)械加工的測(cè)量和控制場(chǎng)合;高效能的16位單片機(jī)(如mcs-96、mk-68200)可用在更復(fù)雜的計(jì)算機(jī)網(wǎng)絡(luò)??梢哉f(shuō),微機(jī)測(cè)控技術(shù)的應(yīng)用已滲透到國(guó)民經(jīng)濟(jì)的各個(gè)部門(mén),微機(jī)測(cè)控技術(shù)的應(yīng)用是產(chǎn)品提高檔次和推陳出新的有效途徑2。便攜式和智能化越來(lái)越成為儀器的基本要求,對(duì)傳統(tǒng)儀器的數(shù)字化,智能化,集成化也就明顯得尤為重要。平時(shí)常用信號(hào)源產(chǎn)生正弦波,方波,三角波等常見(jiàn)波形作為待測(cè)系統(tǒng)的輸入,測(cè)試系統(tǒng)的性能。單在某些場(chǎng)合,我們需要特殊波形對(duì)系統(tǒng)進(jìn)行測(cè)試,這是傳統(tǒng)的模擬信號(hào)發(fā)生器和數(shù)字信號(hào)發(fā)生器很難勝任的。利用單片機(jī)的強(qiáng)大功能,設(shè)計(jì)合適的人機(jī)交互界面,使用

13、戶(hù)能夠通過(guò)手動(dòng)的設(shè)定,設(shè)置所需波形。1.2 函數(shù)發(fā)生器分類(lèi)函數(shù)發(fā)生器應(yīng)用廣泛,種類(lèi)繁多,性能各異,分類(lèi)也不盡一致。函數(shù)發(fā)生器亦稱(chēng)信號(hào)發(fā)生器,主要作為實(shí)驗(yàn)用信號(hào)源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。按照頻率范圍分類(lèi)可以分為:超低頻信號(hào)發(fā)生器、低頻信號(hào)發(fā)生器、視頻信號(hào)發(fā)生器視頻發(fā)生器的頻率是多少?可以排在這個(gè)位置?、高頻波形發(fā)生器、甚高頻波形發(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ù)字序列波形發(fā)生器、圖形信號(hào)發(fā)生器、噪聲信號(hào)發(fā)生器等。按照信號(hào)發(fā)生器性能指標(biāo)可以

14、分為一般信號(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ā)生器3。函數(shù)發(fā)生器作為一種常見(jiàn)的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的一般可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機(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)其性能

15、難以令人滿(mǎn)意,而且由于低頻信號(hào)源所需的rc要很大。大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。利用單片機(jī)采用程序設(shè)計(jì)方法來(lái)產(chǎn)生低頻信號(hào),其頻率底線(xiàn)很低。具有線(xiàn)路相對(duì)簡(jiǎn)單,結(jié)構(gòu)緊湊,價(jià)格低廉,頻率穩(wěn)定度高,抗干擾能力強(qiáng),用途廣泛等優(yōu)點(diǎn),并且能夠?qū)Σㄐ芜M(jìn)行細(xì)微調(diào)整,改良波形,使其滿(mǎn)足系統(tǒng)的要求。只要對(duì)電路稍加修改,調(diào)整程序,即可完成功能升級(jí)。1.3 研究?jī)?nèi)容本次設(shè)計(jì)是基于80c51單片機(jī)信號(hào)發(fā)生器設(shè)計(jì),信號(hào)發(fā)生器可以產(chǎn)生方波、三角波、正弦波、3種波形,通過(guò)d/a轉(zhuǎn)換器dac0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬

16、信號(hào),濾波放大,最終由示波器顯示出來(lái),能產(chǎn)10hz、100hz、500hz、1000hz的波形。在程序運(yùn)行中,當(dāng)接收到來(lái)自外界的命令,需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號(hào)發(fā)生器的輸出端口輸出4。 第2章 整體設(shè)計(jì)方案2.1 方案的提出和整論常用的函數(shù)信號(hào)發(fā)生器的實(shí)現(xiàn)方法有如下幾種:1.采用分立元件實(shí)現(xiàn)信號(hào)的輸出,主要是通過(guò)模擬電路實(shí)現(xiàn)正弦信號(hào)的輸出,在通過(guò)各種積分微分電路實(shí)現(xiàn)各種不同波形的輸出。但是這種方法頻率和幅值的調(diào)整比較困難,而且模擬電路受外部因素的影響較大,輸出的波形難以控制。2.采用集成信號(hào)發(fā)生芯片max038輸出

17、各種波形,并通過(guò)外接電阻值改變實(shí)現(xiàn)對(duì)幅值和頻率的調(diào)整。這種方法實(shí)現(xiàn)起來(lái)比較容易,但是頻率和幅值的調(diào)節(jié)比較困難5。圖要自己畫(huà)圖2-1 基于max038的信號(hào)發(fā)生器原理圖3.采用dac0832通過(guò)查表得方式輸出需要的波形,通過(guò)單片機(jī)定時(shí)向dac轉(zhuǎn)化器發(fā)送轉(zhuǎn)換數(shù)據(jù),實(shí)現(xiàn)不同的幅值和頻率的輸出。這種方法能夠?qū)崿F(xiàn)各種需要的波形的輸出,成本也不高,只是在擴(kuò)展外設(shè)的時(shí)候浪費(fèi)了大量的接口,以后的系統(tǒng)擴(kuò)展可能會(huì)有影響6。 4.采用dds頻率合成器,能輸出各種波形,而且能夠輕松調(diào)節(jié)幅值和頻率。dds同dsp(數(shù)字信號(hào)處理)一樣,是一項(xiàng)關(guān)鍵的數(shù)字化技術(shù)。dds是直接數(shù)字式頻率合成器(direct digital s

18、ynthesizer)的英文縮寫(xiě)。與傳統(tǒng)的頻率合成器相比,dds具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn),廣泛使用在電信與電子儀器領(lǐng)域,是實(shí)現(xiàn)設(shè)備全數(shù)字化的一個(gè)關(guān)鍵技術(shù)。一塊dds芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計(jì)算器三個(gè)部分。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶(hù)輸入的頻率控制碼;而相位累加器根據(jù)dds頻率控制碼在每個(gè)時(shí)鐘周期內(nèi)進(jìn)行相位累加,得到一個(gè)相位值;正弦計(jì)算器則對(duì)該相位值計(jì)算數(shù)字化正弦波幅度(芯片一般通過(guò)查表得到)。dds芯片輸出的一般是數(shù)字化的正弦波,因此還需經(jīng)過(guò)高速d/a轉(zhuǎn)換器和低通濾波器才能得到一個(gè)可用的模擬頻率信號(hào)7。圖要自己畫(huà)圖2-2 d

19、ds的原理框圖鑒于方案一的信號(hào)頻率不夠穩(wěn)定和方案二的電路復(fù)雜,頻率覆蓋系數(shù)難以達(dá)標(biāo)等缺點(diǎn),所以決定采用方案三的設(shè)計(jì)方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來(lái)實(shí)現(xiàn),使得信號(hào)頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種元器件都是常用元器件,容易得到,且價(jià)格便宜,使得硬件開(kāi)銷(xiāo)達(dá)最省8。2.2 設(shè)計(jì)原理 數(shù)字信號(hào)可以通過(guò)數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號(hào),因此可通過(guò)產(chǎn)生數(shù)字信號(hào)再轉(zhuǎn)換成模擬信號(hào)的方法來(lái)獲得所需要的波形。89c51單片機(jī)本身就是一個(gè)完整的微型計(jì)算機(jī),具有組成微型計(jì)算機(jī)的各部分部件:中央處理器cpu、隨機(jī)存取存儲(chǔ)器ram、只讀存儲(chǔ)器rom、i/o接口電路、定時(shí)器/計(jì)數(shù)器以及串行通訊接

20、口等,只要將89c51再配置鍵盤(pán)及其接口、顯示器及其接口、數(shù)模轉(zhuǎn)換及波形輸出、指示燈及其接口等四部分,即可構(gòu)成所需的波形發(fā)生器,其信號(hào)發(fā)生器構(gòu)成原理框圖如圖2-3所示9。圖自己畫(huà)圖2-2 整體設(shè)計(jì)方案80c51是整個(gè)波形發(fā)生器的核心部分,通過(guò)程序的編寫(xiě)和執(zhí)行,產(chǎn)生各種各樣的信號(hào),并從鍵盤(pán)接收數(shù)據(jù),進(jìn)行各種功能的轉(zhuǎn)換和信號(hào)幅度的調(diào)節(jié)。當(dāng)數(shù)字信號(hào)經(jīng)過(guò)接口電路到達(dá)轉(zhuǎn)換電路,將其轉(zhuǎn)換成模擬信號(hào)也就是所需要輸出波形10。第3章 硬件設(shè)計(jì)硬件原理硬件電路設(shè)計(jì)決定一個(gè)系統(tǒng)功能,是設(shè)計(jì)基礎(chǔ)所在,而一般設(shè)計(jì)目標(biāo):可靠,簡(jiǎn)潔,高效,優(yōu)化,好硬件電路可給程序編寫(xiě)帶來(lái)極大優(yōu)勢(shì),同時(shí)使可以很好提高該信號(hào)設(shè)計(jì)精度和靈敏度

21、,使整個(gè)系統(tǒng)工作協(xié)調(diào)有序。以80c51單片機(jī)芯片作為核心處理器,編程實(shí)現(xiàn)各種不同類(lèi)型信號(hào),最后通過(guò)da轉(zhuǎn)換輸出11。4.1 硬件整體設(shè)計(jì)由頻率控制模塊、幅度控制模塊、鍵盤(pán)模塊和液晶顯示模塊組成整個(gè)系統(tǒng)。用單片機(jī)控制鍵盤(pán)和液晶顯示,液晶屏顯示四個(gè)參數(shù):頻率、幅值、類(lèi)型和不同頻率范圍中頻率的步進(jìn)。用單片機(jī)控制兩個(gè)數(shù)字電位器中的抽頭位置來(lái)實(shí)現(xiàn)改變輸出的頻率和幅度的大小,運(yùn)用數(shù)字電位器x9c103和icl8038共同設(shè)計(jì)的函數(shù)信號(hào)發(fā)生器。該電路能夠產(chǎn)生穩(wěn)定的正弦波信號(hào)、三角波信號(hào)、頻率與占比可調(diào)節(jié)的矩形波信號(hào),其輸出頻率能在1hz-imhz范圍內(nèi)連續(xù)調(diào)整,達(dá)到調(diào)試簡(jiǎn)單、性能穩(wěn)定、使用方便等優(yōu)點(diǎn)。其工作

22、系統(tǒng)框圖如下圖4-1所示。圖自己畫(huà)4-1 整體硬件電路4.2 復(fù)位電路無(wú)論哪種類(lèi)型的單片機(jī),這些器件總要涉及到單片機(jī)的復(fù)位電路以及復(fù)位電路的設(shè)計(jì)。、單片機(jī)上電復(fù)位電路設(shè)計(jì)好與壞,將直接影響整個(gè)微機(jī)控制系統(tǒng)工作可靠性與穩(wěn)定性。很多用戶(hù)在設(shè)計(jì)完單片機(jī)控制系統(tǒng),實(shí)驗(yàn)室可能調(diào)試成功后,但是在現(xiàn)場(chǎng)卻出現(xiàn)“死機(jī)”和“程序跑飛”等現(xiàn)象產(chǎn)生,導(dǎo)致這些最主要原因可能是復(fù)位電路設(shè)計(jì)不當(dāng)造成,因此設(shè)計(jì)一個(gè)很好復(fù)位電路對(duì)于單片機(jī)控制系統(tǒng)運(yùn)行來(lái)說(shuō)非常重要。復(fù)位電路連接有三種連接方式,列舉一種,如圖4-2所示:圖要用proteus畫(huà),自己畫(huà),不要抄襲。4-2 復(fù)位電路設(shè)計(jì)4.3 時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式

23、得到:內(nèi)部振蕩和外部振蕩方式。在引腳xtal1 和xtal2 外接晶體振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩,并產(chǎn)生振動(dòng)時(shí)鐘脈沖。晶振通常選用6mhz、12mhz、24mhz。本設(shè)計(jì)中時(shí)鐘電路圖如圖4-3,選擇了12mhz和晶振分別接引腳xtal1 和xtal2,電容c1,c2 均選擇為30pf,對(duì)振蕩器的頻率有穩(wěn)定作用,當(dāng)頻率較大時(shí),正弦波、方波、三角波及鋸齒波中每一點(diǎn)的延時(shí)時(shí)間為幾微妙,故延時(shí)時(shí)間還加上指令時(shí)間才能獲得較大的頻率波形12。圖要用proteus畫(huà),自己畫(huà),不要抄襲4-3 時(shí)鐘電路設(shè)計(jì)4.4 鍵盤(pán)電路 通常單片機(jī)外部擴(kuò)

24、展鍵盤(pán)的方式有獨(dú)立式鍵盤(pán),矩陣鍵盤(pán)以及專(zhuān)門(mén)的鍵盤(pán)電路。獨(dú)立式鍵盤(pán)就是一個(gè)i/o口擴(kuò)展一個(gè)開(kāi)關(guān),這種方式程序編寫(xiě)比較容易,只需要檢測(cè)單片機(jī)i/o某一時(shí)刻是否為低電平就能檢測(cè)出其的按鍵輸入情況,而且按鍵和i/o口一一對(duì)應(yīng),所以能夠輕松識(shí)別按鍵的值,如圖4-3所示為獨(dú)立按鍵接口電路。本設(shè)計(jì)中采用的是3個(gè)獨(dú)立的功能按鍵。s1用來(lái)切換現(xiàn)在產(chǎn)生的波形。當(dāng)沒(méi)有按下s1時(shí)信號(hào)發(fā)生器產(chǎn)生方波信號(hào)。第一次按下s1時(shí),將切換成三角波信號(hào)。第二次按下s1時(shí),將切換產(chǎn)生正弦波信號(hào)。第三次按下s1時(shí),又產(chǎn)生方波信號(hào)。這樣一直循環(huán)。s2用來(lái)調(diào)節(jié)輸出的函數(shù)信號(hào)的頻率。當(dāng)沒(méi)有按下s2時(shí),產(chǎn)生的函數(shù)信號(hào)最高。當(dāng)按下s2時(shí),波形頻

25、率降低,同時(shí)還要對(duì)應(yīng)向led顯示緩沖區(qū)給定一個(gè)頻率值提供當(dāng)前頻率顯示所需要的數(shù)據(jù)。s2按7次一個(gè)循環(huán)。當(dāng)?shù)?次按下時(shí)恢復(fù)到最高頻率輸出。s3用來(lái)啟動(dòng)對(duì)輸出的函數(shù)信號(hào)電壓值測(cè)量。當(dāng)s3沒(méi)有按下時(shí),單片機(jī)只向dac0832送波形數(shù)據(jù)表和顯示當(dāng)前波形的頻率。按下s3后,單片機(jī)除了向dac0832送波形數(shù)據(jù)表外,還要每隔一小段時(shí)間對(duì)讀取adc0809轉(zhuǎn)換電壓值,并且換算出來(lái),送給led顯示當(dāng)前電壓。此時(shí)不再顯示當(dāng)前波形頻率13。圖要用proteus畫(huà),自己畫(huà),不要抄襲4-4 獨(dú)立式鍵盤(pán) 矩陣鍵盤(pán)相比獨(dú)立式鍵盤(pán)其擴(kuò)充的量大大增加,例如常見(jiàn)的4*4矩陣鍵盤(pán)占用的i/o口為4+4=8個(gè),當(dāng)需要擴(kuò)充為20鍵輸

26、入時(shí)只需要4+5=9個(gè)i/o口,而采用獨(dú)立式鍵盤(pán)的時(shí)候要分別用掉16個(gè)i/o口和20個(gè)i/o口,由于單片機(jī)的i/o口數(shù)量有限,很難將大量的i/o口用于,顯然矩陣鍵盤(pán)能夠大大的減少系統(tǒng)i/o口的使用,矩陣鍵盤(pán)的缺點(diǎn)是編寫(xiě)程序比較麻煩,需要上拉電阻系統(tǒng)的連線(xiàn)和元器件都增加。當(dāng)采用行掃描方式讀取鍵值時(shí),需要4個(gè)上拉電阻,提供需要的高電平,當(dāng)采用線(xiàn)反轉(zhuǎn)法式需要采用8個(gè)上拉電阻,顯然整個(gè)電路的接線(xiàn)都將變得更加復(fù)雜。矩陣式按鍵鍵盤(pán)中,分為行線(xiàn)和列線(xiàn)兩種,行線(xiàn)和列線(xiàn)與矩陣按鍵開(kāi)關(guān)的兩端相連接,其中行線(xiàn)是連接到5v電源上。當(dāng)沒(méi)有按鍵按下時(shí),行線(xiàn)會(huì)處于高電平狀態(tài);當(dāng)有按鍵動(dòng)作時(shí),行線(xiàn)和列線(xiàn)將導(dǎo)通。這是矩陣式按鍵

27、來(lái)識(shí)別按鍵是否按下的關(guān)鍵策略14。圖要用proteus畫(huà),自己畫(huà),不要抄襲4-5 矩陣式鍵盤(pán)4.5 d/a轉(zhuǎn)換模塊4.5.1 dac0832轉(zhuǎn)換器簡(jiǎn)介dac0832是雙列直插式8位d/a轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1s,滿(mǎn)量程誤差為1lsb,參考電壓為(+10-10)v,供電電源為(+5+15)v,邏輯電平輸入與ttl兼容。從圖3.7中可見(jiàn),在dac0832中有兩級(jí)鎖存器,第一級(jí)鎖存器稱(chēng)為輸入寄存器,它的允許鎖存信號(hào)為ile,第二級(jí)鎖存器稱(chēng)為dac寄存器,它的鎖存信號(hào)也稱(chēng)為通道控制信號(hào)xfer。圖要用proteus畫(huà),自己畫(huà),不要

28、抄襲圖4-6 dac0832引腳圖圖4-6中,當(dāng)ile為高電平,片選信號(hào)cs 和寫(xiě)信號(hào)wr1為低電平時(shí),輸入寄存器控制信號(hào)為1,這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當(dāng)wr1由低電平變高時(shí),控制信號(hào)成為低電平,此時(shí),數(shù)據(jù)被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數(shù)據(jù)db的變化而變化。對(duì)第二級(jí)鎖存來(lái)說(shuō),傳送控制信號(hào)xfer 和寫(xiě)信號(hào)wr2同時(shí)為低電平時(shí),二級(jí)鎖存控制信號(hào)為高電平,8位的dac寄存器的輸出隨輸入而變化,此后,當(dāng)wr2由低電平變高時(shí),控制信號(hào)變?yōu)榈碗娖剑谑菍⑤斎爰拇嫫鞯男畔㈡i存到dac寄存器中。 dac0832各引腳編號(hào)及其作用: 1.1號(hào)cs引腳:片選信號(hào)輸

29、入線(xiàn),低電平有效; 2.2號(hào)wr1引腳:為輸入寄存器的寫(xiě)選通信號(hào); 3.3號(hào)agnd引腳:模擬地,模擬信號(hào)和基準(zhǔn)電源的參考地; 4.4-7,13-16號(hào)d0-d7引腳:數(shù)據(jù)輸入線(xiàn),tll電平; 5.8號(hào)v ref引腳:基準(zhǔn)電壓輸入(-10v+10v); 6.9號(hào)rfb引腳:反饋信號(hào)輸入線(xiàn),芯片內(nèi)部有反饋電阻; 7.10號(hào)dgnd引腳:數(shù)字地; 8.11號(hào)iout1引腳:電流輸出線(xiàn),當(dāng)輸入全為1時(shí),iout引腳的非新哈奧表達(dá)不準(zhǔn)確,此外下標(biāo)也表達(dá)不對(duì)1最大; 9.12號(hào)iout2引腳:電流輸出線(xiàn),其值與iout1為一常數(shù); 10.17號(hào)xfre引腳:數(shù)據(jù)傳送控制信號(hào)輸入線(xiàn),低電平有效; 11.1

30、8號(hào)wr2引腳:為dac寄存器寫(xiě)選通輸入線(xiàn); 12.19號(hào)ile引腳:數(shù)據(jù)鎖存允許控制信號(hào)輸入線(xiàn),高電平有效; 32.0號(hào)v cc引腳:電源輸入線(xiàn)(+5v+15v)vref。本次設(shè)計(jì)選擇的d/a轉(zhuǎn)化器是dac0832,是一款8分辨率的d/a轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)da芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。d/a轉(zhuǎn)換器由8位輸入鎖存器、8位dac寄存器、8位d/a轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。at89c51單片機(jī)控制兩片dac0832的原理如圖4-7所示。圖要自己畫(huà),不要抄襲4-7 單片機(jī)控制dac0832的d/a轉(zhuǎn)換因?yàn)閍t89c51單片

31、機(jī)自身便有一個(gè)64k的程序存儲(chǔ)器,所以不用擴(kuò)展外加程序存儲(chǔ)器。由單片機(jī)編程即可由單片機(jī)輸出所需要信號(hào)的數(shù)字量,再由d/a轉(zhuǎn)換器將數(shù)字量轉(zhuǎn)化為模擬電流輸出,通過(guò)運(yùn)放轉(zhuǎn)化為模擬電壓輸出。d/a數(shù)模轉(zhuǎn)換器的最大輸出電壓是由其輸入的基準(zhǔn)電壓來(lái)控制的,所以只要能控制d/a的基準(zhǔn)電壓便可以控制輸出幅度,實(shí)現(xiàn)幅度可調(diào)。所以設(shè)計(jì)用兩片dac0832來(lái)輸出信號(hào),第一片d/a用來(lái)輸出信號(hào),第二片d/a用來(lái)控制壓。其中用p0口作為兩片d/a的數(shù)據(jù)總線(xiàn),p2口的p2.0和p2.1口用來(lái)控制兩片d/a的選通15。本文選用價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器。dac0832。dac0832主要由8

32、位輸入寄存器、8位dac寄存器、8位d/a轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,dac0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對(duì)分辨率為單位增減,是準(zhǔn)模擬量的輸出。dac0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電壓型輸出。4.6 顯示電路設(shè)計(jì)顯示電路是用來(lái)顯示波形信號(hào)的頻率,使得整個(gè)系統(tǒng)更加合理,從經(jīng)濟(jì)的角度出發(fā),所以顯示器件采用led數(shù)碼管顯示器。而且led數(shù)碼管是采用共陽(yáng)極接法,當(dāng)主控端口輸出一個(gè)低電平后,與其相對(duì)應(yīng)的數(shù)碼管即變亮,顯示所需數(shù)據(jù)。 本次設(shè)計(jì)要求對(duì)輸出波形的頻率,幅值和波形進(jìn)行輸出,所以要擴(kuò)展顯示模塊,常用的顯示模塊lcd有7端數(shù)碼管,lcd1602和1

33、2864等液晶顯示屏。為了降低設(shè)計(jì)的成本和擴(kuò)展的難度,本次設(shè)計(jì)選擇使用7段數(shù)碼管。led顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線(xiàn)來(lái)保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用cpu時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。 動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線(xiàn)并聯(lián)在一起,由位選線(xiàn)控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯

34、示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的16。圖要,自己畫(huà),不要抄襲圖4-8 顯示器第4章 軟件設(shè)計(jì)4.1 設(shè)計(jì)構(gòu)思 幅度控制:由于d/a數(shù)模轉(zhuǎn)換器輸出的最大幅度可以用其基準(zhǔn)電壓來(lái)控制,所以控制第二片d/a數(shù)模轉(zhuǎn)換器輸出給第一片d/a數(shù)模轉(zhuǎn)換器的電壓值就可控制信號(hào)幅度。因此,送入第二片的值是幾個(gè)固定的值。由于dac0832內(nèi)部具有鎖存器,所以只需向第二片d/a送值一次,直到下一次改變信號(hào)幅度。 頻率控制:?jiǎn)纹瑱C(jī)內(nèi)部數(shù)據(jù)只有0、1之分,所產(chǎn)生的信號(hào)也都是離散信號(hào)。為了能夠讓單片機(jī)輸出所需的數(shù)字信號(hào),我們采用對(duì)信號(hào)采樣、量化的方法來(lái)實(shí)現(xiàn)由單片機(jī)產(chǎn)生所需信號(hào)

35、。在本設(shè)計(jì)中,對(duì)信號(hào)的四分之一周期采樣19個(gè)幅度值,通過(guò)反復(fù)查表來(lái)輸出幅度值,而整個(gè)信號(hào)是通過(guò)正查表和逆向查表來(lái)實(shí)現(xiàn)的。采樣的點(diǎn)越密,信號(hào)失真度也就越小。兩次采樣點(diǎn)的輸出時(shí)間間隔是由定時(shí)、計(jì)數(shù)器來(lái)控制的,因此,通過(guò)控制不同的計(jì)數(shù)初值就可以控制整個(gè)信號(hào)的頻率。計(jì)數(shù)時(shí)間=信號(hào)周期/72。計(jì)數(shù)次數(shù)=計(jì)數(shù)時(shí)間/機(jī)器周期。對(duì)應(yīng)的,計(jì)數(shù)初值=65536計(jì)數(shù)次數(shù)。單片機(jī)只能產(chǎn)生離散頻率的信號(hào),所以所得到的信號(hào)頻率不是連續(xù)的,而是離散的頻率點(diǎn)。由于這部分計(jì)算位數(shù)較多,不適合用單片機(jī)編程來(lái)計(jì)算計(jì)數(shù)初值,所以本設(shè)計(jì)中將各頻率的計(jì)數(shù)初值算出,讓單片機(jī)按控制命令來(lái)查表控制頻率。正弦波和三角波的頻率控制方法都與上述方法

36、相同,而方波的頻率控制是半周期計(jì)數(shù),經(jīng)過(guò)半周期只需改變輸出為最大或最小電平即可17。4.2 主程序流程圖主程序的流程圖如圖4-1所示,在程序開(kāi)始運(yùn)行之后,首先是對(duì)程序進(jìn)行初始化,之后判斷信號(hào)頻率值,如符合所需的頻率,則重置時(shí)間常數(shù),并通過(guò)顯示器顯示出來(lái),不符則返回。在中斷結(jié)束后,還要來(lái)判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。本文中子程序的調(diào)用是通過(guò)按鍵的選擇來(lái)實(shí)現(xiàn),在取得按鍵相應(yīng)的鍵值后,啟動(dòng)計(jì)時(shí)器和相應(yīng)的中斷服務(wù)程序,再直接查詢(xún)程序中預(yù)先設(shè)置的數(shù)據(jù)值,通過(guò)轉(zhuǎn)換輸出相應(yīng)的電壓,從而形成所需的各種波形。在程序開(kāi)始運(yùn)行之后,首先是對(duì)8255a進(jìn)行初始化,之后判斷信號(hào)頻率值,如

37、符合所需的頻率,則重置時(shí)間常數(shù),并通過(guò)顯示器顯示。4-1 主程序設(shè)計(jì)下面說(shuō)明主程序流程圖的程序?qū)崿F(xiàn): 1.開(kāi)始:org 0000h 程序開(kāi)始執(zhí)行,首先覺(jué)得跳轉(zhuǎn)到主程序ajm main org 000bh 定時(shí)器0中斷入口地址,跳轉(zhuǎn)到中斷服務(wù)程序ljmp tcoorg 0030h2.8255a初始化:mov dptr,#7f00h 指向8155命令字端口地址mov a,#06h 設(shè)置a口為輸入,b口、c口為輸出movx dptr,a 送命令字3.判定信號(hào)頻率:mov dptr,#7f01h 指向a口地址movx a,dptr 讀入a口的開(kāi)關(guān)數(shù)據(jù)jnb acc.4,k10h 判斷是否“4”號(hào)鍵,若

38、是則轉(zhuǎn)輸出10hz信號(hào)jnb acc.5,k100h 判斷是否“5”號(hào)鍵,若是則轉(zhuǎn)輸出100hz信號(hào)jnb acc.6,k500h 判斷是否“6”號(hào)鍵,若是則轉(zhuǎn)輸出500hz信號(hào)jnb acc.7,k1k 判斷是否“7”號(hào)鍵,若是則轉(zhuǎn)輸出1khz信號(hào)ajmp main 無(wú)鍵按下則返回等待4.根據(jù)頻率值置新的時(shí)間常數(shù),以10hz為例:k10h:mov 30h,#00h 顯示10hzmov 31h,#00hmov 32h,#00hmov 33h,#00hmov 34h,#01hmov 35h,#00hlcall led1 調(diào)顯示子程序mov tmod,#00hmov tl0,#15hmov th0

39、,#9ehajmp pd5.顯示頻率值,以10hz為例k10h:mov 30h,#00h 顯示10hzmov 31h,#00hmov 32h,#00hmov 33h,#00hmov 34h,#01hmov 35h,#00hlcall led1 調(diào)顯示子程序6.顯示子程序:led1: mov r3,#06h 設(shè)置6個(gè)led顯示mov r2,#01h 選通第一位led數(shù)據(jù)mov r1,#30h 送顯示緩沖區(qū)首址gn1:mov dptr,#7f03h 指向c口地址mov a,r2 位選通數(shù)據(jù)送amovx dptr,a 位選通數(shù)據(jù)送c口rl a 選通下一位mov r2,a 位選通數(shù)據(jù)送r2中保存 mo

40、v a, r1 取鍵值mov dptr,#tab 送led顯示軟件譯碼表首址movc a,a+dptr 查表求出鍵值顯示的段碼mov dptr,#7f02h 指向b口地址mov dptr,a 段碼送顯示lcall loop1 調(diào)延時(shí)子程序inc r1 指向下一位顯示緩沖區(qū)地址djnz r3,gn1 循環(huán)顯示6個(gè)ledret7.中斷設(shè)置開(kāi)中斷:gn: setb tr0 啟動(dòng)定時(shí)器setb et0 開(kāi)定時(shí)器0中斷setb ea 開(kāi)總中斷8.判定波形:pd:jnb acc.0,ke0 判斷是否“0”號(hào)鍵按下,若是則轉(zhuǎn)方波輸出jnb acc.1,ke1 判斷是否“1”號(hào)鍵按下,若是則轉(zhuǎn)正弦方波輸出jn

41、b acc.2,ke2 判斷是否“2”號(hào)鍵按下,若是則轉(zhuǎn)三角波輸出jnb acc.3,ke3 判斷是否“3”號(hào)鍵按下,若是則轉(zhuǎn)鋸4.3 波形產(chǎn)生子程序圖4-2為各波形子程序的流程圖。如圖所示,在中斷服務(wù)子程序開(kāi)始后,通過(guò)判斷來(lái)確定各種波形的輸出,當(dāng)判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛?,如此反?fù)。如果選擇的是方波,則用查表的方法求出相應(yīng)的數(shù)據(jù),并通過(guò)d/a轉(zhuǎn)換器將數(shù)據(jù)轉(zhuǎn)換成模擬信號(hào),形成所需波形信號(hào)18。4-2 波形產(chǎn)生子程序設(shè)計(jì)下面說(shuō)明子程序流程圖的實(shí)現(xiàn):1.中斷服務(wù)程序開(kāi)始:ljmp tco 絕對(duì)跳轉(zhuǎn)到中斷服務(wù)程序2.判斷是否方波及處理方法:tco:cjne r7,#00h,tc1 判

42、斷是否是方波,不是則跳轉(zhuǎn)mov dptr,#tab1 送方波數(shù)據(jù)表首址mov a,r6 發(fā)送數(shù)據(jù)寄存器movc a,a+dptrmov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc a mov r6,acjne a,#32,ql1mov r6,#00hajmp ql13.判斷是夠是正弦波及處理方法:tc1:cjne r7,#01h,tc2 發(fā)送正弦波程序mov dptr,#tab2 送正弦波數(shù)據(jù)表首址mov a,r6movc a, a+dptrmov dptr,#0afffh 指向dac0832(2)movx dptr

43、,a dac0832(2)輸出mov a,r6inc amov r6,acjne a,#32,ql1mov r6,#00hajmp ql14.判斷是否是三角波及處理方法:tc2:cjne r7,#02h,ql1 發(fā)送三角波程序mov dptr,#tab3 送三角波數(shù)據(jù)表首址mov a,r6movc a,a+dptr mov dptr,#0afffh 指向dac0832(2)movx dptr,a dac0832(2)輸出mov a,r6inc amov r6,acjne a,#32,ql1mov r6,#00h ajmp ql14.4 中斷服務(wù)子程序中斷服務(wù)子程序是產(chǎn)生波形必不可少的程序,其程

44、序流程圖如下4-3所示,方波波形的實(shí)現(xiàn)較為簡(jiǎn)單,只需開(kāi)始的時(shí)候設(shè)置一個(gè)初值然后直接輸出這個(gè)值就行了,每次輸出的時(shí)間根據(jù)延時(shí)來(lái)定,我們把波形分為了256個(gè)點(diǎn),輸出半個(gè)波形后,然后再對(duì)其置零,同樣輸出個(gè)數(shù)據(jù)一段時(shí)間,但是此時(shí)的時(shí)間一定要等于前面那段時(shí)間。這樣才是一個(gè)方波,如果兩個(gè)時(shí)間不相同,那就相當(dāng)于一個(gè)脈沖波了。方波的幅值大小可以不用考慮,這些可由外部的運(yùn)算放大器來(lái)放大。三角波的產(chǎn)生:初始化后,單片機(jī)先從00h開(kāi)始輸出,經(jīng)過(guò)規(guī)定的演示后家2h,再進(jìn)過(guò)同樣的時(shí)間再加2h,這樣累加到ffh,一共累加了128次。到ffh后在減二,一直減到00h,這樣也是128次,同樣滿(mǎn)足可一個(gè)波形取點(diǎn)256次的要求。

45、這樣把所得到的信號(hào)輸送給8255,這樣就可以從輸出端得到一個(gè)連續(xù)的三角波。因?yàn)槠漭敵龆擞羞\(yùn)算放大器,可以實(shí)現(xiàn)對(duì)波形信號(hào)的放大。4-3 中斷子程序設(shè)計(jì)4.5 按鍵掃描子程序本次設(shè)計(jì)由于要求對(duì)幅值和頻率進(jìn)行控制,所以要求用相關(guān)的按鍵輸入,前面已經(jīng)介紹了各種按鍵的優(yōu)缺點(diǎn),最后選擇了獨(dú)立式鍵盤(pán),分別為+-頻率,+-幅值,模式選擇5位,共占用5個(gè)ip口,選擇p2口的高5位作為按鍵輸入。程序中的模式選擇是通過(guò)mode位輸入,通過(guò)設(shè)定一個(gè)模式標(biāo)志位,當(dāng)執(zhí)行一次模式位按鍵程序,標(biāo)志位自動(dòng)+1,并指向其所指定的波形。幅值選擇通過(guò)按鍵ampl+和ampl-輸入,當(dāng)執(zhí)行了幅值子程序的時(shí)候,系統(tǒng)通過(guò)改變x9511抽頭

46、的位置,改變其vw的輸出電壓,通過(guò)vref改變輸出電壓的幅值。頻率的選擇則是通過(guò)freq+和freq-進(jìn)行選擇的,當(dāng)執(zhí)行頻率調(diào)節(jié)子程序的時(shí)候,通過(guò)改變定時(shí)的初值實(shí)現(xiàn)的,當(dāng)使用12m晶振時(shí)候,正弦表位256位時(shí),理想中最大的頻率可以達(dá)到4khz,當(dāng)頻率為10hz的時(shí)候,計(jì)數(shù)初值為390。由于系統(tǒng)采用的最低的初值時(shí)間為100,所以最高只能產(chǎn)生20hz的頻率19。4-4 按鍵掃描子程序設(shè)計(jì)4.6 顯示子程序顯示部分采用動(dòng)態(tài)輸出的方式,通過(guò)控制兩個(gè)鎖存器來(lái)控制實(shí)現(xiàn)單個(gè)i/o分時(shí)控制輸出輸出數(shù)碼管的段選(字形的選擇)和位選(位權(quán)的選擇)。如圖3-5-2顯示電路圖中p0用于輸出數(shù)據(jù),而p2.0和p2.1用

47、來(lái)控制寄存器的通斷來(lái)控制是輸出字段信息還是位權(quán)信息。通常的數(shù)碼管動(dòng)態(tài)顯示程序都要進(jìn)行延時(shí),然后靠人眼的余光實(shí)現(xiàn)數(shù)據(jù)的輸出,當(dāng)延時(shí)時(shí)間太小的時(shí)候會(huì)出現(xiàn)數(shù)碼閃爍甚至亂碼,當(dāng)延時(shí)時(shí)間設(shè)定的太大的時(shí)候,有可能出現(xiàn)輸出斷續(xù)的可能,通常需延時(shí)5ms,6位數(shù)據(jù)顯示就是30ms,而按鍵的消抖時(shí)間不過(guò)10ms,所以時(shí)間片輪法的話(huà)會(huì)大大影響電路的正常工作,甚至不能檢測(cè)出按鍵輸入,或則按鍵輸入的時(shí)候出現(xiàn)顯示斷續(xù)的情況,所以本才設(shè)計(jì)采用了中斷顯示的方法,利用定時(shí)器進(jìn)行延時(shí),設(shè)定好定時(shí)器的初值,在固定的延時(shí)時(shí)間上溢出,然后調(diào)用顯示子程序顯示當(dāng)前的輸出情況,由于定時(shí)器中斷程序 執(zhí)行一次只能顯示一位數(shù)據(jù),所以要設(shè)定一個(gè)全局

48、變量的顯示緩沖區(qū)和全局變量的位選標(biāo)志。4-5 顯示子程序設(shè)計(jì)第5章 仿真驗(yàn)證5.1 整體設(shè)計(jì)protues仿真軟件完成函數(shù)信號(hào)發(fā)生器仿真,本設(shè)計(jì)仿真環(huán)境如圖5-1所示。圖5-1 基于protues的函數(shù)信號(hào)發(fā)生器仿真5.2 功能實(shí)現(xiàn) 三種波形的仿真波形圖如下:在仿真環(huán)境下,運(yùn)行仿真軟件,按要求操作鍵盤(pán)會(huì)出現(xiàn)如下波形圖,各個(gè)波形的仿真圖不同的頻率。 當(dāng)“s0”鍵按下事將產(chǎn)生方波,鍵“s4” “s7”決定正弦波的頻率,“s4”號(hào)鍵為10hz的頻率信號(hào),“s5”號(hào)鍵為100hz的頻率信號(hào),“s6”號(hào)鍵為500hz的頻率信號(hào),“s7”號(hào)鍵為1khz的頻率信號(hào)。 圖5-3、圖5-4、圖5-5為頻率為10

49、hz、100hz、500hz的正弦波,1000hz的正弦波在文中不畫(huà)出來(lái)。圖5-2 波形顯示圖5-3 10hz正弦波 圖5-4 100hz正弦波 圖5-5 500hz正弦波 圖5-6、圖5-7、圖5-8為頻率為10hz、100hz、500hz的三角波,1000hz的正弦波在文中不畫(huà)出來(lái)。當(dāng)“s0”鍵按下將產(chǎn)生三角波,鍵“s4”“s7”決定方波的頻率,“s4”號(hào)鍵為10hz的頻率信號(hào),“s5”號(hào)鍵為100hz的頻率信號(hào),“s6”號(hào)鍵為500hz的頻率信號(hào),“s7”號(hào)鍵為1khz的頻率信號(hào)。 圖5-6 三角波 圖5-7 三角波 圖5-8 三角波 圖5-9、圖5-10、圖5-11為頻率為10hz、1

50、00hz、500hz的方波,1000hz的正弦波在文中不畫(huà)出來(lái)。當(dāng)“s0”鍵按下將產(chǎn)生方波,鍵“s4”“s7”決定方波的頻率,“s4”號(hào)鍵為10hz的頻率信號(hào),“s5”號(hào)鍵為100hz的頻率信號(hào),“s6”號(hào)鍵為500hz的頻率信號(hào),“s7”號(hào)鍵為1khz的頻率信號(hào)。 圖5-9 方波 圖5-10 方波 圖5-11 方波5.3 本章小結(jié)基于單片機(jī)的函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)與仿真已全部完成,所設(shè)計(jì)的函數(shù)信號(hào)發(fā)生器有一定的實(shí)用價(jià)值和經(jīng)濟(jì)價(jià)值。能按預(yù)期的效果通過(guò)按鍵實(shí)現(xiàn)波形切換且波形標(biāo)準(zhǔn)美觀,頻率穩(wěn)定可調(diào)。并且在數(shù)碼管上顯示出波形的頻率。在函數(shù)信號(hào)發(fā)生器系統(tǒng)的4個(gè)模塊中,最重要的是主控模塊,其它還有顯示模塊

51、,按鍵模塊,信號(hào)輸出模塊。各模塊完成后,將它們組合成完整的函數(shù)信號(hào)發(fā)生器系統(tǒng)。結(jié)論 本次畢業(yè)設(shè)計(jì)我所涉及的題目是多功能函數(shù)信號(hào)發(fā)生器,由于是基于單片機(jī)的波形發(fā)生器,所以我才用了查表輸出的方法,經(jīng)過(guò)d/a轉(zhuǎn)化輸出需要的波形,并通過(guò)低通濾波是其輸出的波形能比較的平滑。通過(guò)兩個(gè)月的畢業(yè)設(shè)計(jì),進(jìn)一步的加深了我對(duì)專(zhuān)業(yè)課的理解和認(rèn)識(shí),畢業(yè)設(shè)計(jì)是我在大學(xué)四年的最后一堂課,也是對(duì)我大學(xué)四年所學(xué)的知識(shí)的一個(gè)最好的評(píng)估。開(kāi)始設(shè)計(jì)方案,總感覺(jué)自己還是有許多的東西弄不太清楚,于是就請(qǐng)教同學(xué)。有一些開(kāi)始的時(shí)候由于沒(méi)有經(jīng)驗(yàn),不知如何下手,所以就去圖書(shū)管找了一些書(shū)看,盡管有許多的設(shè)經(jīng)驗(yàn)。經(jīng)過(guò)自己分析各方案之后,決定用查表的方法來(lái)做。這樣可以降低一些硬件設(shè)計(jì)的難度,初次設(shè)計(jì)應(yīng)切合自己的水平。 回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,從選題到定稿,從理論到實(shí)踐,在好幾個(gè)星期

溫馨提示

  • 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)論