基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)_第1頁
基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)_第2頁
基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)_第3頁
基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)_第4頁
基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、裝訂線 本科生畢業(yè)論文(設(shè)計)題目:基于DAC0832波形發(fā)生器設(shè)計與實現(xiàn)系 部 計算機科學(xué)與技術(shù)學(xué)科門類 工 科 專 業(yè) 計算機科學(xué)與技術(shù) 學(xué) 號 姓 名 指導(dǎo)教師 2013年 5 月 15 日基于dac0832的波形發(fā)生器設(shè)計與實現(xiàn)摘 要波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準信號和用戶定義信號,并保證高精度、 高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。函數(shù)波形發(fā)生器具有連續(xù)的相位 變換、和頻率穩(wěn)定性等優(yōu)點,不僅可以模擬各種復(fù)雜信號,還可對頻率、幅 值、相移、波形進行動態(tài)、及時的控制,并能夠與其它儀器進行通訊,組成自 動測試系統(tǒng),因此被廣泛用于自動控制系統(tǒng)、震動激勵、通訊和儀器儀表領(lǐng) 域。本論文是研究

2、基于DAC0832波形發(fā)生器設(shè)計與實現(xiàn)。論文采用文獻研究法、模擬法、觀察法等方法進行課題的研究。系統(tǒng)是用AT89S51作為系統(tǒng)的控制核心,外圍電路采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832),運放電路(TL082),按鍵,定位器,LCD顯示器等。系統(tǒng)通過按鍵來和定位器進行整個系統(tǒng)的控制,按鍵控制切換產(chǎn)生正弦波,鋸齒波,三角波,階梯波,四中波形,而幅值和占空比是通過定位器來進行調(diào)節(jié)。系統(tǒng)經(jīng)過調(diào)試和最后的檢測,可以得出本系統(tǒng)一下特點:性能較好,穩(wěn)定性強,價格便宜,容易操作,具有一定的實用性,最后的成品可以用在常用的有波形發(fā)生器功能要求的應(yīng)用電子儀器設(shè)備上。 關(guān)鍵詞:單片機 波形發(fā)生器 DAC0832A

3、BSTRACTThe profile generator is can produce the massive standard signals and the user definition signal, and guarantees the high accuracy, high stable, the repeatability and the easy operational electronic instrumentation. The function profile generator has the continual phase transformation, and me

4、rits and so on frequency stability, not only may simulate each kind of complex signal, but also may to the frequency, the peak-to-peak value, the phase-shift, the profile carry on the tendency, the prompt control, and can carry on the communication with other instruments, the composition automated t

5、est system, therefore widely uses in the automatic control system, the vibration drive, the communication and the instrument measuring appliance domain.This paper is studing on waveform generator design and implementation based on the DAC0832. The system is used AT89S51as the core of the control sys

6、tem, a peripheral circuit using digital / analog conversion circuit ( DAC0832), operational amplifier circuit (TL082), keys, locator, LCD display etc. The system through the keys and locator for the entire system control, The key control switch generates a sine wave, sawtooth, triangle wave, ladder

7、wave, fourth waveform, while the amplitude and duty ratio is adjusted by the locator. The system debugging and the final test, the system can reach a characteristic: good performance, high stability, low price, easy to operate, has a certain practicality, the final product can be used in common with

8、 waveform generator function requirements of the application of electronic equipment.Keywords:MCU the waveform generator DAC0832目 錄第1章 緒論11.1波形發(fā)生器現(xiàn)狀11.2單片機在波形發(fā)生器中的應(yīng)用11.3課題研究目的,內(nèi)容,和方案設(shè)計1第2章 硬件電路的設(shè)計32.1波形發(fā)生器系統(tǒng)框圖32.2 各模塊之間的相連32.3各模塊電路的設(shè)計62.3.1 D/A轉(zhuǎn)換電路設(shè)計62.3.2復(fù)位電路設(shè)計72.4.3 按鍵電路設(shè)計72.4.4 I/V轉(zhuǎn)換電路設(shè)計9第3章 軟件設(shè)計

