畢業(yè)設(shè)計基于PROTEUS的函數(shù)信號發(fā)生器的設(shè)計_第1頁
畢業(yè)設(shè)計基于PROTEUS的函數(shù)信號發(fā)生器的設(shè)計_第2頁
畢業(yè)設(shè)計基于PROTEUS的函數(shù)信號發(fā)生器的設(shè)計_第3頁
畢業(yè)設(shè)計基于PROTEUS的函數(shù)信號發(fā)生器的設(shè)計_第4頁
畢業(yè)設(shè)計基于PROTEUS的函數(shù)信號發(fā)生器的設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 摘要摘要近年來隨著計算機(jī)在社會領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)函數(shù)信號發(fā)生器日新月異的更新。單片機(jī)能產(chǎn)生高精度、快速變換頻率、輸出波形失真小的優(yōu)先選用技術(shù)。函數(shù)信號發(fā)生器是各種測試和實驗過程中不可缺少的工具,在通信、測量、雷達(dá)、控制、教學(xué)等領(lǐng)域應(yīng)用十分廣泛。不論是在生產(chǎn)、科研還是教學(xué)上,信號發(fā)生器都是電子工程師信號仿真實驗的最佳工具,而且,信號發(fā)生器的設(shè)計方法多,設(shè)計技術(shù)也越來越先進(jìn)。研究函數(shù)信號發(fā)生器的設(shè)計方法,克服傳統(tǒng)方法的缺點,以更好的方法設(shè)計出比較復(fù)雜的調(diào)頻、調(diào)幅功能的信號發(fā)生器。本論文介紹的是一種用at89c51單片機(jī)構(gòu)成的波

2、形發(fā)生器,可產(chǎn)生方波、三角波、正弦波、鋸齒波等多種波形,波形的周期可用程序改變,并可根據(jù)需要選擇單極性輸出或雙極性輸出,具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點。文章給出了源代碼,通過仿真測試,其性能指標(biāo)達(dá)到了設(shè)計要求。單片機(jī)小系統(tǒng)負(fù)責(zé)用戶的交互和系統(tǒng)控制,鍵盤用于頻率的輸入與波形的選擇。led顯示當(dāng)前所選信號的頻率調(diào)整情況,而末級放大電路則對生成的信號進(jìn)行適當(dāng)?shù)姆糯?,以提高信號的振幅和?qiáng)度。關(guān)鍵詞:單片機(jī),dac,信號發(fā)生器,頻率調(diào)節(jié),放大電路i河南城建學(xué)院本科畢業(yè)設(shè)計(論文) abstractabstractin recent years, with the computer in the

3、social sector penetration and mcu application is continuously,while driving to the deepening traditional function signal generator on new pe updates. scm can produce high precision, fast transform the frequency, the output waveform distortion of preferred selection technology. function signal genera

4、tor is all sorts of test and experiment process the essential tool, in communication, measuring, radar, control, teaching fields used widely. both in production and scientific research or teaching, signal generator are electronic engineer signal simulation experiment, and the best tool, signal gener

5、ator design method, design technology is becoming more and more advanced. research function signal generator design methods, overcome shortcomings of traditional methods, in order to better designed complex fm, attenuation function signal generator.this thesis introduces a at89c1 single-chip compute

6、rs.the waveform generator, can produce square-wave, triangle wave, sine wave, sawtooth wave etc. various waveform, waveform cycle available program change, and can choose according to need single polarity output or dual polarity output, has the line is simple, compact structure, superior performance

7、 characteristics. the article presented the source code, through the simulation test, the performance indexes meet the design requirements. : singlechip processor system is responsible for the user interaction and system control, the keyboard for frequency of input and waveform choice. led display t

8、he current selected the signal frequency adjustment, and final amplifier circuit is generated signal proper amplifier, in order to improve the signal amplitude and strength.keywords:microcontroller,dac,signal generator, frequency adjustment, amplifier circuit17河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 目錄目錄摘要 iabstractii1.引言

9、11.1.選題的目的及意義11.2.國內(nèi)外研究與綜述11.3.畢業(yè)設(shè)計所用方法22.系統(tǒng)硬件方案的設(shè)計32.1.方案的選擇與論證32.2.系統(tǒng)總體設(shè)計32.3.單片機(jī)最小系統(tǒng)設(shè)計42.4.復(fù)位與時鐘電路設(shè)計52.4.1.時鐘電路設(shè)計52.4.2.復(fù)位電路設(shè)計62.5.波形產(chǎn)生模塊設(shè)計62.6.d/a轉(zhuǎn)換電路設(shè)計72.6.1.d/a轉(zhuǎn)換器指標(biāo)72.6.2.d/a轉(zhuǎn)換的原理72.6.3.dac0832芯片82.7.數(shù)碼管顯示模塊93.系統(tǒng)軟件方案的設(shè)計113.1.軟件總體設(shè)計113.2.軟件流程圖113.3.鍵盤掃描及初始程序設(shè)計123.4.中斷服務(wù)程序設(shè)計143.5.波形發(fā)生程序設(shè)計153.5.

