基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計_第1頁
基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計_第2頁
基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計_第3頁
基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計_第4頁
基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本科生畢業(yè)設(shè)計(論文)基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計SoftwareDesignofWaveformGeneratorBasedonDDSTechnology總計:畢業(yè)設(shè)計(論文)27頁表格:1個插圖:13幅學(xué)院(系):電子與電氣工程系專業(yè):電子信息工程基于DDS技術(shù)的波形發(fā)生器軟件設(shè)計[摘要]本設(shè)計設(shè)計的是基于DDS技術(shù)的波形發(fā)生器,本設(shè)計將直接頻率合成技術(shù),單片機控制技術(shù)有機地結(jié)合在一起,實現(xiàn)了一款基于DDS的低成本波形發(fā)生器。文中主要討論基于DDS芯片AD9850的波形發(fā)生器軟件設(shè)計。本設(shè)計首先介紹了DDS的基本原理;其次分模塊介紹了系統(tǒng)軟件的主要功能,并用C語言進行編程,DDS波形發(fā)生器主要分成以下幾個模塊:鍵盤模塊、DDS模塊、看門狗模塊、LCD顯示模塊;最后進行了系統(tǒng)性能調(diào)試與仿真。[關(guān)鍵詞]波形發(fā)生器;直接數(shù)字頻率合成技術(shù);89C51;看門狗 SoftwareDesignofWaveformgeneratorBasedonDDStechnologyAbstract:Thispaperisbasedonthedesignofaspurioustechnologywaveformgenerator,BycombiningdiretctdigitalfrequencysyntheiseandcontroltechnologyalowcostwaveforrngeneratorbasedonDDShasbeenrelized.PapermainlyintrouducedbasedonDDSAD9850chipofthewaveformgeneratorsoftwaredesign.Firstly,thetheiseanalyzesthebasicprincipleofDDS.Besides,inthedesignofsystemsoftware,theirmainfunctionswereintroducedaccordingtounits,Clanguageprogrammed,theDDSwaveforrngeneratorwouldbeclassifideintofourunits:keyboardunit,DDSunit,kanmendogunit,LCDunit;moreoverthesystemfunctionshadbeentested.Keywords:Waveformgenerator;DDS;89C51;watch