9、103.1程序103.2按鍵程序模塊103.3 鋸齒波程序模塊123.4三角波程序模塊133.5正玄波程序模塊143.6方波程序模塊143.7延遲程序模塊16第4章 總結(jié)17致謝18參考文獻19第1章 緒論1.1波形發(fā)生器現(xiàn)狀波形發(fā)生器作為一種常用的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的波形發(fā)生器可以完全用硬件電路搭建,如應(yīng)用555振蕩電路可以產(chǎn)生正弦波,三角波,方波等波形,傳統(tǒng)的波形發(fā)生器多采用這種方式設(shè)計,這種方式不應(yīng)用單片機,但是這種方式存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點,在科學(xué)研究和生產(chǎn)實踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬震動等領(lǐng)域往往需要低頻信號源,而由硬件搭建的波形

10、發(fā)生器效果往往達不到好的效果,而且低頻信號源所需要的RC很大,大電阻,大電容在制作上有困難,參數(shù)的精度也難以保證,而且體積大,漏電,體積大是該類波形發(fā)生器的顯著缺點。1.2單片機在波形發(fā)生器中的應(yīng)用隨著電子技術(shù)的飛快發(fā)展,單片機的應(yīng)用不斷的深入,基于單片機的智能儀器的設(shè)計技術(shù)不斷成熟。單片機構(gòu)成的儀器具有高可靠性,高性價比,單片機技術(shù)在智能儀表和自動化等諸多領(lǐng)域有了極為廣泛的應(yīng)用,并應(yīng)用到各種家庭電器,單片機技術(shù)的廣泛應(yīng)用推動了社會的進步。一塊單片機芯片就是一臺計算機,單片機的這種特殊的結(jié)構(gòu)形式,使得其在某些應(yīng)用領(lǐng)域,它承擔(dān)了大中型計算機和通用微機無法完成的一些工作。單片機有很多優(yōu)點和特點,歸

11、納有以下幾個方面:1.具有優(yōu)異的性價比單片機盡可能的把應(yīng)用所需要的存儲器,各種功能的I/O接口集成在一塊芯片內(nèi),因而其性能優(yōu)越,而價格性對低廉。2.集成度搞,體積小,可靠性高單片機把各種功能部件集成在一塊芯片上,因而集成度高,為大規(guī)模集成電路或超大規(guī)模集成電路,又內(nèi)部采用總線結(jié)構(gòu),因而大大減少了芯片內(nèi)部之間的連線,這大大提高了單片機的可靠性和抗干擾能力,同時,體積小,對于強磁場環(huán)境易于采用屏蔽措施,適合于在惡劣環(huán)境下工作。3.低電壓和低功耗單片機大量應(yīng)用于便攜式產(chǎn)品和家庭消費類產(chǎn)品,低電壓和低功耗極為重要。目前,單片機的功耗也越來越低,一枚紐扣電池就能使產(chǎn)品運行很長時間5.控制功能強單片機體積

12、雖小,但五臟俱全,它非常適合專門的控制用途。其指令系統(tǒng)中含有豐富的轉(zhuǎn)移指令,容易通過編程實現(xiàn)相關(guān)控制1.3課題研究目的,內(nèi)容,和方案設(shè)計利用DAC0832波形發(fā)生器設(shè)計一個能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器。本題目中,方波信號是利用定時器中斷產(chǎn)生的,每次中斷時,將輸出的信號按位取反即可。設(shè)計一個能產(chǎn)生正弦波、方波、三角波、梯形波、鋸齒波的波形發(fā)生器其他波形可以通過單片機控制DAC來實現(xiàn)。1.三角波信號是將輸出的二進制數(shù)字信號依次加1,達到0xff時依次減1,并實時將數(shù)字信號經(jīng)D/A轉(zhuǎn)換得到;2.鋸齒波信號是將輸出的二進制數(shù)字信號依次加1,達到0xff時置為0x00,并實時將