10、1.正弦波發(fā)生程序設(shè)計153.5.2.三角波發(fā)生程序設(shè)計183.5.3.方波發(fā)生程序設(shè)計183.5.4.鋸齒波發(fā)生程序設(shè)計184.仿真結(jié)果與分析194.1.仿真和編譯工具194.1.1.proteus仿真軟件194.1.2.keil編譯軟件194.2.仿真結(jié)果204.3.仿真分析23參考文獻(xiàn)25致謝 26附錄a:源程序27附錄b:總電路圖32河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 引言1. 引言1.1. 選題的目的及意義信號發(fā)生器也稱為函數(shù)發(fā)生器,能產(chǎn)生某些特定的周期性時間函數(shù)波形(正弦波、方波、三角波、鋸齒波)信號,頻率范圍可從幾個微赫到幾十兆赫。函數(shù)信號發(fā)生器在電路實驗和設(shè)備檢測中具有十分廣泛的

11、用途。信號發(fā)生器主要為實驗用信號源,是現(xiàn)今各種電子實驗設(shè)計中必不可少的儀器設(shè)備之一。函數(shù)發(fā)生器作為一種常見的電子儀器設(shè)備,既能夠構(gòu)成獨立的信號源,也可以是高性能的網(wǎng)絡(luò)分析儀,頻譜儀以及自動測試裝備的組成部分,函數(shù)信號發(fā)生器的關(guān)鍵技術(shù)是多種高性能儀器的支撐技術(shù),因為它是能夠提高質(zhì)量的精密信號源及掃描源,可使相應(yīng)系統(tǒng)的檢測過程大大簡化,降低檢測費用并且提高檢測精度。當(dāng)今是科技以及儀表設(shè)備高度智能化飛速發(fā)展的信息社會,電子技術(shù)的發(fā)展進(jìn)步,給人們的生活帶來了根本性的轉(zhuǎn)變。在現(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性,高性價比,在

12、智能儀表系統(tǒng)和辦公自動化中得到廣泛應(yīng)用,因此,基于單片機(jī)的函數(shù)信號發(fā)生器的普及是一種趨勢。1.2. 國內(nèi)外研究與綜述信號發(fā)生器是一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的信號發(fā)生器一般可以完全由硬件搭接而成,如采用555電路產(chǎn)生正弦波,三角波和方波便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜,體積大的缺點。在科學(xué)研究和生產(chǎn)實踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬等領(lǐng)域常常要用到低頻信號源。而由硬件電路構(gòu)成的低頻信號其性能難以讓人滿意,而且由于低頻信號源所需的rc很大,并且大電阻,大電容在制作上有困難,參數(shù)的精度也難以保證,體積大,漏電,損耗大更是其致命

13、的弱點。一旦工作需求功能有增加,則電路復(fù)雜程度會大大的增加。美國安捷倫生產(chǎn)的33250a型函數(shù)/任意波形發(fā)生器可以產(chǎn)生穩(wěn)定、精確和低失真的任意波形,其輸出頻率范圍為1hz80mhz,而輸出幅度為10mvpp10vpp;該公司生產(chǎn)的8648d射頻信號發(fā)生器的頻率覆蓋范圍更可高達(dá)9khz4ghz。國產(chǎn)sg1060數(shù)字合成信號發(fā)生器能雙通道同時輸出高分辨率、高精度、高可靠性的各種波形,頻率覆蓋范圍為1hz60mhz;國產(chǎn)s1000型數(shù)字合成掃頻信號發(fā)生器通過采用新技術(shù)、新器件實現(xiàn)高精度、寬頻帶的掃頻源,同時應(yīng)用dds和鎖相技術(shù),使頻率范圍從1mhz1024mhz能精確地分辨到100hz,它既是一臺高

14、精度的掃頻源,同時也是一臺高精度的標(biāo)準(zhǔn)信號發(fā)生器。目前市場上的信號發(fā)生器多種多樣。他們各有各的優(yōu)點,但是函數(shù)發(fā)生器總的趨勢將向著寬頻率覆蓋、高頻率精度、多功能、多用途、自動化和智能化方向發(fā)展。1.3. 畢業(yè)設(shè)計所用方法利用單片機(jī)控制脈沖的輸入和輸出,從而控制信號波形的頻率和幅度,并根據(jù)要求輸出的波形設(shè)計對應(yīng)的硬件電路。在硬件電路不變的情況下,通過改變程序來實現(xiàn)頻率的變換,用按鍵來控制單片機(jī)的波形和頻率,通過顯示電路顯示頻率值,利用數(shù)模轉(zhuǎn)換器放大電路輸出波形,并可以通過示波器觀察波形與頻率,其中復(fù)位電路用于系統(tǒng)復(fù)位重啟。最后利用proteus軟件對設(shè)計的電路進(jìn)行實時仿真,通過仿真的結(jié)果來觀察波形

15、的輸出。河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 系統(tǒng)硬件方案的設(shè)計2. 系統(tǒng)硬件方案的設(shè)計2.1. 方案的選擇與論證方案一:采用單片函數(shù)信號發(fā)生器(如8038),8038可同時產(chǎn)生正弦波、方波等,而且方法簡單易行,用d/a轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以產(chǎn)生實現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生的信號的頻率穩(wěn)定度不高。方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(vco)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達(dá)到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。方案三:采用單片機(jī)編程的方法來實現(xiàn)。該方法可以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實現(xiàn)頻率的變換

16、。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號,所以信號的精度可以做的很高。鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復(fù)雜且頻率覆蓋系數(shù)難以達(dá)標(biāo)等缺點,所以決定采用方案三的設(shè)計方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實現(xiàn),使得信號頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種器件都是常用的元器件,容易得到,且價格便宜,使得硬件的開銷達(dá)到最省。2.2. 系統(tǒng)總體設(shè)計經(jīng)過考慮,確定方案如下:利用at89c51單片機(jī)采用程序設(shè)計方法產(chǎn)生鋸齒波、三角波、正弦波、方波四種波形,再通過d/a轉(zhuǎn)換器將數(shù)字信號轉(zhuǎn)換成模擬信號,濾波放大,最終由示波器顯示出來。通過按鍵來控制四種波形的類型選擇、頻率變化,

17、最終輸出顯示其各自的類型以及數(shù)值。硬件設(shè)計的總體框圖如圖2-1所示。單片機(jī)控制電路數(shù)碼管顯示電路時鐘與復(fù)位電路d/a轉(zhuǎn)換電路按鍵電路波形輸出圖2-1 硬件設(shè)計總體框圖2.3. 單片機(jī)最小系統(tǒng)設(shè)計用89c51單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機(jī)接上時鐘電路和復(fù)位電路即可,89c51單片機(jī)最小系統(tǒng)如圖2-2所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。圖2-2 89c51單片機(jī)最小系統(tǒng)其應(yīng)用特點:有可供用戶使用的大量i/o口線。內(nèi)部存儲器容量有限。應(yīng)用系統(tǒng)開發(fā)具有特殊性。典型的mcs-51單片機(jī)芯片集成了以下幾個基本組成部分:1) 一個8位的cpu2) 128b或256b單元內(nèi)