目錄1引言 11.1緒論 11.2波形發(fā)生器的功能及發(fā)展現(xiàn)狀 21.2.1波形發(fā)生器的功能 21.2.2波形發(fā)生器的發(fā)展現(xiàn)狀 21.3基于DDS技術(shù)的波形發(fā)生器 31.3.1頻率合成技術(shù)及性能指標 31.3.2DDS原理分析 61.3.3DDS技術(shù)特點 72波形發(fā)生器整體設(shè)計 73系統(tǒng)軟件設(shè)計 83.1鍵盤模塊軟件設(shè)計 93.2DDS控制模塊軟件設(shè)計 113.2.1AD9850 113.2.2AD9850的控制字與控制時序 123.2.3AD9850軟件設(shè)計 133.3看門狗模塊軟件設(shè)計 143.3.1X5045 143.3.2看門狗電路的軟件設(shè)計 143.4LCD顯示模塊設(shè)計 154系統(tǒng)調(diào)試與仿真 17結(jié)束語 19參考文獻 20附錄 21致謝 271引言1.1緒論在電子技術(shù)領(lǐng)域,常常需要波形、頻率、幅度都可調(diào)節(jié)的電信號,用于產(chǎn)生這種電信號的電子儀器稱作信號發(fā)生器。信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于電子電路、自動控制和科學(xué)實驗等領(lǐng)域。作為一種為電子測量和計量提供電信號的設(shè)備,它和萬用表、示波器、頻率計等儀器一樣,是最普通、最基本,也是應(yīng)用最廣泛的電子儀器之一,幾乎所有電參量的測量都需要用到信號發(fā)生器。從本質(zhì)上看,測量是一個將客觀物理量轉(zhuǎn)換成測試信息量的變換過程。當測試對象為系統(tǒng)性能參數(shù)時,通常采用如下測量方法:在測試系統(tǒng)中,系統(tǒng)參數(shù)的測量基于輸入激勵和輸出響應(yīng)的對應(yīng)關(guān)系,這種方法被稱作“激勵一響應(yīng)”法[1],如圖1所示。圖1參數(shù)測量系統(tǒng)模型框圖采用“激勵一響應(yīng)”方法進行系統(tǒng)參數(shù)測量時,需要產(chǎn)生已知的激勵信號輸入到被測系統(tǒng),系統(tǒng)對激勵信號輸出相應(yīng)的響應(yīng)信號,通過對該響應(yīng)的測定和分析找出被測系統(tǒng)的輸入一輸出關(guān)系,從而定義系統(tǒng)的性能。由此我們可以看出,高質(zhì)量激勵信號的產(chǎn)生是系統(tǒng)參數(shù)測量中一個重要的環(huán)節(jié),標準理想的輸入激勵是整個測試系統(tǒng)正確工作的基礎(chǔ),它從根本上影響測量系統(tǒng)的性能。自從上世紀40年代惠普為美國海軍實驗室開發(fā)出第一臺信號發(fā)生器開始,信號發(fā)生器一直隨著電子技術(shù)、半導(dǎo)體技術(shù)和計算機技術(shù)的發(fā)展而發(fā)展,幾乎成為這些技術(shù)發(fā)展的一個縮影。從技術(shù)上看,信號發(fā)生器經(jīng)歷了由模擬信號發(fā)生器、數(shù)字信號發(fā)生器到虛擬信號發(fā)生器的發(fā)展過程。發(fā)展到今天,信號發(fā)生器的種類已經(jīng)多種多樣,包括正弦信號發(fā)生器、脈沖發(fā)生器、函數(shù)發(fā)生器、掃描發(fā)生器、任意波形發(fā)生器等。按照應(yīng)用范圍又可分為專用信號發(fā)生器和通用信號發(fā)生器。傳統(tǒng)的信號發(fā)生器一般基于模擬技術(shù)。它首先產(chǎn)生一定頻率的正弦信號,然后再對這個正弦信號進行處理,從而輸出其他波形信號(例如通過比較器可以輸出方波信號,對方波信號通過積分器可以生成三角波信號等)。這種技術(shù)的關(guān)鍵在于如何產(chǎn)生特定頻率的正弦信號。早期的信號發(fā)生器大都采用諧振法,后來出現(xiàn)采用鎖相頻率合成技術(shù)的信號發(fā)生器。但基于模擬技術(shù)的傳統(tǒng)信號發(fā)生器能夠產(chǎn)生的信號類型非常有限,一般只能生成正弦波、方波、三角波等少數(shù)的規(guī)則波形信號。如果需要產(chǎn)生較復(fù)雜的波形信號,電路的復(fù)雜度及設(shè)計難度都將大大增加。隨著科學(xué)實驗和研究需求的不斷發(fā)展,傳統(tǒng)的信號發(fā)生器在一些特定的場合已經(jīng)不能滿足要求,因為在許多應(yīng)用及研究領(lǐng)域,不但需要一些規(guī)則的信號,同時還需要一些不規(guī)則信號用于系統(tǒng)特性的研究,如某些電子設(shè)備的性能指標測試、系統(tǒng)中各種瞬變波形和電子設(shè)備中出現(xiàn)的各種干擾的模擬研究,就需要能提供一些非常規(guī)測試信號甚至是任意信號的信號源,即能產(chǎn)生現(xiàn)場所需波形的任意波形發(fā)生器(AWG)。任意波形發(fā)生器是現(xiàn)代電子測試領(lǐng)域應(yīng)用最為廣泛的通用儀器之一,它的功能遠比函數(shù)發(fā)生器強,可以產(chǎn)生各種理想及非理想的波形信號,對存在的各種波形都可以模擬,廣泛應(yīng)用于測試、通信、雷達、導(dǎo)航、宇航等領(lǐng)域。1.2波形發(fā)生器的功能及發(fā)展現(xiàn)狀1.2.1波形發(fā)生器的功能任意波形發(fā)生器既具有其他信號源的信號生成能力,又可以通過各種編輯手段產(chǎn)生任意的波形采樣數(shù)據(jù),方便地合成其他信號源所不能生成的任意波形,從而滿足測試和實驗的要求。任意波形發(fā)生器的主要功能[2]包括:(1)函數(shù)發(fā)生功能基礎(chǔ)實驗中,為了驗證電路功能、穩(wěn)定性和可靠性,需要給它施加理想波形,任意波形發(fā)生器能替代函數(shù)發(fā)生器提供正弦波、方波、三角波、鋸齒波等波形,還具有各種調(diào)制和掃頻能力。利用任意波形發(fā)生器的這一基礎(chǔ)功能就能滿足一般實驗的信號需求。(2)任意波形生成運行在實際電子環(huán)境中的設(shè)備,由于各種干擾的存在以及環(huán)境的變化,實際電路中往往存在各種信號缺陷和瞬變信號,例如過脈沖、尖峰、阻尼瞬變、頻率突變等。任意波形發(fā)生器可以模擬這些特殊信號,以測試系統(tǒng)的實際性能。(3)信號還原功能在一些軍事、航空等領(lǐng)域,有些電路運行環(huán)境很難估計,在設(shè)計完成之后,在現(xiàn)實環(huán)境中還需要更進一步的實驗驗證,而有些實驗的成本很高或者風險性很大(如飛機試飛時發(fā)動機的運行情況),人們不可能重復(fù)作實驗來判斷所設(shè)計產(chǎn)品的可行性和穩(wěn)定性。此時,可以利用任意波形發(fā)生器的信號還原功能。在做一些高耗費、高風險實驗時,可以通過數(shù)字示波器把現(xiàn)實中的實際波形記錄下來,再通過計算機接口下載到任意波形發(fā)生器,通過任意波形發(fā)生器還原實驗中的實際波形并加到設(shè)計電路中,做進一步的實驗驗證工作。1.2.2波形發(fā)生器的發(fā)展現(xiàn)狀目前市場上的波形發(fā)生器主要采用直接數(shù)字合成(DDS)技術(shù),這種波形發(fā)生器不僅可以產(chǎn)生可變頻的載頻信號、各種調(diào)制信號,同時還能和計算機配合產(chǎn)生用戶自定義的有限帶寬的任意信號,可以為多領(lǐng)域的測試提供寬帶寬、高分辨率的測試信號。波形發(fā)生器發(fā)展到今天,從產(chǎn)品結(jié)構(gòu)形式來劃分,主要包含三種:(1)獨立儀器結(jié)構(gòu)形式獨立儀器結(jié)構(gòu)形式是把任意波形發(fā)生器設(shè)計成單臺儀器的形式,其優(yōu)點是精度高,可獨立工作。(2)PC總線式PC(PersonalComputer)總線式是將任意波形發(fā)生器板卡直接插在PC機的總線擴展槽或通過外部接口連接到PC總線上,利用PC機來控制任意波形發(fā)生器的工作狀態(tài),其優(yōu)點是可以充分利用PC機的軟硬件資源,在波形數(shù)據(jù)處理、波形參數(shù)修改方面,計算機有明顯的優(yōu)勢。(3)VXI模塊式VXI模塊是一種新型的模塊化儀器,它必須插在VXI總線機箱上才能使用,VXI總線機箱通過GPIB或者RS232C等接口與計算機相連,VXI模塊儀器對組成自動測試系統(tǒng)特別有用,各個公司的VXI卡式儀器模塊可以自由組合使用。1.3基于DDS技術(shù)的波形發(fā)生器1.3.1頻率合成技術(shù)及性能指標所謂頻率合成技術(shù)是指以一個或者多個高精確度和高穩(wěn)定度的頻率參考信號源為基準,在某一頻段內(nèi),綜合產(chǎn)生多個工作頻率點的技術(shù)。頻率合成技術(shù)是產(chǎn)生頻率源的一種現(xiàn)代化手段,在通信、雷達、導(dǎo)航、廣播電視、電子偵察、電子干擾與反干擾及現(xiàn)代儀器儀表中有著廣泛的應(yīng)用。依據(jù)頻率合成原理制成的頻率源稱為頻率合成器。對頻率合成器的基本要求是既要合成所需頻率,又要保證信號的純凈。綜合來看,衡量頻率合成器的主要性能指標[3]有:(1)輸出頻率范圍輸出頻率范圍是指頻率合成器輸出最低頻率和最高頻率之間的變化范圍。最高頻率和最低頻率之差越大,頻率合成器的輸出頻率范圍越寬,有時候也用相對帶寬來衡量其輸出頻率范圍。(2)頻率穩(wěn)定度頻率穩(wěn)定度是指在規(guī)定的時間間隔內(nèi),頻率合成器的實際輸出頻率與頻率標定值偏差的數(shù)值,可分為長期、短期和瞬時穩(wěn)定度。(3)頻率分辨率頻率合成器的輸出頻譜通常是不連續(xù)的。頻率分辨率指兩個輸出頻率之間的最小間隔。(4)頻率切換時間頻率切換時間指頻率合成器輸出頻率由一個頻率點切換到另一個頻率點并達到穩(wěn)定工作所需的時間。該指標與頻率合成所采用的技術(shù)緊密關(guān)聯(lián)。(5)頻譜純度頻率合成技術(shù)中常常提到的一個指標就是頻譜純度,頻譜純度以雜散分量和相位噪聲來衡量。雜散又稱寄生信號,分為諧波分量和非諧波分量,主要由頻率合成過程中的非線性失真產(chǎn)生,也有頻率合成器內(nèi)外干擾的影響,還與頻率合成方式有關(guān);相位噪聲是瞬間頻率穩(wěn)定度的頻域表示,在頻譜上表現(xiàn)為主譜兩邊連續(xù)噪聲邊帶。頻譜純度是衡量頻率合成器質(zhì)量的一個重要指標。(6)調(diào)制性能調(diào)制性能是指頻率合成器的輸出是否具有調(diào)幅、調(diào)頻、調(diào)相、幅移鍵控、頻移鍵控、相移鍵控、掃頻、猝發(fā)等功能。頻率合成理論形成于20世紀30年代,經(jīng)過幾十年的發(fā)展,經(jīng)歷了三代技術(shù)變革。第一代:直接頻率合成技術(shù)。直接頻率合成是一種早期的頻率合成技術(shù),它利用一個或者多個不同的晶體振蕩器作為基準頻率源,經(jīng)過倍頻、分頻、混頻及模擬開關(guān)等途徑直接組合出多個離散頻率的輸出信號。在這種頻率合成技術(shù)中,由控制信號選擇不同輸入信號進行混頻,在頻率合成器的輸出端可以得到任意一個輸入頻率的頻率值,或者任意兩個或兩個以上頻率的和頻或差頻。這種方法得到的信號長期和短期穩(wěn)定度高,頻率切換速度快,但是大量混頻器和濾波器的使用使大規(guī)模集成不可能實現(xiàn),因而體積大、功耗大、調(diào)試難度大,并且雜散抑制不易做好,目前仍有些雷達信號的產(chǎn)生采用此方法。第二代:鎖相頻率合成技術(shù)。鎖相頻率合成也稱間接頻率合成,是20世紀50年代出現(xiàn)的頻率合成技術(shù)。它是利用一個或者幾個參考頻率源,通過諧波發(fā)生器混頻或分頻,產(chǎn)生大量的諧波或組合頻率,然后用鎖相環(huán)把壓控振蕩器(VCO)的輸出頻率鎖定在某一諧波或者組合頻率上,由VCO間接產(chǎn)生所需頻率的輸出信號。鎖相環(huán)頻率合成器實際上是一個反饋系數(shù)可變的誤差反饋控制系統(tǒng)。這種頻率合成方法的優(yōu)點是頻率穩(wěn)定度高、雜散抑制好、頻譜純度高、電路簡單可靠、調(diào)試簡便。鎖相頻率合成的這些優(yōu)點使其具有廣泛的用途其中一個重要的應(yīng)用方向是用高穩(wěn)定的參考頻率振蕩器作為參考時鐘并使用環(huán)路鎖定,以提供一系列高純度、高穩(wěn)定度的頻率源。但是頻率轉(zhuǎn)換時間與參考頻率成反比。提高頻率分辨率要以增加頻率切換時間為代價。目前解決這一問題的辦法是采用小數(shù)分頻合成方法。但總的來看,鎖相頻率合成引入了閉環(huán)系統(tǒng),其頻率切換速度比直接合成技術(shù)慢。在頻率轉(zhuǎn)換速度要求不高,但對相位噪聲、雜散指標要求高的場合,鎖相頻率合成技術(shù)仍有著特殊的優(yōu)勢。第三代:直接數(shù)字頻率合成(DDS)[4]技術(shù)。DDS技術(shù)的出現(xiàn)是頻率合成技術(shù)的一次重大變革,它突破了前兩代頻率合成技術(shù)的原理,從“相位”的概念出發(fā)進行頻率合成。DDS的原始結(jié)構(gòu)如圖2所示。圖2DDS原始結(jié)構(gòu)圖圖2所示是DDS的最初結(jié)構(gòu),這是一種基于數(shù)字存儲器的波形產(chǎn)生系統(tǒng),又被稱作數(shù)字波形存儲直讀法或者直接數(shù)字波形合成(DDWS)。這種結(jié)構(gòu)利用可程控的時鐘信號作為地址計數(shù)器的計數(shù)時鐘,地址計數(shù)器的輸出作為波形存儲器的掃描地址,波形存儲器輸出相應(yīng)地址的數(shù)字幅度序列,再經(jīng)過數(shù)模轉(zhuǎn)換成模擬階梯波形,最后通過低通濾波器平滑濾波得到輸出波形假定地址計數(shù)器的時鐘頻率為fc,波形存儲器內(nèi)存有波形一周期內(nèi)的n個采樣值,那么合成波形的頻率如(1)式所示:(1)采用圖2結(jié)構(gòu)進行頻率合成,輸出信號的的頻率必須通過改變參考時鐘頻率或者波形存儲中的數(shù)據(jù)點個數(shù)來實現(xiàn)。通過進一步的研究,人們提出了一種更為靈活的DDS結(jié)構(gòu)。圖3所示是基于相位累加器的DDS改進模型。圖3DDS改進結(jié)構(gòu)為了區(qū)分它跟DDWS的不同,將這種結(jié)構(gòu)稱為直接數(shù)字頻率合成(DDFS)。這種結(jié)構(gòu)用相位累加器取代了原來的地址計數(shù)器,使得輸出信號的頻率控制變得更加簡便,只需要通過修改頻率控制字就能實現(xiàn)。隨著對DDS技術(shù)研究和工程應(yīng)用的不斷深入,DDFS已經(jīng)逐漸成為DDS的主流結(jié)構(gòu),故習(xí)慣于用DDS來特指DDFS。DDS具有頻率分辨率高、初始相位可控及頻率切換時間快等突出優(yōu)點,但其同時存在比較嚴重的雜散。通過對DDS雜散形成機理及特點的深入研究,提出了一系列改進措施,大大提高了其輸出信號的雜散指標。DDS另外一大優(yōu)勢在于它能方便地產(chǎn)生任意波形,在具體應(yīng)用中,只需要修改波形存儲器內(nèi)的波形數(shù)據(jù)即可。在綜合考慮DDS技術(shù)的這些優(yōu)勢后,本設(shè)計決定采用DDS來實現(xiàn)任意波形發(fā)生器,同時引入雜散抑制技術(shù)來降低DDS的雜散指標。1.3.2DDS原理分析DDS與大多數(shù)的數(shù)字信號處理技術(shù)一樣,它的基礎(chǔ)仍然是奈奎斯特采樣定理。奈奎斯特采樣定理是任何模擬信號進行數(shù)字化處理的基礎(chǔ),它描述的是一個帶限的模擬信號經(jīng)抽樣變成離散序列后可不可以由這些離散序列恢復(fù)出原始模擬信號的問題。奈奎斯特采樣定理告訴我們,當抽樣頻率大于或者等于模擬信號最高頻率的兩倍時,可以由抽樣得到的離散序列無失真地恢復(fù)出原始模擬信號。只不過在DDS技術(shù)中,這個過程被顛倒過來了。DDS不是對模擬信號進行抽樣,而是一個假定抽樣過程已經(jīng)發(fā)生且抽樣值已經(jīng)量化完成,如何通過某種方法把已經(jīng)量化的數(shù)值重建原始信號的問題。DDS電路一般由參考時鐘、相位累加器、波形存儲器、D/A轉(zhuǎn)換器(DAC)和低通濾波器(LPF)組成[5]。其結(jié)構(gòu)如圖3所示。DDS的輸出頻率公式如式(2)所示:(2)其中,為參考時鐘頻率,K為頻率控制字,N為相位累加器位數(shù)。由式(2)可知,當K=1時,DDS系統(tǒng)輸出信號的頻率最小,而這個最小頻率同時也是DDS系統(tǒng)的分辨率,即分辨率公式如式(3)所示:(3)DDS系統(tǒng)中的參考時鐘通常由一個高穩(wěn)定度的晶體振蕩器來產(chǎn)生,用來作為整個系統(tǒng)各個組成部分的同步時鐘。頻率控制字(FrequencyControlWord,F(xiàn)CW)實際上是二進制編碼的相位增量值,它作為相位累加器的輸入。相位累加器由加法器和寄存器級聯(lián)而成,它將寄存器的輸出反饋到加法器的輸入端實現(xiàn)累加的功能。在每一個時鐘脈沖fc,相位累加器把頻率字K累加一次,累加器的輸出相應(yīng)增加一個步長的相位增量,由此可以看出,相位累加器的輸出數(shù)據(jù)實質(zhì)上是以K為步長的線性遞增序列(在相位累加器產(chǎn)生溢出以前),它反映了合成信號的相位信息。相位累加器的輸出與波形存儲器的地址線相連,相當于對波形存儲器進行查表,這樣就可以把存儲在波形存儲器中的信號抽樣值(二進制編碼值)查出。在系統(tǒng)時鐘脈沖的作用下,相位累加器不停的累加,即不停的查表。波形存儲器的輸出數(shù)據(jù)送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器將數(shù)字量形式的波形幅度值轉(zhuǎn)換成一定頻率的模擬信號,從而將波形重新合成出來。若波形存儲器中存放的是正弦波幅度量化數(shù)據(jù),那么D/A轉(zhuǎn)換器的輸出是近似正弦波的階梯波,還需要后級的低通平滑濾波器進一步抑制不必要的雜波就可以得到頻譜比較純凈的正弦波信號。由于受到字長的限制,相位累加器累加到一定值后,就會產(chǎn)生一次累加溢出,這樣波形存儲器的地址就會循環(huán)一次,輸出波形循環(huán)一周。相位累加器的溢出頻率即為合成信號的頻率。可見,頻率控制字K越大,相位累加器產(chǎn)生溢出的速度越快,輸出頻率也就越高。故改變頻率字(即相位增量),就可以改變相位累加器的溢出時間,在參考頻率不變的條件下就可以改變輸出信號的頻率。1.3.3DDS技術(shù)特點DDS系統(tǒng)的優(yōu)點有很多,它的很多特性是其他頻率合成技術(shù)所沒有的,其中最主要的特性有以下三點:(1)DDS技術(shù)可以用于產(chǎn)生任意波形基于前面對DDS系統(tǒng)的基本結(jié)構(gòu)分析,很容易理解,只要改變存儲在波形存儲器中的波形數(shù)據(jù),就可以改變輸出波形。所以對于任何周期性波形,只要滿足采樣定理,都可以利用DDS技術(shù)來實現(xiàn)。(2)DDS系統(tǒng)具有很高的頻率分辨率DDS系統(tǒng)輸出頻率的分辨率和頻點數(shù)隨相位累加器的位數(shù)成指數(shù)增長,由DDS系統(tǒng)的頻率分辨率可知,在系統(tǒng)時鐘頻率不變的情況下,只要增大相位累加器的位數(shù)N,就可以得到幾乎是任意小的頻率分辨率,可以滿足精細頻率控制的要求。DDS如此精細的頻率分辨率,使其輸出頻率已十分逼近連續(xù)變化。(3)輸出頻率切換速度快且相位保持連續(xù)與鎖相頻率合成相比,由于DDS系統(tǒng)是一個開環(huán)系統(tǒng),所以當一個新的頻率控制字送到時,它會迅速合成這個新的頻率,實際的頻率切換時間可以達nS級。同時,頻率切換時,DDS系統(tǒng)的輸出波形的相位是連續(xù)的。由于DDS采用數(shù)字化技術(shù),最終合成信號是經(jīng)過D/A轉(zhuǎn)換得到的,所以不可避免的存在著以下缺點:(1)DDS在工程中的最高輸出頻率一般只能達到系統(tǒng)時鐘頻率的40%,要想獲得較高的頻率,就必須提高系統(tǒng)時鐘頻率,也就是說DDS的相位累加器、波形存儲器和D/A轉(zhuǎn)換器都將工作在較高的時鐘頻率下,它的實現(xiàn)依賴于高速數(shù)字電路和高速D/A轉(zhuǎn)換器。這也是DDS系統(tǒng)在早期沒有受到重視,而直到最近幾年才迅速發(fā)展的原因。(2)DDS系統(tǒng)采用數(shù)字合成技術(shù),先離散信號再變換成模擬信號輸出,這其中導(dǎo)致了各種誤差,尤其是相位截斷誤差,因此各種雜波是不可避免的。2波形發(fā)生器整體設(shè)計本設(shè)計是用AT89C51[6]單片機控制,利用DDS芯片AD9850實現(xiàn)多種波形。其硬件部分包括鍵盤模塊、DDS電路、看門狗電路、LCD顯示電路,其整體系統(tǒng)框圖如圖4所示。其工作原理:單片機采用C51編程,首先要完成初始化工作,比如時鐘初始化,端口設(shè)置,看門狗設(shè)置,開機初始化等工作;然后通過單片機來控制AD9850產(chǎn)生波形,并通過判斷鍵盤的鍵值來決定產(chǎn)生哪種波形,該波形通過LCD顯示出來。其中,單片機用來實現(xiàn)對整個系統(tǒng)的控制。這里選用性價比高、低功耗、高性能的CMOS8位單片機AT89C51,它有4KB的可編程閃存以及可擦寫只讀存儲器。所要信號的頻率、相位的數(shù)據(jù)通過與單片機相連接的鍵盤(4×4)輸入,并通過點陣LCD顯示屏顯示系統(tǒng)各種參數(shù)。DDS芯片選用ADI公司生產(chǎn)的DDS芯片AD9850,單片機AT89C51與AD9850芯片的接口可采用并行接口方式,也可采用串行接口方式,這里考慮到單片機本身的硬件資源及接口時序,采用的是8位并行接口方式和單片機的系統(tǒng)總線相連,使系統(tǒng)的接口電路達到最簡化,也簡化了程序的設(shè)計方法,單片機只需以訪問外部存儲器的方式來訪問DDS芯片即可實現(xiàn)兩者的通信。圖4整體系統(tǒng)框圖3系統(tǒng)軟件設(shè)計應(yīng)用系統(tǒng)中,系統(tǒng)軟件的設(shè)計是建立在具體硬件電路基礎(chǔ)之上,根據(jù)系統(tǒng)功能要求可靠地實現(xiàn)系統(tǒng)的各種功能。系統(tǒng)軟件設(shè)計采用模塊化設(shè)計的方法,它是把一個功能完整的較大的程序分解為若干個功能相對獨立的較小的程序模塊,對各個程序模塊分別進行設(shè)計、編程和調(diào)試,最后把各個調(diào)試好的程序模塊合并成一個大的程序。模塊化程序設(shè)計的優(yōu)點:單個功能明確,設(shè)計和調(diào)試比較方便、容易,一個模塊可以為多個程序所共享。模塊化編程的具體體現(xiàn)是把各個功能相對獨立的模塊作為子函數(shù),主程序是一個不斷循環(huán)檢測結(jié)構(gòu)。當系統(tǒng)上電自檢、初始化后,進入信號輸出的循環(huán),并自動查詢面板按鍵的狀態(tài),以檢測用戶可能輸入的指令,確定程序?qū)⒁獔?zhí)行的功能。本章主要分模塊介紹其軟件設(shè)計,其軟件部分包括鍵盤模塊程序設(shè)計、DDS模塊程序設(shè)計、看門狗模塊程序設(shè)計和LCD顯示模塊程序設(shè)計。單片機采用C51編程,首先要完成初始化工作,比如時鐘初始化,端口設(shè)置,看門狗設(shè)置,開機初始化等工作,然后等待中斷,進入鍵盤掃描和各種按鍵的處理程序,判斷鍵盤是否有鍵按下,若有鍵按下,則傳送給AD9850,并通過LCD顯示器顯示出波形;若鍵盤無鍵按下,則重新掃描。LCD顯示出來的是正弦波,進行微分即可得出方波,進行積分即可得出三角波。軟件部分的總體流程圖如圖5所示。其中按鍵判斷采用LCD(液晶顯示器)顯示菜單操作,通過鍵盤完成幅度和頻率的步進調(diào)整。程序見附錄。圖5系統(tǒng)程序流程圖3.1鍵盤模塊軟件設(shè)計本系統(tǒng)的鍵盤采用4×4按鍵設(shè)計,這種鍵盤與獨立式按鍵鍵盤相比,要節(jié)省很多的I/O口線。鍵盤工作原理[7]:按鍵設(shè)置在行、列線交點上,行、列線分別連接到按鍵開關(guān)的兩端。平時無按鍵按下時,行線處于高電平狀態(tài),而當有按鍵按下時,行線電平狀態(tài)將由此與此行線相連的列線電平?jīng)Q定。列線電平如果為低,則行線電平為低;列線電平如果為高,則行線電平也為高。由于鍵盤掃描的速度很快,而人按鍵時總會持續(xù)一定的時間,因此只要單片機處在等待輸入的狀態(tài),這個鍵盤掃描程序基本上不會錯過任何一個按鍵信號。由于按鍵時會有抖動,抖動信號會造成鍵盤掃描時會出現(xiàn)一些錯誤的信號,因此需要一個消除抖動的程序。在第一次檢測到有鍵按下時,執(zhí)行一段延時10ms的子程序后再確認該鍵電平是否仍保持閉合狀態(tài)電平,若保持閉合狀態(tài)電平則確認為真正有鍵按下,從而消除抖動的影響。鍵盤掃描程序的流程圖如圖6所示。圖6鍵盤掃描程序流程圖上電初始化后開始執(zhí)行鍵盤掃描程序,判斷是否有按鍵按下,若沒有就返回到鍵盤掃描;若有則向下執(zhí)行。以延時來消除抖動后,繼續(xù)判斷有無鍵閉合,若無就返回到鍵盤掃描;若有則向下執(zhí)行,并確定按鍵位置,確定按鍵位置后,判斷閉合鍵是否釋放,若無釋放則返回繼續(xù)判斷;若有釋放則送入按鍵A。程序見附錄。鍵盤掃描子程序中完成如下功能[8]:(1)判斷鍵盤上有無鍵按下。其方法為PC口低4位輸出全0,讀P3口狀態(tài),若P3.0~P3.7為全1,則說明鍵盤無鍵按下;若不全為1,則說明鍵盤有鍵按下。(2)消除按鍵抖動的影響。其方法為,在判斷有鍵按下后,用軟件延時的方法延時10ms,再判斷鍵盤狀態(tài),如果仍為有鍵按下狀態(tài),則認為有一個確定的鍵按下,否則當作按鍵抖動處理。(3)求按鍵位置。根據(jù)掃描法,進行逐行置0掃描,最后確定按鍵位置。(4)鍵閉合一次僅進行一次按鍵的處理。方法是等待按鍵釋放之后,再進行按鍵功能的處理操作。3.2DDS控制模塊軟件設(shè)計DDS控制字傳送方式是信號發(fā)生器的關(guān)鍵部分,DDS以AD9850[9]芯片為核心,DDS初始化時,單片機首先檢測是否有其它波形鍵按下,如有則根據(jù)輸入按鍵改變波形;如果有數(shù)字鍵按下,并且按下確認鍵,則將按鍵值轉(zhuǎn)換為頻率控制字,送入DDS,輸出相應(yīng)的頻率和波形。3.2.1AD9850AD9850采用CMOS工藝,其功耗在3.3V供電時僅為155mW,擴展工業(yè)級溫度范圍為-40℃~80℃,采用28腳SSOP表面封裝形式。AD9850可編程DDS系統(tǒng)的核心是相位累加器,它由一個加法器和一個N位相位寄存器組成,N一般為24~32。每來一個外部參考時鐘,相位寄存器便以步長遞加。相位寄存器的輸出與相位控制字相加后可輸入到正弦查詢表地址上。正弦查詢表包含一個正弦波周期的數(shù)字幅度信息,每一個地址對應(yīng)正弦波中0°~360°范圍的一個相位點。查詢表把輸入地址的相位信息映射成正弦波幅度信號,然后驅(qū)動D/A轉(zhuǎn)換器以輸出模式量。其組成框圖如圖7所示。專用DDS芯片AD9850內(nèi)含可編程DDS系統(tǒng)和高速比較器,能實現(xiàn)全數(shù)字編程控制的頻率合成。通過其內(nèi)部可編程DDS系統(tǒng)可產(chǎn)生高頻率分辨率的(在125MHz時鐘下,其輸出頻率分辨率達0.0291Hz)正弦波,但考慮到高速參考時鐘可能產(chǎn)生相位誤差,采用了30MHz的晶振便可滿足優(yōu)于0.001的頻率穩(wěn)定度。為了輸出較純的正弦波信號,通過濾波電路對信號進行處理。圖7AD9850組成框圖3.2.2AD9850的控制字與控制時序AD9850的控制字有40位,其中32位是頻率控制位,5位是相位控制位,1位是電源休眠控制位,2位是工作方式選擇控制位。在應(yīng)用中,工作方式選擇位設(shè)為00,因為01,10,11已經(jīng)預(yù)留作為工廠測試用。相位控制位按增量180°,90°,45°,22.5°,11.25°或這些組合來調(diào)整。頻率控制位如(4)式所示:(4)其中:為輸出的頻率值;為參考時鐘頻率;K為相應(yīng)的十進制頻率控制字,然后轉(zhuǎn)換為十六進制即可。AD9850有并行和串行兩種控制命令字寫入方式[10]。其中在并行輸入方式中,通過8位總線D0…..D7將數(shù)據(jù)輸入到寄存器,在重復(fù)5次之后再在FQ_UD上升沿把40位數(shù)據(jù)從輸入寄存器裝入到頻率/相位數(shù)據(jù)寄存器(更新DDS輸出頻率和相位),同時把地址指針復(fù)位到第一個輸入寄存器。接著在W_CLK的上升沿裝入8位數(shù)據(jù),并把指針指向下一個輸入寄存器,連續(xù)5個W_CLK上升沿后,W_CLK邊沿就不再起作用,直到復(fù)位信號或FQ_UD上升沿把地址指針復(fù)位到第一個寄存器。在串行寫入方式,是采用D7作為數(shù)據(jù)輸入端,每次W_CLK的上升沿把一個數(shù)據(jù)串行移人到輸入寄存器,40位數(shù)據(jù)都移入后,F(xiàn)Q_UD上升沿完成輸出信號頻率和相位的更新。并行控制字的寫入時序如圖8所示。AD9850的復(fù)位(RESET)信號為高電平有效,且脈沖寬度不小于5個參考時鐘周期。AD9850的參考時鐘頻率一般遠高于單片機的時鐘頻率,因此AD9850的復(fù)位(RESET)端可與單片機的復(fù)位端直接相連。用于選擇工作方式的兩個控制位,無論并行還是串行最好都寫成00,并行時的10、01和串行時的10、01、11都是測試用的保留控制字,在一般使用時不能隨便進行設(shè)置,否則可能會導(dǎo)致不可預(yù)知的后果。圖8并行寫入時序圖3.2.3AD9850軟件設(shè)計進入DDS子程序后,首先根據(jù)式(3)單片機將預(yù)置頻率轉(zhuǎn)化為32位頻率控制字K。系統(tǒng)工作時,通過8位數(shù)據(jù)總線D0~D7在W_CLK上升沿把40位控制字Kx(x=0,1,2,3,4)送入AD9850的數(shù)據(jù)輸入寄存器,重復(fù)5次之后在FQ_UD的上升沿將這40位數(shù)據(jù)從輸入寄存器裝入到頻率\相位數(shù)據(jù)寄存器,更新AD9850輸出的頻率和相位。子程序流程圖如圖9所示。程序見附錄。圖9AD9850子程序流程圖3.3看門狗模塊軟件設(shè)計隨著AT89C51系列單片機的發(fā)展,其芯片價格在不斷下降,但同時也帶來了單片機芯片的抗干擾問題,當干擾信號進入系統(tǒng)時,常導(dǎo)致程序的跑飛,而程序跑飛的根本原因是由于程序計數(shù)器PC錯位引起的。在程序存儲器中,指令碼與存放指令碼的地址是一一對應(yīng)的,PC的內(nèi)容是要執(zhí)行的指令碼地址,若修改了PC的內(nèi)容,打破單片機的取指操作,導(dǎo)致程序的非正常運行,甚至出現(xiàn)致命的故障。因此為了克服這一問題,在系統(tǒng)中采用看門狗電路監(jiān)視程序的運行[11]。若程序跑飛,則看門狗電路產(chǎn)生復(fù)位信號,使單片機重新返回程序正常運行狀態(tài)。為此,本設(shè)計選用X5045芯片[12]大大簡化了硬件設(shè)計,提高了系統(tǒng)的可靠性,減少了對印制電路板的空間要求,降低了成本和系統(tǒng)功耗,是一種理想的單片機外圍芯片。3.3.1X5045X5045是一種集上電復(fù)位、看門狗、電壓監(jiān)控和串行EEPROM四種功能于一身的可編程控制電路,它有助于簡化應(yīng)用系統(tǒng)的設(shè)計,減少電路板的占用面積,提高可靠性。(1)上電復(fù)位X5045加電時會激活其內(nèi)部的上電復(fù)位電路,從而使RESET引腳有效。該信號可避免系統(tǒng)微處理器在電壓不足或振蕩器未穩(wěn)定的情況下工作。當VCC超過器件的Vtrip限值時,電路將在200ms(典型)延時后釋放RESET以允許系統(tǒng)開始工作。(2)低電壓檢測工作時,X5045對VCC電平進行監(jiān)測,若電源電壓跌落至預(yù)置的最小Vtrip以下時,系統(tǒng)即確認RESET,從而避免微處理器在電源失效或斷開的情況下工作。當RESET被確認后,該RESET信號將一直保持有效,直到電壓跌到低于1V而當VCC返回并超過Vtrip達200ms時,系統(tǒng)重新開始工作。3.3.2看門狗電路的軟件設(shè)計看門狗電路的軟件設(shè)計設(shè)計的是硬件看門狗的喂狗子程序,使主程序中在需要的地方調(diào)用,若程序出問題,不能及時喂狗,則看門狗會產(chǎn)生復(fù)位信號給單片機。X5045芯片內(nèi)包含有一個看門狗定時器,看門狗定時器的預(yù)置時間是通過X5045的狀態(tài)寄存器的相應(yīng)位來設(shè)定的。X5045狀態(tài)寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關(guān),其余位和EEPR0M的工作設(shè)置有關(guān)。微處理器可以通過指令來改變WD1和WD0這兩個位,從而改變看門狗定時時間的長短。WD1=0,WD0=0,預(yù)置時間為1.4S。WD1=0,WD0=1,預(yù)置時間為0.6S。WD1=l,WD0=0,預(yù)置時間為0.2S。WD1=l,WD0=1,禁止看門狗工作??撮T狗定時器監(jiān)測/CS引腳的輸入來判斷微處理器是否工作正常。在設(shè)定的定時時間以內(nèi),微處理器必須在/CS引腳上產(chǎn)生一個由高到低的電平的變化,以清內(nèi)部定時器,即“喂狗”,否則X5045將產(chǎn)生一個復(fù)位信號。喂狗的流程圖如圖10所示。圖10看門狗子程序流程圖當由于某種原因系統(tǒng)出現(xiàn)程序跑飛或死循環(huán)時,CPU就執(zhí)行不到喂狗程序,因得不到喂狗信號,看門狗電路就會判斷系統(tǒng)運行出現(xiàn)故障,并發(fā)出復(fù)位信號。看門狗電路的定時時間長短可由具體應(yīng)用程序的循環(huán)周期決定,通常比系統(tǒng)正常工作時最大循環(huán)周期的時間略長即可。編程時,可在軟件的合適地方加一條喂狗指令,使看門狗的定時時間永遠達不到預(yù)置時間,系統(tǒng)就不會復(fù)位而正常工作。當系統(tǒng)跑飛,用軟件陷阱等別的方法無法捕捉回程序時,則看門狗定時時間很快增長到預(yù)置時間,迫使系統(tǒng)復(fù)位。程序見附錄。3.4LCD顯示模塊設(shè)計本設(shè)計的液晶屏采用ZY12864D[13]。如圖11是ZY12864D的結(jié)構(gòu)框圖。IC1為行驅(qū)動器,IC2、IC3為列驅(qū)動器,外部的CPU通過13根線對模塊進行控制。ZY12864D有D0—D78位雙向數(shù)據(jù)線;RS位寄存器選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器;R\W位讀寫信號線,高電平進行讀操作,低電平進行寫操作;E端為使能端,當E端由高電平跳變成低電平時,液晶執(zhí)行命令;CSA和CSB為選屏信號,CSA高電平選中左半屏,CSB高電平選中右半屏。CSA是通過CSB接的反相器得到的,所以CSA和CSB不能同時為高電平。模塊及背光電源均由外部提供+5V電源。通過調(diào)節(jié)外接的電位器的阻值,用戶可以控制LCD模塊顯示圖形的清晰度。圖11LCDZY12864D的結(jié)構(gòu)框圖12864D液晶模塊內(nèi)部的控制器共有7條控制指令[14],如表1所示。它的讀寫操作、屏幕和光標的操作都是通過指令編程實現(xiàn)。表112864液晶模塊內(nèi)部的控制命令指令1:顯示開關(guān)控制,D高電平開顯示,低電平關(guān)顯示。指令2:設(shè)置顯示起始行。指令3:設(shè)置X地址(頁地址)。指令4:設(shè)置Y地址(列地址)。指令5:讀狀態(tài)。BF:忙標志,高電平表示忙,此時模塊不能接受命令或數(shù)據(jù),低電平表示空閑;RST:復(fù)位標志位,高電平表示正處于復(fù)位初始化狀態(tài),低電平表示正常狀態(tài);ON\OFF:顯示標志位,高電平表示顯示關(guān)閉,低電平表示顯示開。指令6:寫顯示數(shù)據(jù)。寫指令執(zhí)行后Y地址計數(shù)器自動加1。指令7:讀顯示數(shù)據(jù)。寫指令執(zhí)行后Y地址計數(shù)器自動加1。LCD顯示模塊程序流程圖如12所示。程序見附錄。圖12LCD顯示程序模塊流程圖4系統(tǒng)調(diào)試與仿真在系統(tǒng)調(diào)試完成以后,根據(jù)設(shè)計指標對系統(tǒng)的性能進行了測試。本設(shè)計主要對正弦波進行了仿真。在Proteus中畫好仿真電路圖后,即完成硬件部分工件[17]。然后,進入KeilμVision2開發(fā)集成環(huán)境[18],創(chuàng)建一個新項目(Project),并為該項目選定合適的單片機CPU器件,編寫好程序后,編譯并生成以HEX為擴展名的文件。在Proteus的編輯狀態(tài),點擊單片機芯片,在出現(xiàn)的單片機屬性設(shè)置窗口中,選擇ProgramFile欄目,選擇編譯軟件對程序編譯后產(chǎn)生的“.HEX”結(jié)尾的目標文件,就可以將目標文件寫入Proteus中的單片機芯片中,點擊運行即可實現(xiàn)單片機仿真,軟件和硬件的結(jié)合,就是一個完整的單片機應(yīng)用系統(tǒng),能夠運行單片機仿真,觀察實踐效果。單擊仿真運行開始按鈕,能清楚地觀察到虛擬終端的變化。在仿真運行開始后,若虛擬終端沒有顯示,可單擊Proteus的調(diào)試(debug)菜單,然后單擊virtualterminal-VT1。觀察仿真波形。仿真波形如圖13所示。圖13模擬仿真波形圖本設(shè)計中對所設(shè)計的電路進行了仿真,由于所用軟件Proteus中沒有AD9850元件,所以只能對設(shè)計進行模擬仿真,所獲得的波形是模擬真實的波形,但不是實際電路所產(chǎn)生的波形。由于時間有限只對正弦波進行了模擬仿真。結(jié)束語本設(shè)計以51單片機和DDS芯片AD9850為核心設(shè)計了基于DDS的波形發(fā)生器。經(jīng)過近期不斷的學(xué)習(xí)以及與伙伴的精心合作,并在老師的指導(dǎo)下,已經(jīng)基本完成了設(shè)計任務(wù),主要完成了以下工作:(1)深入學(xué)習(xí)了DDS的基本結(jié)構(gòu)、工作原理。DDS電路是一個開環(huán)電路,其電路結(jié)構(gòu)簡單,具有很高的頻率分辨率,輸出頻率切換速度快并且相位保持連續(xù)。一般由參考時鐘、相位累加器、波形存儲器、D/A轉(zhuǎn)換器(DAC)和低通濾波器(LPF)組成。(2)掌握了基于DDS技術(shù)的波形發(fā)生器的硬件設(shè)計。了解了AD9850芯片的基本組成、芯片性能及管腳功能。掌握了AD9850的控制字與控制時序。單片機和AD9850采用并行接口方式完成了設(shè)計。(3)進一步掌握了4×4鍵盤的工作原理和掃描方法,設(shè)計了鍵盤掃描程序的流程圖,通過兩次判斷是否有鍵按下來確定按鍵位置,并編寫了鍵盤掃描程序。利用鍵盤來控制波形的頻率和幅度,完成了鍵盤模塊軟件設(shè)計。(4)本設(shè)計采用DDS芯片AD9850,設(shè)計了總系統(tǒng)軟件流程圖。單片機通過檢測是否有數(shù)字鍵按下,如果有則根據(jù)輸入按鍵改變波形,并且按下確認鍵,則將預(yù)置頻率轉(zhuǎn)化為頻率控制字,并把頻率控制字送入AD9850的數(shù)據(jù)輸入寄存器,完成了DDS模塊軟件設(shè)計。(5)本設(shè)計采用了X5045芯片,并設(shè)計出了看門狗子程序流程圖,解決了單片機工作時,系統(tǒng)程序跑飛問題。(6)在以上設(shè)計基礎(chǔ)上,完成了基于DDS技術(shù)的波形發(fā)生器的整體設(shè)計,并在Keil軟件中進行了編譯,并驗證了其正確性。(7)將軟硬件相結(jié)合,完成了電路的仿真與調(diào)試,在Proteus中仿真出了模擬波形。在本次的設(shè)計過程中,學(xué)習(xí)和參閱國內(nèi)外相關(guān)的文獻,并從網(wǎng)絡(luò)上獲取最新的軟件開發(fā)指南和芯片開發(fā)手冊,同時不斷向身邊的老師請教和學(xué)習(xí),通過系統(tǒng)的學(xué)習(xí)和實際工作的鍛煉,積累了必要的基礎(chǔ)知識,培養(yǎng)了實際的開發(fā)技能。通過本次設(shè)計,基本掌握了DDS技術(shù),單片機系統(tǒng)的設(shè)計,芯片AD9850和X5045的基本原理及工作過程,掌握了行列式鍵盤的工作原理,以及LCD顯示的原理及顯示方式,進一步加深了對單片機技術(shù)的理解,提高了自己的硬件設(shè)計能力。由于時間和經(jīng)驗的限制,本文設(shè)計的波形發(fā)生器還是存有不足之處。本設(shè)計仿真結(jié)果只能輸出模擬波形,顯示屏上不能顯示其頻率,頻率和幅度只能通過鍵盤來控制。但是,它采用DDS技術(shù)來實現(xiàn)波形發(fā)生器的設(shè)計思想是完全可行的,所采用的核心技術(shù)與國外產(chǎn)品相同,如果能在此基礎(chǔ)上經(jīng)過進一步完善,可以成為一個很好的產(chǎn)品。參考文獻[1]張永瑞,劉振起.電子測量技術(shù)基礎(chǔ).西安:西安電子科技大學(xué)出版社.2004.[2]張學(xué)峰,胡長江.功能各異的各種波形發(fā)生器.國外電子測量技術(shù).2000.4.17-18.[3]毛敏.基于DDS的高精度方波信號發(fā)生器的研究.西安電子科技大學(xué)工程碩士論文.[4]JosephTierney,CharlesM.Rader,Bernard.Gold.ADigitalFrequencySynthesizer.IEEETranscationsOnAudioandElectroacoustics.Vol.Au-19,No.1.March1971.[5]DonaldC.Larson.HighSpeedDigitalSynthesisTechniquesandApplication.IEEE.1998.209-212[6]錢逸秋.單片機原理與應(yīng)用.北京:電子工業(yè)出版社.2002.[7]李朝青.單片機原理及接口技術(shù)(第3版).北京:北京航空航天大學(xué)出版社.2005.[8]王福瑞.單片微機測控系統(tǒng)設(shè)計大全.北京:北京航空航天大學(xué)出版社.1999.7.[9]李柯.一種高性能的DDS芯片AD9850.DDS技術(shù)與應(yīng)用研討會論文集.1997.12.[10]石雄.125MHZ時鐘DDS頻率合成器AD9850的原理與應(yīng)用.力源電子工程.2000.114.[11]王福瑞.單片微機測控系統(tǒng)設(shè)計大全[M],北京航空航天大學(xué)出版社.1998.4.[12]何立明.單片機應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社.2000.[13]王忠誠.電子電路元器件入門教程.北京:電子工業(yè)出版社.2006.5.[14]王鎖萍.電子設(shè)計自動化教程.電子科技大學(xué)出版社.2000.[15]何立民.單片機應(yīng)用文集.北京航空航天大學(xué)出版社.1994.6.[16]肖洪兵等.跟我學(xué)單片機.北京:機械工業(yè)出版社.1997.9.[17]李平編.電子設(shè)計自動化快速入門教程.高等教育出版社.2005.[18]劉義濤.protelDXP設(shè)計及應(yīng)用教程.北京:清華大學(xué)出版社.2000.6.[19]王忠誠.電子電路用元器件入門教程.北京:電子工業(yè)出版社.2006.5.附錄(1)AD9850初始化程序//頭文件#include"c8051f040.h"#include"intrins.h"http://宏定義#define AD9850_BUS P5//子函數(shù)的聲明voidsysclk_init(void);voidport_init(void);voidAD9850_Write(longfreq);voidAD9850_Send(longfreq);voiddelayms(unsignedinttime);// voiddelayus(unsignedinttime);//全局變量的定義sbitAD9850_WCLK=P6^0;sbitAD9850_FQUD=P6^1;sbitAD9850_RST=P6^2;/************主函數(shù)*********/voidmain(void){ WDTCN=0xDE; WDTCN=0xAD; sysclk_init(); port_init(); AD9850_Send(100); while(1) { }}/**********子函數(shù)的定義*************///系統(tǒng)時鐘定義函數(shù)//內(nèi)部時鐘//系統(tǒng)時鐘為24.5MHZvoidsysclk_init(void){ SFRPAGE=CONFIG_PAGE; CLKSEL=0x00; OSCXCN=0x00; OSCICN=0x83;}//IO初始化函數(shù)//P5->漏極開路輸出//p6->推挽輸出voidport_init(void){ SFRPAGE=CONFIG_PAGE; XBR2=0x40; P5MDOUT=0x00; P6MDOUT=0x0f;}//延時NmS子函數(shù)/*voiddelayus(unsignedinttime){ while(time--) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); }} voiddelayms(unsignedinttime){ unsignedintj; for(;time>0;time--) for(j=3060;j>0;j--);}//向AD9850發(fā)送數(shù)據(jù)函數(shù)//WCLK->P6^0;//FQ_UD->P6^1;//longfreq :為要設(shè)置的頻率voidAD9850_Write(longfreq){ longdat; unsignedcharw0,w1,w2,w3,w4,i; unsignedcharctrl_word[5]; SFRPAGE=CONFIG_PAGE; AD9850_FQUD=0; dat=(long)(freq*34.36); w0=0x40; //相位偏移90度 w4=dat&0x000000ff; w3=(dat>>8)&0x000000ff;w2=(dat>>16)&0x000000ff; w1=(dat>>24)&0x000000ff; ctrl_word[0]=w0; ctrl_word[1]=w1; ctrl_word[2]=w2; ctrl_word[3]=w3; ctrl_word[4]=w4; AD9850_WCLK=0; AD9850_FQUD=0; //SubsequentW_CLKrisingedgesloadthe8-bitdataonwords[7:0]//andmovethepointertothenextregister. AD9850_RST=0; for(i=0;i<5;i++) { AD9850_WCLK=0; AD9850_WCLK=0; AD9850_WCLK=0;// AD9850_BUS=ctrl_word[i]; AD9850_BUS=ctrl_word[i]; AD9850_BUS=ctrl_word[i];// delayus(5); AD9850_WCLK=1; AD9850_WCLK=1; AD9850_WCLK=1;// delayus(5); } //TherisingedgeofFQ_UDloadsthe(upto)40-bitcontroldata-wordintothedevice //andresetstheaddresspointertothefirstregister. AD9850_RST=1; AD9850_FQUD=1; delayms(1); AD9850_FQUD=0;}(2)看門狗程序在C語言中要增加一個聲明語句。在AT89C51.h聲明文件中增加一行sfrWDTRST=0xA6;Main(){

WDTRST=0x1E;

WDTRST=0xE1;

//初始化看門狗。

While(1)

{

WDTRST=0x1E;

WDTRST=0xE1;

//喂狗指令

}}(3)LCD初始化程序#

溫馨提示

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

評論

0/150

提交評論