13、數(shù)字信號經(jīng)D/A轉(zhuǎn)換得到的;3.方波信號是將輸出二進制數(shù)字信號以1和0來顯示在上面,還是在下面,并實時將數(shù)字信號經(jīng)D/A轉(zhuǎn)換得到的;4.正弦波是利用MATLAB將正弦曲線均勻取樣后,得到等間隔時刻正弦波取樣值,然后依次輸出后經(jīng)D/A轉(zhuǎn)換得到。采用單片機(AT89S51)和數(shù)模轉(zhuǎn)換芯片(DAC0832)實現(xiàn)波形的產(chǎn)生,波形的產(chǎn)生由程序控制,向D/A的輸入端按一定的規(guī)律發(fā)送數(shù)據(jù),經(jīng)過D/A產(chǎn)生波形,通過按鍵或中斷控制不同波形的產(chǎn)生。此方案通過編程簡化了外部電路,原理簡單,容易實現(xiàn)。通過編程實現(xiàn)不同波型的產(chǎn)生,并且可以通過按鍵實現(xiàn)波形的切換。該方案線路簡單,結(jié)構(gòu)緊湊,系統(tǒng)穩(wěn)定,易控制,容易調(diào)試等優(yōu)點

14、。第2章 硬件電路的設(shè)計2.1波形發(fā)生器系統(tǒng)框圖 LCD波形指示 按鍵 AT89S51 電源A/D轉(zhuǎn)換電流/電壓轉(zhuǎn)換輸出圖2-1波形發(fā)生器系統(tǒng)框圖原理框圖分析:該波形發(fā)生器主要由單片機(AT89S51),數(shù)模轉(zhuǎn)換電路(DAC0832),電流/電壓轉(zhuǎn)換電路(TL082),按鍵和ISP接口等組成。其工作原理為當(dāng)按下通過按下按鍵來進行切換波形,而且占空比,幅值可調(diào),然后就會產(chǎn)生相對應(yīng)的波形。1.本系統(tǒng)的通過按鍵(按鍵和定位器)來進行整個系統(tǒng)的控制,按鍵1是波形選擇及占空比和頻率的選擇,按鍵2和按鍵3是調(diào)節(jié)占空比和頻率的,按 鍵4是確定以上的設(shè)置然后進行最后的確認。2.LCD是用來顯示當(dāng)前的波形的名字

15、,及波形的占空比和頻率,在進行選擇波形和波形參數(shù)的設(shè)置的時候需要用到的重要工具。3.電源為整個系統(tǒng)供電,是整個系統(tǒng)的保障。由跟USB線連接電腦和單片機。4.A/D轉(zhuǎn)換是整個系統(tǒng)的重點部分,它將單片機控制送來的數(shù)據(jù)轉(zhuǎn)換成電壓,為整個過程的重點,主要由DAC0832來完成。 5.數(shù)據(jù)通過DAC0832芯片轉(zhuǎn)換后為電流信號,然后需要個外部功率放大器來實現(xiàn)電流和電壓之間的轉(zhuǎn)換。6.把轉(zhuǎn)換后得到的電壓信號輸出到示波器進行顯示,得到波形。2.2 各模塊之間的相連按鍵與AT89S51之間的相連總共有四個控制按鍵,是整個系統(tǒng)的主要控制區(qū),四個按鍵分別是KEY1,KEY2,KEY3,KEY4,分別于單片機的P2

16、4,P25,P26,P27(即單片機的25,26,27,28號四個引腳相連,) 然后再分別通過一個4K的電阻和電源相連。最后進行統(tǒng)一接地1。圖2-2 按鍵與單片機的相連圖LCD顯示器與AT89S51的相連本系統(tǒng)采用是LCD1602液晶顯示器,次液晶顯示器總共有16各引腳,各引腳有各自的不同功能,LCD1602的46引腳與單片機的P10P12(即單片機的1,2,3號引腳)這三個引腳是傳輸AT89S51與LCD1602液晶顯示器的控制信號的。LCD1602的714號八個引腳是與AT89S51的P01P07(即單片機的39,38,37,36,35,34,33,32號引腳)相連,與之相應(yīng)的連線為單片機

17、與液晶顯示器的數(shù)據(jù)傳輸線,在焊接電路板的時候,用的是排線來連接的。圖2-3 LCD1602與單片機的相連圖DAC0832與AT89S51之間的相連DAC0832是整個波形發(fā)生器的中專部分,實現(xiàn)的是數(shù)字信號轉(zhuǎn)換成模擬電流信號,該芯片是由20各引腳組成,其中的DI0DI7號引腳與單片機AT89S51的P30P37(即AT89S51的1117號)引腳相連,與之相應(yīng)的聯(lián)想便是是DAC0832與AT89S51的數(shù)據(jù)傳輸線,是DAC0832與AT89S51數(shù)據(jù)交換的渠道,AT89S51中的數(shù)據(jù)通過這條線把原始的數(shù)字量數(shù)據(jù)傳到DAC0832進行轉(zhuǎn)化,轉(zhuǎn)化成電流模擬信號2。其他的引腳中的1,2,3,10,12