18、數(shù)據(jù)存儲器(ram)3) 4kb或8kb片內(nèi)程序存儲器(rom或eprom)4) 4個8位并行i/o接口p0p35) 兩個定時/計數(shù)器6) 5個中斷源的中斷管理控制系統(tǒng)7) 一個全雙工串行i/o口uart(通用異步接收、發(fā)送器)8) 一個片內(nèi)振蕩器和時鐘產(chǎn)生電路2.4. 復(fù)位與時鐘電路設(shè)計2.4.1. 時鐘電路設(shè)計單片機(jī)的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳xtal1和xtal2外接晶體振蕩器(簡稱晶振),就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反向放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6mhz、12mhz或24mhz。

19、內(nèi)部振蕩方式如圖2-3所示。圖中電容c1、c2起穩(wěn)定振蕩頻率、快速起振的作用。電容值一般為530pf。內(nèi)部振蕩方式所得時鐘信號比較穩(wěn)定,實用電路中使用較多。外部振蕩方式是把已有的時鐘信號引入單片機(jī)內(nèi)。這種方式適宜用來使單片機(jī)的時鐘與外部信號保持一致。外部振蕩方式電路如圖2-4所示。對hmos的單片機(jī)(8031,8031ah等),外部時鐘信號由xtal2引入;對于chmos的單片機(jī)(8xcxx),外部時鐘信號由xtal1引入。圖2-4 外部振蕩方式 圖2-3 內(nèi)部振蕩方式 2.4.2. 復(fù)位電路設(shè)計單片機(jī)的復(fù)位是靠外電路實現(xiàn)的,在時鐘電路工作后,只要在單片機(jī)的rst引腳上出現(xiàn)24個時鐘振蕩脈沖(

20、2個機(jī)器周期)以上的高電平,單片機(jī)便實現(xiàn)初始化狀態(tài)復(fù)位。為了保證應(yīng)用系統(tǒng)可靠地復(fù)位,通常是rst引腳保持10ms以上的高電平,根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。上電或開關(guān)復(fù)位要求電源接通后,單片機(jī)自動復(fù)位,并且在單片機(jī)運行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容c3的充電和反相門的作用,使rst持續(xù)一段時間的高電平。復(fù)位電路連接如圖2-5所示。此電路僅用一個電容及一個電阻。系統(tǒng)上電時,在rc電路充電過程中,由于電容兩端電壓不能跳變,故使reset端電平呈高電位,系統(tǒng)復(fù)位。經(jīng)過一段時間,電容充電,使reset