18、,17,18號引腳是接地的,REF (DAC0832芯片的9號)引腳是反饋電阻引出端,DAC0832內(nèi)部已經(jīng)有反饋電阻,所以 REF端可以直接接到外部運算放大器的輸出端,這樣相當(dāng)于將一個反饋電阻接在運算放大器的輸出端和輸入端之間。IOUT1(DAC0832芯片的11號)引腳是模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時,輸出電流最大,當(dāng) DAC寄存器中數(shù)據(jù)全為0時,輸出電流為0。與功率放大器負極相連。圖2-4 DAC0832與AT89S51之間的相連圖D/A轉(zhuǎn)換電路與電流/電壓轉(zhuǎn)換電路的相連D/A轉(zhuǎn)換電路這里是指DAC0832芯片,前面我們也提到過REF (DAC0832芯片的9號)引腳是反

19、饋電阻引出端,REF端直接接到外部運算放大器的輸出端, IOUT1(DAC0832芯片的11號)引腳是模擬電流輸出端1與功率放大器負極相連3。圖2-5 D/A轉(zhuǎn)換電路與電流/電壓轉(zhuǎn)換電路的相連圖電流/電壓轉(zhuǎn)換電路與波形輸出端之間的相連 波形輸出端有兩個引腳,1號引腳是接功率放大器的輸出端,2號引腳是接地。圖2-6 電流/電壓轉(zhuǎn)換電路與波形輸出端之間的相連圖2.3各模塊電路的設(shè)計2.3.1 D/A轉(zhuǎn)換電路設(shè)計圖2-7中DAC0832的數(shù)字量B由單片機送來,AMPA和BAMP均為運算放大器,輸出電壓VOUT通過2個10K電阻反饋到運算放大器AMPA輸入端,其他如圖2-7,可由基爾霍夫定律列出方程組

20、,并解得VOUT(B-128) VREF/128由上式在選用+VREF時,如果輸入數(shù)字量最高位b7為“1”時,則輸出模擬電壓VOUT為正;若輸入數(shù)字量最高位b7為“0”時,則輸出模擬電壓VOUT為負。在選用-VREF時,輸出值正好與+VREF選用時極性相反4。VOUT圖2-7 D/A轉(zhuǎn)換電路圖2.3.2復(fù)位電路設(shè)計1.使CPU開始工作的方法就是給CPU一個復(fù)位信號,復(fù)位信號結(jié)束后,CPU從程序存儲器“0000H”開始執(zhí)行程序。AT89S51高電平復(fù)位,復(fù)位的方式一般有三種5:第一:上電復(fù)位。接通電源時,單片機復(fù)位。第二:手動復(fù)位。設(shè)置一個復(fù)位按鈕,當(dāng)操作者按下按鈕時產(chǎn)生一個復(fù)位信號。第三:自動

21、復(fù)位。設(shè)計一個復(fù)位電路,當(dāng)系統(tǒng)滿足某一條件時自動產(chǎn)生一個復(fù)位信號。而本系統(tǒng)采用的是手動復(fù)位,在系統(tǒng)需要出新設(shè)置,或者死機的時候,可以按下reset鍵得意還原系統(tǒng)的狀態(tài)。2.復(fù)位電路與單片機的相連毫無疑問復(fù)位鍵是與單片機的9好引腳相連,與接地之間連了10k電阻,與電源之間相連10uf的微波電容。圖2-8 復(fù)位電路圖2.4.3 按鍵電路設(shè)計1.原理圖如下KEY1KEY1KEY3KEY2圖2-9 采用查詢方式對各類波的切換2.說明:KEY1:波形之間的切換,及占空比,頻率的切換。KEY2:在設(shè)置占空比和頻率時,按下,數(shù)值會減少。KEY3:在設(shè)置占空比和頻率時,按下,數(shù)值會增加。KEY4:確認鍵。3.

22、工作介紹對于外部中斷實現(xiàn)對波形的切換,當(dāng)KEY1按下時,LCD顯示波形的名字的下面開始閃爍光標(biāo),再次按下進行波形之間的切換,按下KEY4鍵進行,開始切換占空比和頻率,當(dāng)切換到占空比時或者頻率時,按下KEY3或者KEY4進行空比時或者頻率的增加減少設(shè)置,最后再按下KEY4進行最后的確認,這時示波器里的波形應(yīng)該已經(jīng)發(fā)生了變化6。4.按鍵與單片機的相連按鍵KEY1,KEY2,KEY3,KEY4分別和單片機的P24,P25,P26,P27引腳相連,然后再分別通過一個4K的電阻和電源相連。最后進行統(tǒng)一接地。2.4.4 I/V轉(zhuǎn)換電路設(shè)計圖2.10 I/V轉(zhuǎn)換電路1.說明:實現(xiàn)I/V轉(zhuǎn)換最簡單的方法就是直

23、接在1out1和Iout2之間跨界一電阻,這樣就很容易的實現(xiàn)了I/V轉(zhuǎn)換,但是這種方法忽略了一個阻抗問題。對于DAC0832來說,R的取值應(yīng)盡可能大,能夠保證獲得更多的電壓,對于與輸出電壓相連的后續(xù)電路來說,R的取值應(yīng)盡可能的小,以降低輸出阻抗,這兩方面是矛盾的,所以這種方式欠合理。而合理的方式是應(yīng)用運算放大器實現(xiàn)I/V轉(zhuǎn)換,也解決了阻抗的問題7。2.I/V轉(zhuǎn)換電路與DAC0832的相連一級功率放大器TL082的負引腳與DAC0832的11號引腳相連,正極接地,而二級功率放大器TL082的負極通過10K的電阻與DAC0832的8號引腳相連,正極也接地8。 第3章 軟件設(shè)計根據(jù)功能,系統(tǒng)軟件設(shè)計

24、分成幾個模塊編程:主程序模塊,按鍵程序模塊,鋸齒波程序模塊,三角波程序模塊,正弦波程序模塊,方波程序模塊,延時程序模塊9。3.1程序開始執(zhí)行經(jīng)拷到單片機里的程序,一些初始程序之類。1.程序流程圖把轉(zhuǎn)換好的電壓,送到示波器里進行最后的顯示。一切準備就緒,把數(shù)據(jù)送到dac0832里進行轉(zhuǎn)換成電流,或者電壓然后通過TL0832和放大器進行功放。按下確認鍵進行確認,如果需要重新設(shè)置,按下背部的reset鍵來進行重新設(shè)置。這部分也是需要結(jié)合按鍵和旋鈕的,通過按鍵選擇波形之后可以設(shè)置占空比和頻率等參數(shù),幅值而已通過旋鈕來調(diào)的。通過按鍵選擇正弦波,方波,三角波和鋸齒波。圖3-1 程序流程圖2.說明:程序中主

25、要實現(xiàn)利用按鍵來控制不同波形的輸出。3.2按鍵程序模塊按鍵程序主要是講四個按鍵如何工作的,工作的過程基本相同,這里我們重點對按鍵1進行詳細介紹,其他按鍵工作原理基本不變10。首先是進行鍵盤掃描掃描前,接鍵盤的引腳口拉高,這樣發(fā)生什么變換,信號不至于紊亂,然后判斷按鍵1是否按下,如果按下,進行判斷FunctionCount(就是功能次序)如果按鍵觸發(fā)的是FunctionCount1(功能1)那么就是送到LCD上顯示初始的頻率,如果是FunctionCount2那是顯示的是占空比,程序如下:void KeyScan(void) /獨立鍵盤掃描子函數(shù) KEYPORT |= 0xf0; /每次掃描前,

26、先將接鍵盤的引腳口拉高 if(Key1 = 0) /如果檢測到有鍵按下 Scan10MsDelay(); /延時10msif(Key1 = 0) /再次判斷是否確實按下按鍵,進行消抖操作。 /功能鍵FunctionCount+; / 功能計數(shù)器增加if(FunctionCount = 3)/ 如果是FunctionCount = 3那么顯示/的是正弦波LCDCursor(); / 調(diào)入光標(biāo)函數(shù),光標(biāo)寫入LCDDispString(8,1,Sin);/因為FunctionCount = 3 /所以LCD顯示的是Sinelse if(FunctionCount = 4)/ 如果是FunctionC