21、端呈低電位,復(fù)位結(jié)束。89c512+5vc3r1圖2-5 復(fù)位電路2.5. 波形產(chǎn)生模塊設(shè)計由單片機(jī)采用編程方法產(chǎn)生三種波形、通過da轉(zhuǎn)換模塊dac0832在進(jìn)過濾波放大之后輸出。其電路圖如圖2-6所示:圖2-6 波形產(chǎn)生電路lm324的5管腳與dac0832的(iout2)12管腳相連,lm324的6管腳與dac0832的(iout1)11管腳相連,lm324的7管腳與dac0832的ref(9)管腳相連。第一級運算放大器的作用是將dac0832輸出的電流信號轉(zhuǎn)化為電壓信號v1,第二級運算放大器的作用是將v1通過反向放大電路放大-(r2/r1)倍。在第二個運算放大器的輸出端連了一個20k的電

22、位器。通過電位器來調(diào)節(jié)波形振幅的大小,同時在輸出端接到示波器的輸入端,通過示波器觀察產(chǎn)生的波形。2.6. d/a轉(zhuǎn)換電路設(shè)計2.6.1. d/a轉(zhuǎn)換器指標(biāo)分辨率:輸出模擬電壓應(yīng)能區(qū)分02n-1共2n個輸入數(shù)字量。表示方法:1)用輸入二進(jìn)制數(shù)的位數(shù)表示;如8位。2)用輸出模擬電壓的最小值與最大值的比值表示。指最小輸出電壓和最大輸出電壓之比。dac0832的分辨率為1/255。精度:dac實際輸出電壓與理想的輸出電壓的偏差。dac0832的最大滿刻度偏差為+1lsb 。線性度:dac實際傳輸特性曲線與理想的傳輸特性曲線的偏差。dac0832的最大誤差為+0.19% 。溫度靈敏度:在輸入不變的情況下

23、,輸出模擬電壓隨溫度變化產(chǎn)生的變化量。一般用滿刻度輸出條件下溫度每升高1,輸出電壓變化的百分?jǐn)?shù)作為溫度系數(shù)。轉(zhuǎn)換速度:用完成一次轉(zhuǎn)換所需的時間建立時間tset來衡量。建立時間:輸入信號從開始變化到輸出電壓進(jìn)入與穩(wěn)態(tài)值相差1/2lsb范圍以內(nèi)的時間。輸入信號由全0變?yōu)槿?所需時間最長。當(dāng)外接運放時,轉(zhuǎn)換時間還應(yīng)加上運放的上升(下降)時間。 (21)式中為轉(zhuǎn)換時間 ,為建立時間,輸出最大電壓值,為運放輸出轉(zhuǎn)換速率。2.6.2. d/a轉(zhuǎn)換的原理以倒t形電阻網(wǎng)絡(luò)d/a轉(zhuǎn)換器為例,介紹d/a轉(zhuǎn)換器的原理。倒t形電阻網(wǎng)絡(luò)d/a轉(zhuǎn)換器結(jié)構(gòu)如圖2-7所示。圖2-7 倒t形電阻網(wǎng)絡(luò)d/a轉(zhuǎn)換器圖中s0s3為模

24、擬開關(guān),由輸入數(shù)碼di控制,當(dāng)di=1時,si接運算放大器相輸入端(虛地),電流ii流入求和電路;當(dāng)di=0時,si將電阻2r接地。所以,無論si處于何種位置,與si相連的2r電阻均接“地”(地或虛地)。流過各開關(guān)支路(從右到左)的電流分別為 i/2、i/4、i/8、i/16??傠娏鳎?(22)輸出電壓: (23)將輸入數(shù)字量擴(kuò)展到n位,則有: (24)可簡寫為: 其中, 2.6.3. dac0832芯片由于單片機(jī)產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以本文選用價格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器dac0832。dac0832主要由8位

25、輸入寄存器、8位dac寄存器、8位d/a轉(zhuǎn)換器以及輸入控制電路四部分組成。但實際上,dac0832輸出的電量也不是真正能連續(xù)可調(diào),而是以其絕對分辨率為單位增減,是準(zhǔn)模擬量的輸出。dac0832是電流型輸出,在應(yīng)用時外接運放使之成為電壓型輸出。根據(jù)對dac0832的數(shù)據(jù)鎖存器和dac寄存器的不同的控制方式,dac0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設(shè)計選用直通方式。csda:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;wr:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ile、cs、wr1的邏輯組合產(chǎn)生le1,當(dāng)le1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)

26、線變換,le1的負(fù)跳變時將輸入數(shù)據(jù)鎖存。單片機(jī)的p0口連接dac0832的八位數(shù)據(jù)輸入端,dac0832的輸出端接放大器,經(jīng)過放大后輸出所要的波形。dac0832的內(nèi)部結(jié)構(gòu)如圖2-8所示:圖2-8 dac0832內(nèi)部結(jié)構(gòu)圖2.7. 數(shù)碼管顯示模塊本設(shè)計是用利用4為led數(shù)碼管顯示波形代號和頻率,通過按鍵來控制輸出不同的波形,在數(shù)碼管上第一位字母a、b、c、d分別對應(yīng)著正弦波、三角波、方波、鋸齒波,后三位數(shù)碼管對應(yīng)信號的頻率,通過按鍵控制頻率輸出,其中單片機(jī)p1口接驅(qū)動芯片74ls245用以增加p1口帶負(fù)載的能力,再利用74ls138譯碼器芯片對其進(jìn)行譯碼并通過數(shù)碼管顯示,顯示模塊圖如圖2-9所

27、示:圖2-9 顯示電路模塊河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 系統(tǒng)軟件方案的設(shè)計3. 系統(tǒng)軟件方案的設(shè)計3.1. 軟件總體設(shè)計應(yīng)用系統(tǒng)中的應(yīng)用軟件是根據(jù)系統(tǒng)功能要求而設(shè)計的,能可靠地實現(xiàn)系統(tǒng)的各種功能。一個優(yōu)秀的應(yīng)用系統(tǒng)的應(yīng)具有下列特點:根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干個獨立的部分。設(shè)計出軟件的總體結(jié)構(gòu),使其結(jié)構(gòu)清晰、流程合理。要樹立結(jié)構(gòu)化程序設(shè)計風(fēng)格,各功能程序模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改。建立正確的數(shù)學(xué)模型。即根據(jù)功能要求,描述各個輸入和輸出變量之間的數(shù)學(xué)關(guān)系,它是關(guān)系到系統(tǒng)好壞的重要因素。為提高軟件設(shè)計的總體效率,以簡明、直觀法對任務(wù)進(jìn)行描述,在編寫應(yīng)用軟件之前

28、,應(yīng)繪制出程序流程圖。要合理分配系統(tǒng)資源,包括rom、ram、定時/計數(shù)器、中斷資源等。注意在程序的有關(guān)位置處寫上功能注釋,提高程序的可讀性。加強(qiáng)軟件抗干擾設(shè)計,它是提高系統(tǒng)應(yīng)用可靠性的有利措施。本系統(tǒng)的軟件包括以下幾個程序模塊:鍵盤處理程序;中斷服務(wù)程序;正弦波發(fā)生程序及其服務(wù)程序;三角波發(fā)生程序;方波發(fā)生程序;鋸齒波發(fā)生程序。3.2. 軟件流程圖本系統(tǒng)采用at89c51單片機(jī),用編程的方法來產(chǎn)生四種波形,并通過編程來切換四種波形以及波形頻率的改變。具體功能有:各個波形的切換;各種參數(shù)的設(shè)定;頻率增減等;數(shù)碼管的顯示軟件調(diào)通后,通過編程器下載到at89c51芯片中,然后插到系統(tǒng)中即可獨立完成

29、所有的控制。軟件流程圖如圖3-1所示。圖3-1 程序流程圖3.3. 鍵盤掃描及初始程序設(shè)計單片機(jī)系統(tǒng)中,鍵盤掃描是cpu工作的一個主要內(nèi)容之一。cpu忙于各項工作任務(wù)時,如何兼顧鍵盤掃描。既保證不失時機(jī)的響應(yīng)鍵盤操作,又不過多占用cpu時間。因此,要根據(jù)應(yīng)用系統(tǒng)中的cpu的忙、閑情況,選擇好鍵盤的工作方式。在單片機(jī)應(yīng)用系統(tǒng)設(shè)計中,為了節(jié)省硬件,通常采用非編碼鍵盤,在這種鍵盤結(jié)構(gòu)中,單片機(jī)對它的控制有三種方式:程序控制掃描方式;定時掃描工作方式;中斷工作方式。1)程序控制掃描方式這種方式就是只有當(dāng)單片機(jī)空閑時,才調(diào)用鍵盤掃描子程序,響應(yīng)鍵盤的輸入請求。2)定時掃描方式這種方式就是每隔一定的時間對

30、鍵盤掃描一次。通常是利用單片機(jī)內(nèi)部定時器產(chǎn)生1ms的定時中斷,cpu響應(yīng)定時器溢出中斷請求,對鍵盤進(jìn)行掃描,以響應(yīng)鍵盤輸入請求。3)中斷工作方式為進(jìn)一步提高cpu效率,可以采用中斷掃描工作方式。即在鍵盤有健按下時,才執(zhí)行鍵盤掃描,執(zhí)行該鍵功能程序。本系統(tǒng)采用程序控制掃描工作方式。在該設(shè)計中的鍵盤的行列線連接于89c51的p2口上。鍵盤掃描程序自復(fù)位后就開始工作,時刻監(jiān)視鍵盤,有無鍵按下。在監(jiān)視鍵盤過程中,允許定時器中斷。一旦有鍵按下,先延時1ms,去除鍵的抖動,然后關(guān)中斷,不允許定時器發(fā)生中斷。按鍵功能如表3-1所示:表3-1 按鍵對應(yīng)功能按鍵功能key1鍵選擇發(fā)波類型(1為正弦波,2為三角波

31、,3為方波,4為方波)key2頻率增加key3頻率減小按鍵控制源程序如下:void delay(uchar k)for(de1=0;de1<10;de1+) for(de2=0;de2<k;de2+);void key1(void) /鍵選擇發(fā)波類型,1為正弦波,2為三角波,3為方波fun+;if(fun=5)fun=0x01;void key2(void) /鍵加大頻率tl+=0xf;if(tl>0xe8)tl=0x00;if(flag>0) flag-; else flag=255;void key3(void) /鍵減小頻率if(th>0x00)tl-=0x