27、ount = 4那么 /顯示的是方波LCDCursor(); / 調(diào)入光標(biāo)函數(shù),光標(biāo)寫入LCDDispString(8,1,Squre );/ LCD顯示的是 Squre else if(FunctionCount = 5)/ 如果是FunctionCount = 5那么 /顯示的是三角波LCDCursor(); / 調(diào)入光標(biāo)函數(shù),光標(biāo)寫入LCDDispString(8,1,Triangle);/ LCD顯示的是Sin /else if(FunctionCount = 6)/ 如果是FunctionCount = 6那么 / LCD顯示的是鋸齒波LCDCursor();/調(diào)入光標(biāo)函數(shù),光標(biāo)寫入

28、LCDDispString(8,1,Sawtooth);/ LCD顯示的是 Sawtooth else if(FunctionCount = 1)/ 如果是FunctionCount = 1那么 /顯示的是頻率LCDDispNum(5,2,(FREofALL/10%10);/ LCD顯示的是FRE=?LCDCursor();/調(diào)入光標(biāo)函數(shù),光標(biāo)寫入else if(FunctionCount = 2)/ 如果是FunctionCount = 2那么 /顯示的是占空比LCDDispNum(13,2,(DUTYofALL/10%10);/ LCD顯示的是/DUTY=?LCDCursor();/調(diào)入光

29、標(biāo)函數(shù),光標(biāo)寫入while(!Key1); /未松手時,不跳出循環(huán),避免誤檢測 FunctionCount3到6是分別進行l(wèi)cd顯示正弦波,方波,三角波和鋸齒波。通過按鍵控制整個系統(tǒng),按鍵2和按鍵3是分別是增加和減少鍵,在設(shè)置占空比和頻率的時候需要用到他們,而按鍵4是確認鍵,對于所以參數(shù)已經(jīng)設(shè)置完畢的情況下按下確認鍵。由于功能簡單,不是本論文的重點而且原理基本相同在這里就不闡述。3.3 鋸齒波程序模塊鋸齒波是經(jīng)過鋸齒波函數(shù)進行SawtoothOut(unsigned char fre)來進行轉(zhuǎn)換成數(shù)據(jù)量,再輸出道D/A轉(zhuǎn)換電路輸出到示波器進行顯示的波形11。鋸齒波是和三角波比較相似,他是由兩個

30、三角波疊加而成,所以,我們可以把鋸齒波,看成是兩個三角波。在處理鋸齒波的時候,也是當(dāng)三角波來處理,鋸齒波是由函數(shù)來產(chǎn)生,我們只需要知道,最高點,和最低點以及占空比和頻率,那么波形就能夠?qū)崿F(xiàn)。鋸齒波的詳細程序如下。1.鋸齒波函數(shù)的定義void SawtoothOut(unsigned char fre) /定義鋸齒波函數(shù)SawtoothIncrement = fre; / 鋸齒波的參數(shù)增加值等于頻率值FlagSawtooth = 1; / 鋸齒波默認初始值為1Count = 255;/ 鋸齒波函數(shù)的初始值為2552.鋸齒波函數(shù)的實現(xiàn)if(FlagSawtooth = 1)/ 判斷是否是鋸齒波,如

31、果是才能繼續(xù) CountNumber+;/ 增加次數(shù)計數(shù)器if(CountNumber = 2)/就可以輸出波CountNumber = 0;/ 再次置0Count = Count-SawtoothIncrement;/找到下一個點 if(Count = 256)/ 判斷是否為256如果為256 了那么自動Count = 0;/變?yōu)?(256為最高點。0為最低點)DATAOUTPUT= TableTriangleCount;/輸出波圖3-3 三角波圖3.5正玄波程序模塊正玄波是經(jīng)過鋸齒波函數(shù)進行SinOut(unsigned char fre)來進行轉(zhuǎn)換成數(shù)據(jù)量,再輸出道D/A轉(zhuǎn)換電路輸出到示