32、f;if(flag<255)flag+;else flag=0;void key4(void) 3.4. 中斷服務(wù)程序設(shè)計采用定時器t0定時中斷,根據(jù)不同的按鍵次數(shù),產(chǎn)生不同的波形。void int1 (void) interrupt 2 /int0中斷服務(wù)程序 if(p2!=0xff) delay(125);if(p2=0xff) return; if(p2=0xef) key1(); if(p2=0xdf) key2(); if(p2=0xbf) key3(); if(p2=0x7f) key4();3.5. 波形發(fā)生程序設(shè)計3.5.1. 正弦波發(fā)生程序設(shè)計其實在計算正弦波形數(shù)據(jù)的時

33、候,并不需要算出整個02區(qū)間的每一個值,而只需計算出0中的值就行,其他區(qū)間的值都可以通過對0中的值取不同的變換。比如的值可以和0值一一對應(yīng),而2的值可以對0區(qū)間的值取反得到。計算值可以用c語言編程得到。幅度公式為y=2.51+sin() (n=0,1,264)相應(yīng)的y值數(shù)字化后的遞增量=0.0196那么每一個點相對于起一個點的遞增率為a= (y2當(dāng)前的點,y1為前一個點)所以每一個點的數(shù)字量與遞增率a成一一對應(yīng)關(guān)系,正弦波形數(shù)據(jù)表見表3-2。序號幅度(y值)遞增率a數(shù)字遞增率數(shù)字量(十進(jìn)制)12.5613530.061353313122.6226690.122669613432.6839110

34、.183911913742.7450430.2450431214052.8060270.3060271514362.8668260.3668261814672.9274050.4274052114982.9877260.4877262415293.0477530.54775327155103.1074500.60745030158113.1667820.66678234162123.2257120.72571237165133.2842040.78420440168143.3422250.84222542170153.3997380.89973845173163.4567080.9567084

35、8176173.5131031.01310351179183.5688881.06888854182193.6240281.12402857185203.6784921.17849260188213.7322451.23224562190223.7852571.28525765193233.8374941.33749468196243.8889261.38892670198253.9395201.43952073201263.9892481.48924875203274.0380791.53807978206284.0859831.58598380208294.1329321.63293283

36、211304.1788971.67889785213314.2238511.72385187215324.2677671.76776790218表3-2 正弦波形數(shù)據(jù)表334.3106171.81061792220344.3523781.85237894222354.3930221.89302296224364.4325261.93252698226374.4708661.970866100228384.5080192.008019102230394.5439622.043962104232404.5786742.078674106234414.6121342.112134107235424.

37、6443212.144321109237434.6752182.175218110238444.7048032.204803112240454.7330612.233061113241464.7599732.259973115243474.7855242.285524116244484.8096992.309699117245494.8324822.332482119247504.8538602.353860120248514.8738202.373820121249524.8923512.392351122250534.9094402.409440122250544.9250782.4250

38、78123251554.9392552.439255124252564.9519632.451963125253574.9631942.463194125253584.9729412.472941126254594.9811992.481199126254604.9879622.487962126254614.9932262.493226127255624.9969892.496989127255634.9992472.499247127255645.0000002.50000012725534正弦波發(fā)生程序如下:if(fun=1) da0832=tosinb/4*a; /正弦波 b+; 3.

39、5.2. 三角波發(fā)生程序設(shè)計由于三角波的函數(shù)值比較容易計算,所以不必要像正弦波那樣還需用表格。可直接通過如下程序段實現(xiàn)。else if(fun=2) /三角波 if(c<128)da0832=c*2/4*a; else da0832=(255-c)*2/4*a; c+; 3.5.3. 方波發(fā)生程序設(shè)計方波可直接由dac0832產(chǎn)生,其發(fā)生程序如下:else if(fun=3) / 方波 d+; if(d<=128)da0832=0x00; else da0832=0xff/4*a; 3.5.4. 鋸齒波發(fā)生程序設(shè)計鋸齒波中的斜線用一個個小臺階來逼近,在一個周期內(nèi)從最小值開始逐步遞增

40、,當(dāng)達(dá)到最大值后又回到最小值,如此循環(huán),當(dāng)臺階間隔很小時,波形基本上近似于直線。適當(dāng)選擇循環(huán)的時間,可以得到不同周期的鋸齒波。鋸齒波發(fā)生原理與方波類似,只是高低兩個延時的常數(shù)不同其發(fā)生程序如下:else if(fun=4) / 鋸齒波 e+; da0832=e/4*a;河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 仿真結(jié)果與分析4. 仿真結(jié)果與分析4.1. 仿真和編譯工具4.1.1. proteus仿真軟件有了protel、multisim、proteus、psice等一系列的軟件的存在,就此便可以以虛代實、以軟代硬,獨立建立一個完善的虛擬實驗室。代替了在實驗室和教室里的以實物進(jìn)行實踐的方式,可以在計算機(jī)

41、上學(xué)習(xí)電工基礎(chǔ),模擬電路、數(shù)字電路、單片機(jī)應(yīng)用系統(tǒng)等課程,并進(jìn)行電路設(shè)計、仿真、調(diào)試等。因此這一系列的軟件受到廣大電子設(shè)計愛好者的青睞,是他們工作、學(xué)習(xí)上難得的工具軟件,也因此它們在全球得到了廣泛應(yīng)用。其中,proteus軟件提供多達(dá)30多個元件庫,元件涉及到數(shù)字和模擬、交流和直流等,有ram、rom、鍵盤、馬達(dá)、led、lcd、ad/da、部分spi器件、部分ic器件,編譯方面支持keil和mplab等編譯器。它的功能強(qiáng)大,集電路設(shè)計、制版及仿真等多種功能于一身,不僅能夠?qū)﹄姽?、電子技術(shù)學(xué)科涉及的電路進(jìn)行設(shè)計與分析,還能夠?qū)ξ⑻幚砥鬟M(jìn)行設(shè)計和仿真,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它

42、電路的工作情況。它還提供多種現(xiàn)實存在的虛擬儀器,這些儀表有極高的輸入阻抗、極低的輸出阻抗,可以盡可能減少儀器對測量結(jié)果的影響。此外,proteus軟件還有圖形顯示功能,可以將線路上變化的信號以圖形的方式實時地顯示出來。對于單片機(jī)硬件電路和軟件的調(diào)試,proteus提供了兩種方法:系統(tǒng)總體執(zhí)行效果和對軟件的分步調(diào)試。它還提供了比較豐富的測試信號用于電路的測試,這些測試信號包括模擬信號和數(shù)字信號。在用proteus進(jìn)行仿真和程序調(diào)試時,可以從工程的角度直接看程序運行和電路工作的過程和結(jié)果。它還提供schematic drawing、spice仿真與pcb設(shè)計功能,同時可以仿真pic、avr、51系

43、列等常用的mcu,并提供周邊設(shè)備的仿真,例如示波器、373、led等。4.1.2. keil編譯軟件keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果使用c語言編程,那么keil幾乎就是不二之選,即使不使用c語言而僅用匯編語言編程,其

44、方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會事半功倍。keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢,與匯編相比,c語言有明顯的優(yōu)勢,用過匯編語言后再使用c來開發(fā),體會更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面,是一個非常實用的編譯軟件。4.2. 仿真結(jié)果打開proteus軟件,選擇所需器件連接導(dǎo)線,連接成功后的電路圖如圖4-1所示:圖4-1 總體電路圖打開keil軟件,調(diào)出程序進(jìn)行編譯,生成hex文件,編譯窗口如圖4-2所示:圖4-2 編譯窗口編譯后沒有錯誤就可

45、以生成hex文件用于單片機(jī)仿真,采用proteus進(jìn)行單片機(jī)仿真,可以大大縮短單片機(jī)的開發(fā)周期。它不僅能仿真單片機(jī)cpu的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。以下為四種波形的仿真結(jié)果示例。正弦波仿真:頻率分別為31hz和260hz。仿真結(jié)果分別如圖4-3、4-4所示。圖4-3 正弦波仿真輸出(31hz)圖4-4 正弦波仿真輸出(257hz)三角波仿真:頻率60hz,仿真結(jié)果如圖4-5所示。圖4-5 三角波仿真輸出方波仿真:頻率86hz,仿真結(jié)果如圖4-6所示。圖4-6 方波仿真輸出鋸齒波仿真:頻率130hz,仿真結(jié)果如圖4-7所示。圖4-7 鋸齒波仿真輸出4.

46、3. 仿真分析本系統(tǒng)仿真結(jié)果,滿足設(shè)計需求。實際操作靈活,使用方便。通過按鍵來控制輸出不同的波形,在仿真輸出圖中可以看到,字母a、b、c、d分別對應(yīng)著正弦波、三角波、方波、鋸齒波,并可以利用頻率增大鍵和減小鍵來控制頻率的大小,同時可以通過調(diào)節(jié)電位器來控制波形的幅度。通過上述結(jié)果可以看到對應(yīng)不同頻率的不同波形。但是在仿真中由于dac0832量化電平的緣故無法讓該波形發(fā)生器的頻率做的很高,同時頻率步進(jìn)的最小值為一,使得信號波形發(fā)生器的精確度有所下降,這也是本次設(shè)計中的不足之處,但總體的設(shè)計基本滿足了設(shè)計的要求,順利完成了設(shè)計主要內(nèi)容。河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 參考文獻(xiàn)參考文獻(xiàn)1 周明德.微