32、波器進行顯示的波形13。正玄波是常用的波形,他的實現(xiàn),需要依賴一個控制節(jié)點的函數(shù),知道一個節(jié)點,通過計時器和變量的不斷變化,這樣就能得到下個節(jié)點,比如當(dāng)在最低點的時候,通過一個節(jié)點增加變量。1. 正玄波函數(shù)的定義void SinOut(unsigned char fre)/1-10HZ 2-20Hz 5-50Hz 10-100HzSinIncrement = fre; 正玄波的參數(shù)增加值等于頻率值FlagSin = 1; 正弦標(biāo)記置1也是初始值2.正玄波函數(shù)的實現(xiàn)if(FlagSin = 1)/ 判斷是正玄波flag是否等于1,如果是才能繼續(xù)CountNumber+;/增加次數(shù)計數(shù)器if(Co

33、untNumber = 2)/輸出正弦波CountNumber = 0;/ 再次置0Count = Count+SinIncrement;/找到下一個點if(Count = 256)/ 判斷是否為256如果為256 了那么自動Count = 0;/變?yōu)?DATAOUTPUT= TableSinCount;/輸出波形圖3-4 正弦波圖3.6方波程序模塊方波是經(jīng)過鋸齒波函數(shù)進行void SqureOut(unsigned int fre,unsigned int duty)來進行轉(zhuǎn)換成數(shù)據(jù)量,再輸出道D/A轉(zhuǎn)換電路輸出到示波器進行顯示的波形14。方波主要是通過指定節(jié)點來進行波形的顯示,每個節(jié)點是已

34、經(jīng)確定的值,方波和正玄波工作原理相似,節(jié)點都是在初始化的過程中定義的,方波的初始化如下:static unsigned char code TableTriangle256= 128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158, 160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190, 192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222, 224,226,228,230,2

35、32,234,236,238,240,242,244,246,248,250,252,254, 255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,140,138,136,134,132,

36、130,128,126,124,122,120,118,116,114,112,110,108,106,104,102,100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22,

37、24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,100,102,104,106,108,110,112,114,116,118,120,122,124,126 ;節(jié)點初始化完畢。1.方波函數(shù)的定義void SqureOut(unsigned int fre,unsigned int duty)/方波有兩個變量 /頻率和占空比TimerCount

38、 = 12550;/ 初始計數(shù)器值為12550TH0=(65536-TimerCount)/256; /最高點的初始值TL0=(65536-TimerCount)%256;/ 最低點的初始值Count = 0;/ SqureCount = 20000/fre;/方波節(jié)點的得到,通過一個數(shù)學(xué)表達式得到SqureHigh = SqureCount*duty/100;/占空比也影響方波的顯示 FlagSqure = 1; 方波的標(biāo)記重新置12.方波函數(shù)的實現(xiàn)if(FlagSqure = 1)/ 判斷是三角波flag是否等于1,如果是才能繼續(xù)Count+;/ 節(jié)點計數(shù)器開始計數(shù)if(Count Squ

39、reCount)/如果節(jié)點計數(shù)器的值大于SqureCount /那么需要置0這樣才能產(chǎn)生最低點Count = 0;/ 置0DATAOUTPUT = 0xff;/顯示在方波最低段的時候的一段波形if(Count SqureHigh)/判斷節(jié)點是否大于SqureHigh如果大于 /可以輸出在最高點的一段波形DATAOUTPUT = 0x00;/ 輸出波形圖3-5 方波圖3.7延遲程序模塊延遲函數(shù)的定義延遲函數(shù)是單片機領(lǐng)域非常常用的函數(shù),函數(shù)的定義基本也是一樣的,詳細代碼如下,這里只給出定義,因為它的實現(xiàn)情況,需要結(jié)合其他模塊,在按鍵程序模塊里出現(xiàn)過15。void Scan10MsDelay(void) /10毫秒延時 unsigned int x,y;for(x = 10; x 0 ; x-)for(y = 110 ; y 0 ; y-);在按鍵和和按鍵相關(guān)的操作是都需要延遲,延遲可以判斷按鍵是否持續(xù),也可以消除抖動,避免誤差。第4章 總結(jié)基于單片機和DAC0832波形發(fā)生器的設(shè)計與實現(xiàn),從課題的名字上就能看出,主要是從單片機和DAC0832兩個芯片介紹,單片機采用的是AT89S51,此單片機比AT98S51要使用,而且穩(wěn)定的多,DAC0832是波形發(fā)生器中常用

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論