47、型計算機(jī)系統(tǒng)原理及應(yīng)用m.北京:清華大學(xué)出版社,20022 劉樂善.微型計算機(jī)接口技術(shù)及應(yīng)用m.北京:航空航天大學(xué)出版社,20013 謝自美電子線路設(shè)計·實驗·測試(第三版)m武漢:華中科技大學(xué)出版社,20064 朱清慧.張鳳蕊. proteus教程-電子線路設(shè)計制版與仿真m.北京: 清華大學(xué) 出版社5 康華光模擬電子技術(shù)基礎(chǔ)(第五版)m北京:高等教育出版社,20066 楊翠娥.高頻電子線路實驗與課程設(shè)計m. 哈爾濱:哈爾濱工程大學(xué)出版社,20017 張秀國.單片機(jī)c語言程序設(shè)計m.北京:北京大學(xué)出版社,20088 鐘富昭.8051單片機(jī)典型模塊設(shè)計與應(yīng)用m.北京:人民郵電

48、出版社,20079 趙負(fù)圖.傳感器集成電路手冊(第一版) m.化學(xué)工業(yè)出版社,200410 丁新民.微機(jī)原理與應(yīng)用m.高等教育出版社,200811 張洪潤,易濤編著.單片機(jī)應(yīng)用技術(shù)教程(第二版)m.北京:清華大學(xué)出版,200312 劉坤等編著. 51單片機(jī)c語言應(yīng)用開發(fā)技術(shù)大全m.人民郵電出版社,200813 潘新民,王燕芳編著.微型計算機(jī)控制技術(shù)m.北京:電子工業(yè)出版社,200414 全國大學(xué)生電子設(shè)計競賽組委會編.第五屆全國大學(xué)生電子設(shè)計競賽獲獎作品選編m.北京:北京理工大學(xué)出版社,200315 楊寧編著.單片機(jī)與控制技術(shù)m.北京:北京航空航天大學(xué)出版社,200516 tyler, b.d

49、igital. voltmetersj.studentsquarterly journal,1964,(138)17 bakken, christopher. proteusj. paris review, 2000,(157)18 krause, p. h. the proteus projectj.technological forecasting and social change, 2002,(5)河南城建學(xué)院本畢業(yè)設(shè)計(論文) 致謝致謝通過本次畢業(yè)設(shè)計,我感到自己應(yīng)用基礎(chǔ)知識及專業(yè)知識解決問題的能力有了很大的提高。并且這次畢業(yè)設(shè)計的選題,是一個實際應(yīng)用工程。開始的時候由于沒有經(jīng)驗,不

50、知如何下手,所以就去圖書館找了一些書看,盡管有許多的設(shè)計方案,可是總感覺自己還是有許多的東西弄不太清楚,于是就向老師和同學(xué)請教。經(jīng)過他們的解釋分析各方案之后,我決定用查表的方法來做,這樣可以降低一些硬件設(shè)計的難度,初次設(shè)計應(yīng)切合自己的水平。用8031需要擴(kuò)展rom,這樣還要進(jìn)行存儲器擴(kuò)展。而且現(xiàn)在8031實際中已經(jīng)基本上不再使用,實際用的at89s51芯片有rom,這樣把經(jīng)過采樣得到的數(shù)值制成表,利用查表來做就簡單了。我認(rèn)為程序應(yīng)該不大,片內(nèi)rom應(yīng)該夠用的。用led顯示頻率和幅值,現(xiàn)有集成的接口驅(qū)動芯片,波形可通過示波器進(jìn)行顯示,單片機(jī)接上d/a轉(zhuǎn)換芯片即可,這樣硬件很快就搭好了。首先,我要

51、感謝的是我的指導(dǎo)老師陳英老師。陳老師在我做畢業(yè)設(shè)計的每個階段,都給予我耐心的指導(dǎo)和幫助??梢哉f,沒有陳老師的耐心指導(dǎo)和幫助,我是不可能順利完成我的畢業(yè)設(shè)計的。另外,陳老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度以及對待學(xué)生極端負(fù)責(zé)的精神,給我留下很深的印象,并將積極影響我今后的學(xué)習(xí)和工作。其次,我要感謝我的父母。父母為了我的成長,一直在背后默默的付出和辛勤的工作,他們的養(yǎng)育之恩,我將用自己的一生去回報。再次,感謝電信1班的兄弟姐妹們,是他們陪伴我度過愉快的大學(xué)四年生活!總之,感謝每一位關(guān)心過我,愛護(hù)過我的人。滴水之恩,當(dāng)涌泉相報。最后,再次感謝我的指導(dǎo)老師陳英老師。河南城建學(xué)院本科畢業(yè)設(shè)計(論文) 附錄a附錄a:源程序

52、#include <reg52.h>#include <absacc.h>#define uchar unsigned char#define da0832 xbyte0xffffuchar code tab14=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e;uchar code num 768=2,5,7,2,5,6,2,5,5,2,5,4,2,5,3,2,5,2,2,5,1,2,5,0,2,4,9,2,4,8,2,4,7,2,4,6,2,4,5,2,4,4,2,4,3,2,4,2,2,4,1,2,4,0,2,3,9,2,3,8,2,3,7,2,3,6,2,3,5,2,3,4,2,3,3,2,3,2,2,3,1,2,3,0,2,2,9,2,2,8,2,2,7,2,2,6,2,2,5,2,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論