




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、可編程波形發生器設計與制作院 別:信息科學與工程學院 專業班:通信工程0901班 姓 名:學 號:指導老師:2013年5月可編程波形發生器設計與制作the design and production ofprogramable waveform generator摘要木系統是基于ad9833芯片的可編程波形發生器。采用ad9833芯片作為波形 產生的核心,外圍采用控制電路(at89s52)、按鍵和液晶顯示器等。通過按鍵控 制可產生方波、三角波、正弦波等,同吋液晶顯示器指示其對應的頻率。其設計簡 單、性能優好,可用于多種需要波形發生器的場所,具有一定的實用性。各種各樣的信號是通信領域的重要組成部
2、分,其中正弦波、三角波和方波等是 較為常見的信號。在科學研究及教學實驗屮常常需要這幾種信號的發生裝置。為了 實驗、研究方便,研制一種靈活適用、功能齊全、使用方便的波形發生器是十分必 要的。木文介紹的是利用ad9833芯片和at89s52單片機產生所需不同信號的屮高頻 信號源,其信號頻率是可以按要求控制的。文屮簡要介紹了 ad9833芯片的結構原 理和使用方法,at89s52的基礎理論,以及液晶顯示器的工作原理。文中著重介紹 了如何利用爭片機控制ad9833芯片產生上述信號的硬件電路和軟件編程。木次關于產生不同信號的屮高頻的波形發生器設計方案,不僅在理論和實踐上 都能滿足實驗的要求,而h.異有很
3、強的可行性。該波形發生器的特點是:體積小、 價格低廉、性能穩定、實現方便、功能齊全。關鍵詞:ad9833 at89s52液晶顯示器按鍵abstractthis system is based on the programmable waveform generator of the ad9833 chip.using the ad9833 chip as the core of waveform generatorjts peripheral circuit contain control circuit (at89s52),buttons and lcd display etc. it ca
4、n produce square wave,triangle wave,sine wave and so on,through the button control.,at the same time lcd display indicates the corresponding frequency. its design is simple,performance is good, which can be used for a variety of needs of waveform generator and has a certain practicality.all kinds of
5、 signals is an important part in the field of communication,especially sine wave,triangular wave and square wave signals are more common. the scientific research and teaching experiments often need the several kinds of signal generator. for the convenience of experiment and research,developping one
6、kind of waveform generator which includes flexible application,complete functions,convenient use is very necessary.this article describes the use of the ad9833 chips and at89s52 microcontroller to generate the signal source of required different frequent signals ,the signal frequency can be controll
7、ed according to the requirements. it introduces the structure principle and using method of ad9833 chip,the based theory of at89s52 based th,and the working principle of lcd.the waveform generator design on generating signals of different frequencies,not only in theory and practice can meet the requ
8、irements of the experiment,but also has a strong feasibility. the waveform generator features are: small size,low price,stable performance, convenient,full-featured.key words: ad9833at89s52lcd buttons摘iabstractii餓11系統總體設計21.1設計方案比較與選定21.1.1 設計方案一21.1.2設計方案二31.1.3設計方案三31.1.4設計方案的選定31.2系統總體框閣設計42系統硬件設
9、計52.1元器件的選擇52.2系統硬件總體設計82.3 各模塊電路說明92.3.1波形的產生及處理部分電路92.3.2人機交互電路112.3.3 液晶顯示電路123系統軟件設計143.1總體方案143.2程序流程圖153.3主要程序說明153.3.1 主程序153.3.2 初始化程序163.3.3 液晶顯示程序173.3.4按鍵程序193.3.5ad9833 程序214制作與調試24in4.1 硬件電路制作244.1.1 總體特點244.1.2 焊接244.2 w式254.2.1 液晶顯小調試254.2.2 ad9833波形輸出調試26鎌29刪3031緒論波形發生器是一種常用的信號源,廣泛應用
10、于電子電路、自動控制和科學試驗 領域。它是一種為電子測量和計算工作提供符合嚴格技術要求的電信號設備。傳統 信號發生器一般用以下三種方法設計:用分立元件組成的函數發生器;巾品體管、 運放1c等通用器件制作,更多的則是用專門的函數信號發生器1c產生;利用單片 集成芯片的函數發生器。19世紀70年代,有的科學家提出利用寅接數字頻率合成技術(dds)制作信號 發生器。限于當吋的技術和器件水平,它的性能指標尚不能與已冇技術相比,故未 受到重視。近年來隨著數字集成電路和微電+技術的進步,這種結構獨特的頻率合 成技術得到了充分的發展。該技術在相對帶寬、頻率轉換時間、相位連續性、正交 輸出、高分辨力以及集成化
11、等一系列性能指標已遠遠超過了傳統的頻率合成技術所 能達到的水平。木次畢業設計的波形發生器基于dds數字頻率合成技術,相比丁傳統的設計方 法,它冇諸多優勢。基于dds技術的信號發生器即利用頻率合成技術制成的信號發 生器,也稱為合成信號發生器,具有輸出頻率穩定、準確,波形質量好和輸出頻率 范圍寬等一系列獨特的優點,里然它也有一些缺點,比如丄作頻帶受限,相位噪聲, 雜散抑制差,但是相比于傳統波形發生器頻率不高,工作不穩定,調節方式不夠靈 活,已經具有很大的進步。該波形發生器必需達到的技術指標:能產生正弦波、三角波和方波信號,并通 過按鍵切換波形類型;通過按鍵吋以以一定的步進改變頻率;輸出波所能達到頻
12、率 范圍為010mhz。通過初步的研究與思考,該波形發生器的難點在于:硬件的具體工作原理,特 別是dds的基本原理以及所選芯片的內部的結構與引腳的功能;軟件與硬件到底是 怎樣進行結合的,基于dds技術所選的芯片與寫程序所選芯片的數據位是否相容; 軟件的設計,因為必須利用程序對頻率以及頻率的步進值進行設置。1系統總體設計1.1設計方案比較與選定依據應用場合.需要實現的波形種類,波形發生器的具體指標要求會有所不同。 依據不同的設計要求選取不同的設計方案。通常,波形發生器需要實現的波形有正 弦波、方波、三角波和鋸齒波。有些場合可能還需要任意波形的產生。各種波形共 有的指標有:波形的頻率、幅度要求,頻
13、率穩定度,準確度等。對于不同波形,貝- 體的指標要求也會有所差異,例如,占空比是脈沖波形特有的指標。波形發生器的 設計方案多種多樣,大致可以分為三大類:純硬件設計法、純軟件設計法和軟硬件 結合設計法。1.1.1設計方案一波形發生器設計的純硬件法早期,波形發生器的設計主要是采用運算放大器加 分立元件來實現1。實現的波形比較單一,主要為止弦波、方波和三角波。工作原理 嗍也相對簡單:首先是產生正弦波,然后通過波形變換(正弦波通過比較器產生方波, 方波經過積分器變為三角波)實現方波和三角波。在各種波形后加上一級放大電路, 可以使輸出波形的幅度達到要求,通過開關電路實現不同輸出波形的切換,改變電 路的具
14、體參數可以實現頻率、幅度和占空比的改變。通過對電路結構的優化及所用 元器件的嚴格選取可以提高電路的頻率穂定性和準確度。純硬件法屮,正弦波的設 計是基礎,實現方法也比較多,電路形式一般有lc、rc和石英品體振蕩器三類。 lc振蕩器適宜于產生幾hz至幾百mhz的高頻信號;石英晶體振蕩器能產生幾百 khz至幾十mhz的高頻信號且穩定度高;對于頻率低于幾mhz,特別是在幾百hz 時,常釆用rc振蕩電路。rc振蕩電路乂分為文氏橋振蕩電路、雙t網絡式和移相 式振蕩電路等類型。其屮,以文氏橋振蕩電路最為常用2'11。前,實現波形發生器 最簡單的方法是釆用爭片集成的函數信號發生器。它是將產生各種波形的
15、功能電路 集成優化到一個集成電路芯片里,外加少量的電阻、電容元件來實現。采用這種方 法的突出優勢是電路簡單,實現方便,精度高,性能優越;缺點是功能較全的集成 芯片價格較貴。實際屮應用較多的單片函數信號發生器有max038(最高頻率可達 40mhz)和 icl8038(最高頻率為 300khz)。1.1.2設計方案二波形發生器設計的純軟件法波形發生器的設計還可以采用純軟件的方法來實 現。虛擬儀器鞠使傳統儀器發生了革命性的變化,是21世紀測試儀器領域技術發展 的重要方向。它以計算機為基礎,軟件為核心,沒有傳統儀器那樣具體的物理結構.在 計算機上實現儀器的虛擬面板,通過軟件設計實現和改變儀器的功能。
16、例如用圖形 化編程工具labview來實現任意波形發生器的功能:在labview軟件的前面板通 過拖放控件,設計儀器的功能面板(如波形顯示窗u,波形選擇按鍵,波形存儲回放 等工作界面),介:軟件的后面板直接拖放相應的波形函數并進行參數設置或直接凋用 編程函數來設計任意波形以實現波形產生功能;完成的軟件打包后,可脫離編程環 境獨立運行。實現任意波形發生器的功能。采用純軟件的虛擬儀器設計思路可以使 設計簡單、高效,僅改變軟件程序就可以輕松實現波形功能的改變或升級。從長遠 角度來看,純軟件法成木較低。軟件法的缺點是波形的響應速度和精度遜色于硬件 法。1.1.3設計方案三軟硬件結合法軟硬件結合的波形發
17、生器設計方法同吋兼具軟硬件設計的優2:既 具有純硬件設計的快速、高性能,同時乂異有軟件控制的靈活性、智能性。如以單 片機和申片集成函數發生器為核心。輔以鍵盤控制、液晶顯示等電路,設計出智能 型函數波形發生器,采用軟硬件結合的方法可以實現功能較全、性能更優的波形發 生器,同時還可以擴展波形發生器的功能,比如通過軟件編程控制實現波形的存儲、 運算、打印等功能,采用usb接u設計。使波形發生器具有遠程通信功能等。口前, 實驗、科研和工業生產屮使用的信號源大多采用此方法來實現。1.1.4設計方案的選定純硬件設計法功能較單一,波形改變w難、控制的靈活性不夠,不具備智能性, 其屮由運算放大器加分立元件組成
18、的波形發生器,除在學生實驗訓練屮使用外。基 木不被采用。純軟件設計法實現簡單,程序改變及功能升級靈活,但實現的波形精 度及響應速度不如硬件法高。純軟件法主要適用于對波形精度、響應速度要求不是 很高的場合。相比之下,軟硬件結合的方法可以設計出性能最優、功能擴展靈活、 控制智能化的新一代的波形發生器,可以滿足教學、科研、工業生產等各方面對波形發生器性能有較高要求的應用場合。綜合以上兒種設計方案,木設計采用方案三的方法一軟硬件設計法。其方案能夠產生很好的波形,也易實現。1.2系統總體框圖設計木波形發生器的設計頻率控制模塊及dds處理模塊為核心,配合相應的顯示模 塊及人機接u模塊使其組成一個可編程波形
19、發生器系統。系統的總體框圖如圖1-1 所示。圖1-1系統總體框圖頻率控制模塊主要功能是通過程序對波形發生器的頻率進行控制;dds處理模 塊主要對產生的信號波形進行采樣和暈化處理,使輸出的波形更加平整,不失真; 人機接口模塊負責改變波形的輸出方式,而11對以設置波形的頻率和頻率變化的步 進;顯示模塊的功能是顯示波形的頻率以及類型。2系統硬件設計2.1元器件的選擇因為木系統的設計是以dds處理模塊以及幅度、頻率控制模塊為核心,故而首 先選擇這w個模塊的元器件,dds處理模塊的主要功能是完成波形的相位、頻率和 振幅的數字調制,木次設計dds處理模塊選用ad9833芯片,外加必要的外闈輔助 電路。ad
20、9833是一款采用dds技術、低功耗、可編程波形發生器23,器件采msop 封裝,非常小巧,外岡電路簡單,僅需要1個外部參考吋鐘、一個低精度電阻器和 一個解耦電容器,通過spi接口和單片機相連,編程可生成正弦波、三角波、方波。 輸出頻率可通過軟件編程,易于調節。ad9833的主頻時鐘為25mhz時,精度為 0.1hz,主頻時鐘為1mhz時,精度可以達到0.004hz。ad9833的引腳圖如圖2-1所 示,comp1豢10voutvdd|tad9833iagndcap/2.5v3top view8fsyncdgnd4(not to scale)7sclkmclk上6sdata圖2-1ad9833
21、的引腳圖ad9833內部電路主要有數控振蕩器(nco)、頻率和相位調節器、正弦只讀存儲 器(sinerom)、數模轉換器(dac)、電壓調整器。其核心是28位的相位累加器,它由 加法器和相位寄存器組成,每來1個時鐘,相位寄存器以步長增加相位寄存器的輸 出與相位控制字相加后輸人到正弦查詢表地址屮。正弦查詢表包含1個周期正弦波 的數字幅度信息,每個地址對應正弦波屮0。-360°。范圍內的1個相位點。查詢表把 輸人的地址相位倍息映射成正弦波幅度的數字量倍號,驅動dac輸出模擬量。相位 寄存器每經過2腳m個mclk吋鐘后回到初始狀態,相應的正弦查詢表經過一個 循環回到初始位置,這樣就輸出了一
22、個正弦波。其引腳功能如下表引腳號符號功能說明1compdac偏移引腳,該腳用來為dac偏移解耦2vdd電源電壓3cap/2.5v數字電路電源端4dgnd數字地5mclk主頻數字時鐘輸入端6sdata串行數字輸入7sclk串行時鐘輸入8fsync控制輸入,低電平宥效9agnd模擬地10vout輸入頻率(fout)表2-1 ad9833的引腳功能輸出正弦波頻率為:four = mfmclk2(2-1)其中,m為頻率控制字,由外部編程給定,其范圍為0-228。vdd引腳為ad9833 的模擬部分和數字部分供電,供電電壓為2.3v 5.5v。ad9833內部數字電路工作 電壓為2.5v。ad9833還
23、具冇休眠功能,就是沒被使用的部分休眠,減少該部分的 電流損耗,例如:若利用ad9833輸出作為時鐘源,就可以讓dac休眠,以減少功 耗。ad9833有3根串行接口線,與spi、qspk microwire和dsp接口標準兼 容,在串口時鐘sclk的作用下,數據是以16位的方式加載到設備上,fsync引 腳是使能引腳,電平觸發方式,低電平宥效。進行串行數裾傳輸時,fsync引腳必 須置低,耍注意fsync有效到sclk k降沿的建立吋的最小值4,5。fsync置 低后,在16個sclk的t降沿數據被送到ad9833的輸入移位寄存器,在第16個 sclk的卜*降沿fsync可以被置高,但耍注意在s
24、clk不降沿到fsync上升沿的 數據保持吋間ts的最小和最大值。當然,也可以在fsync為低電平的吋候,連續加 載多個16位數據,僅在最后一個數據的第16個sclk的下降沿的時將fsync置高, 最后耍注意的是,寫數據時sclk時鐘為高低電平脈沖,但是,在fsync剛開始變為低時,(即將開始寫數據時),sclk必須為高電平(注意h這個參數)。如圖 2-2和圖2-3分別是ad9833的主時鐘吋序和串行吋序6。mclk圖2-2主時鐘時序當ad9833初始化時,為了避免dac產生虛假輸岀,reset必須置為1(reset 不會復位頻率、相位和控制寄存器),直到配置完畢,需要輸出時j將reset置為
25、 0; reset為0后的8 9個mclk時鐘周期可在dac的輸出端觀察到波形。ad9833 寫入數據到輸出端得到響應,中問有一定的響應時問,每次給頻率或和位寄存器加 載新的數據,都會有7 8個mclk時鐘周期的延時之后,輸出端的波形方會產生 改變,有1個mclk時鐘周期的不確定性,因為數據加載到目的寄存器時,mclk 的上升沿位置不確定。ad9833內部有5個可編程寄存器,其屮包拈3個16位控制寄存器,2個28 位頻率寄存器和2個12位和位寄存器。其中16位控制寄存器供用戶設置所需的功 能。除模式選擇位外,其他所有控制位均在內部時鐘mclk的下沿被ad9833讀取 并動作,要更改ad9833
26、控制寄存器的內容,d15和d14位必須均為0。ad9833包 含2個頻率寄存器和2個和位寄存器,其模擬輸出為:(2-2)freqeg 2其中:freqeg為所選頻率寄存器中的頻率字。該信號會被移相:2 . pi-phaserec(2-3)4096其屮,phaserec為所選相位寄存器屮的相位字。ad9833可運作的主時鐘頻率高達25mhz。一般25 mhz的振蕩器包含外部電路中,但是這振蕩器也討以刪除,如有需要討以連接到外部cmos時鐘上11。頻率、幅度控制模塊可以用fpga/cpld或單片機進行設計,由于對fpga/cpld語言的接觸較少、不熟悉,故而該模塊選用單片機以及必要的外圍電路進行控
27、制。 單片機選擇at89s52系列,w為其涵蓋了 at89c51系列的人部分優點并且燒錄程 序速度快,性能穩定,耐壓值比較高等。至于顯示模塊用1602液晶顯示器,可以明顯的觀察到頻率的步進變化以及所選 擇的波形類型,人際接門模塊主要是按鍵,控制波形的輸出類型以及頻率。2.2系統硬件總體設計根據元器件的特性及外圍必耍輔助電路,其硬件總體設計如下asp vccnu2一678910ispc0227pejzumiizn27pf16vcc k"02一" i一二 _.ous'iov ,0ku0i4=1-ikhled-p10/tpoo -p11/tp0i卜p12p02卜p13p0
28、3 k4 p14p04 kpi5p05 k16p06卜- p17p07 -lvt1p20 -醐p21 kp22卜jtip23卜p24卜p25卜j ea/vpp26卜p27卜心xi-x2-resetrxd-txdj-j rdme?卜wrpsen131215j£vcc t 3119187?rlis523938373635343332212223242526272810ii3029jvccu02-sdamclk sclkgkd-ddsencap-gndvcc-outcomp p3.0 6p3.1_p3.2 891soufad9833三 1602液晶vcchpll lcd rs 4 pl;
29、lcd rw5 pel lcd e£10ii121314vcchhfi6pincz34|1.|3p2c04i+5v!s crystal-5v+ eo2 : -10uf/i6v+ ec01 iouf/16v:c05 0.1 ufkoik02p3.3圖2-4硬件總體設計圖2.3各模塊的電路說明2.3.1波形的產生及處理部分電路波形的產生與控制部分由dds芯片ad9833和單片機at89s52組成,用戶通過 鍵盤輸入的信號耍求被at89s52接收,并經其處理后將計算出的控制字傳送給 ad9833,由ad9833產生頻率幅度可控的信號。ad9833系統模塊是整個系統的功 能核心部分,由此模塊
30、可產生所需要的信號了產生所需信號,必須對其進行適當的 設置。具體外圍設備如下圖示。p3j0 6p3.17p32 _8_9il10sj3ut波瘡輸出u02sdasclkddsengndoutad9333qa>ff i寸4i.321iic04_:mclkgndcapvcccomp5cn|+w eo.lufs crystal+5v,ec0210uf/16vc05o.luf:c01 10uf/16v圖2-5 ad9833波形處理電路ad9833外鬧需要一個參考吋鐘,即在mclk處接入一個晶振。岡為當ad9833 的主頻吋鐘為25mhz吋,精度為0.1hz,主頻吋鐘為1 mhz吋,精度可以達到0.
31、004hz, 而木次設計中對精度要求不高,為了提高ad9833的操作速度,此處選擇了 25mhz 的有源晶振。有源晶振有4只引腳,是一個完整的振蕩器,里面除y石英晶體外, 還有晶體管和阻容元件6。有源晶振不需要dsp的內部振蕩器,信號質量好,比較 穩定,而且連接方式相對簡單(主要是做好電源濾波,通常使用一個電容和電感構 成的h型濾波網絡,輸出端用一個小阻值的電阻過濾信號即可),不需要復雜的配 置電路。把有源晶振有個點標記的記為1腳,按逆吋針(管腳向下)分別為2、3、4, 它的通常的接法為一腳懸空,二腳接地,三腳接輸!li,四腳接電壓。ad9833有3根串行接口線,分別是fsync、sclk和s
32、data,與spl qspi、microwire和dsp接口標準兼容,在串口吋釗1 sclk的作用下,數據是 以16位的方式加載到設備上,fsync引腳是使能引腳,電平觸發方式,低電平有 效。進行串行數據傳輸吋,fsync引腳置低,在16個sclk的下降沿數據通過 sdata引腳被送到ad9833的輸入移位寄存器。因此,此處我們通過3個100£1的電阻進行限流,并將這3個引腳接到單片機at89s52的p3.2、p3.1和p3.0腳,通過 爭片機來控制ad9833。ad9833的其他引腳用y諸多電容,主要是為y去藕和濾波, 起到穩定輸入電壓和輸出波形的作用。至于單片機與ad9833連接
33、是,p3.2與ad9833的fsync相連、p3.1與ad9833 的sclk相連,p3.0與ad9833的sdata相連,單片機與ad9833的連接如下:r0214rl1p10/tpoop11/tp01p12p02p13p03p14p04p15p05p16p06p17p07int1p20intop21p22t1p23top24p25eaa?pp26p27xix2rketr3o>rdale/pwrpsehu0113p32 12vcc 丁 311918p3.7 17p3/5 16-os521kled39383736353332212223242526272310 p3j311 p3.1hv
34、ccp3o _6_p3.17p39ils.out波形輸出123p13 lcd rs4sdamclksclkgndddsencapgndvccoutcomp10u02ad9833koi圖2-6單片機與ad9833引腳連接圖2.3.2人機交互電路人機交互電路以單片機at89s52為核心,通過其控制液晶敁示模塊和鍵盤輸入模塊,使其輸岀一定的波形。其電路圖如下:ledpoop01p02p03p04p05p06p07p20mlp22p23p24p25p2(5p2?rkdtxdale7ppseno-3938373635343332212223242526272310 p3j011 p3.13029vcc1
35、012pl'p12pl.flcd rslcd rw 5lcd e 610111213vcc1616pin圖2-7人機交互電路2.3.3液晶顯示電路木系統采用的液晶型號為lcd1602,這是款飛利蒲公司生產的圖形液晶。該 液品除應用于移動電話外,也可廣泛應用于各類便攜式設備的顯示系統。該系統中, 我們選用lcd1602的三大理由為:一、性價比高,lcd1602可顯示32個字符,而 lcd5110可顯示15個漢字,30個字符。lcd 1602 般15元左右,lcd5110般 20 元,lcd 12864 般 5070 元;二、lcd 1602 需 11 根 10 線,lcd12864 需
36、12 根; 三、速度快,是lcd12864的20倍,是lcd5110的40倍。在與申片器連接屮,將 1602的vcc和led引腳接3.3v電壓,因為1602的最佳工作電壓為3v3.3v,過 高會使其灰度加重,影響顯示效果,過低會顯示不清晰。另cd-e,lcd-rw,lcd-rs 引腳分別與at89s52p1.1p1.3引腳相連,用單片機控制1602的顯示。圖2-8為1602 液晶顯示器和它的連接電路。1602 fit bdii圖2-8液晶顯示器與單片機連接圖3系統軟件設計3. 1總體方案木系統的軟件設件包括y 1602液晶顯示、ad9833模塊、at89s52模塊、按鍵 模塊、初始化函數和主函
37、數。設計時首先對系統進行初始化,其次顯示lcd,并使 系統運作起來,由at89s52控制ad9833輸出波形,最后,我們可以通過按鍵模塊 對整個系統的輸出波形和頻率進行變化。ad9833模塊和at89s52模塊是木次軟件 設計的重點。由于at89s52和ad9833的spi接u速率較高,可達到1mbps,所以 在軟件屮需要對吋序做準確的設計。信號發生器至今都足設計的一個熱點話題,木系統較好地實現了系統的基木功 能,而且實現丫系統的小型化和便捷化。3. 2程序流程圖開始at89s52|mj ad9fi;?3 發這at89s52i|< 新發送數樞 給ad9wad9s33,g 新輸山波形圖3-
38、1系統軟件設計流程圖3.3主要程序說明3.3.1主程序:主要液晶輸出程序,包括系統的整個運行流程。液晶的m示根據1602.h中字符、 數字以及特殊符號來顯示,再通過ad9833.h中的定義來輸出各種波。/扇 i-【i /不不不不不不不不不不不不 i . k i不不不不不不不不不不不不不/main()unsigned char i = oxoo; long uint shiyanshuju = 0x00;uchar wave select = 0x00; lcd_init();/選擇屮斷方式1 /刷屏的吋間設置ad9833_initial(); controlregister = 0x2000;
39、 tmod=0x01;th0=0xa6;tl0=0x66;et0= 1;tr0= 1;ea = 0x00;frequencyout = 0;/開機默認的頻率輸出值;calculate_control_word(frequency_out);/根據設置的頻率換算成將要送入 ad9833巾的整數值;control_word_to_ad9833(control_register,(0x4000|(control_word/16384),(0x4000|( control_word%16384),0xd000);display_data();display_string(0,l,lcdbuf2);/顯
40、樂第二行,從第0個位置開始anjiancishubiangliang = 0x00;3.3.2初始化程序:主要是對申片機at89s52進行初始化,屬于at89s52系列爭片機固有的初始化 程序7,包括晶振的選擇,振蕩器的清除以及mclk和smclk吋鐘源的選擇等。 另外1602液晶和ad9833等的初始化函數都在各0的了程序中。可通過按鍵實現頻 率的設置,然后輸出/基木功能全部實現;20091181017#include <reg52.h>/調用頭文件(單片機內部的寄存器定義)#define uchar unsigned char#define uint unsigned int,
41、*木段為硬件 jyo定義*/sbit lcd_e =p1a1;sbit lcd_rw = p1八2;sbit lcd_rs = p1a3;sbit ddsclk = p3a1;/ p3_l,ad9833的dds片選或者寫數據有效信號sbit ddsen = p3a2;/ p3_2, ad9833的dds片選或者寫數據有效信號sbit ddsdata = p3a0;/ p3_0, ad9833 的 dds 數據信號/define lcd data p2 /lcd data#define lcd_busy 0x80 /用于檢測lcd的busy標識(木程序巾用的延時, 未檢測)/lcd顯示內容,定義
42、到代碼段unsigned char code lcdbuf 1 = nfrq:hz1;unsigned char code lcdbu£2= type:sinn;/輸出波形顯示,默認力正弦。 unsigned char code lcdbuf3= n type:trim;/輸出波形顯示:三角波。 unsigned char code lcdbuf4= type:sq1"/輸出波形顯示:方波,此吋方波頻率為設置頻率的值一半。unsigned char code lcdbuf5= *' type:sq2"/輸岀波形顯示:方波,此時方波頻率和設置頻率的值相等。/
43、long uint control_word = 0x00;/根據設置的頻率換算成將要送入ad9833中的整數 量;3.3.3液晶顯示程序:先對1602液品進行了字符、數字和特殊符號的設置,其次介紹了液晶的清屏和 初始化程序,最后詳細介紹y 1602的寫入程序,包括寫入漢字、字符以及特殊符號, 在結尾還說明y頻率的書寫方法。/函數聲明void display_xy(unsigned char x,unsigned char y)if(y=0x01)x = x + 0x40 + 0x80;elsex = x+0x80;w ri tecommandlcd(x);* 函數名稱:display cha
44、r* 入u參數:x(unsigned char 型),y(unsigned char 型),dat(unsigned char 型) *出口參數:無*功能描述:在具體位置顯示單個字符,x是列號,y是行號void display_char(unsigned char x,unsigned char y,unsigned char dat) display_xy(x,y);writedatalcd(dat);*/«x*f* 函數名稱:display_string* 入u參數:x(unsigned char 型),y(unsigned char 型),s(指針型)*出口參數:無*功能描述:
45、在具體位置顯示字符串,以/0結朿,x是列號,y是行號3.3.4按鍵程序:主要是對接入at89s52的p3 u的6個按鍵程序進行說明,其中按鍵1表示閃 爍位每按一次就加一,按鍵2表示閃爍位向右移,按鍵3表示閃爍位向左移,按鍵4 表示閃爍位每按一次就減一,當按鍵5被按下后頻率的數值被選定,不再閃爍,按 鍵6表示波形的切換,其屮波形有4利,分別為正弦波、三角波和頻率為正弦波一 半的方波和頻率為正弦波一樣的方波,四茗循環,頻率的步進最小爭位值為1hz。 scan_key(void)/the subprogram is used to scan keyuchar key = 0;key = p3;/el
46、iminate themost high bit and low three bitskey = key & 0xf8; switch(key)case oxbo:keyzhi = 3 ;break;case 0xa8:keyzhi = 2 ;break;case 0x98:keyzhi = 1 ; break;case 0x70:keyzhi = 6 ;break;case 0x68:keyzhi = 5 ;break;case 0x58:keyzhi = 4 ;break;default:keyzhi=o;retum(keyzhi);keychuli()p3_3 = 0x01;p3
47、_5 = 0x01;p3_4 = 0x01;p3_6 = 0x00;p3_7 = oxoo; delay(loo);if(p3_3&p3_4&p3_5) = 0x00)/delay(looo);if(p3_3&p3_4&p3_5) = 0x00)p3_6 = 0x00;p3_7 = 0x01; dat = scan_key(); if(dat = 0x00)p3_6 = 0x01;p3_7 = 0x00; dat = scan_key();else/無鍵按下dat = 0x00; goto down;down:retum(dat);3.3.5 ad9833 程序
48、:主要是對ad9833進行spi模擬與單片機進行連接,再根據按鍵輸入的數據分 別轉換成正弦波、三角波和方波進行輸出的程序2。其中轉換的格式固定,但是 ad9833輸出頻率時是先低位后高位,區別于sp1模擬時單片機給ad9833數據時是 先高位后低位。void ad9833_writedata(unsigned int ddsdata)unsigned char data_num=0; unsigned int ddsdata temp;ddsdata_temp=d dsdata;ddsclk=1;sdelay(4);ddsen=0; /dds able sdelay(4);for(data_n
49、um=0;data_num< 16;data_num+)if(ddsdata_temp & 0x8000)ddsdata=l;elseddsdata=0;sdelay(5);ddsclk=0;sdelay(5);ddsdata=o;sdelay(5);ddsclk=1;ddsdata_temp=ddsdata_temp«l; if(data_num < 15)sdelay(50);ddsen=1;void ad9833_reset()/add code heread9833_writedata(0x0100);ad9833_writedata(0x2000);ad
50、9833_writedata(0x4000);ad9833_writedata(0x4000);ad9833_writedata(0x2000);ad9833_writedata(0x8000);ad9833_writedata(0x8000);ad9833_writedata(0xd000);ad9833_writedata(0xf000);/寄存器復位/準備清空頻率寄存器0/filled with 0/filled with 0 /prepare for clear frel /filled with 0/filled with 0/clear phs 0/clear phs 1void
51、control_word_to_ad9833(unsigned int contrregdata,unsigned int fre_msbdata,unsigned int fre_lsbdata,unsigned int phs data)/addunsigned int fre_msbdata_temp=fre_msbdata; unsigned int fre_lsbdata_temp=fre_lsbdata; unsigned int contr_reg_data_temp=contr_reg_data; unsigned int phs_data_temp=phs_data; ad9
52、833_writedata(contr_reg_data_temp); ad9833_writedata(fre_lsbdata_temp); ad9833_writedata(fre_msbdata_temp); ad9833_writedata(phs_data);/*根據硬件連接選通at89s52與ad9833的數據線路;將ad9833的內部數據進行 清零操作*/void ad9833_initial()ddsen= 1;/ddsen disableddsclk=1;/clock highddsdata=0;ad9833_reset();4制作與調試4.1硬件電路制作4. 1. 1總體特
53、點該系統所涉及的各部分硬件電路,總體的特點是:(1) 電路原理較為簡爭,所用的器件均為常用器件,但因為進行了投板制作, 且器件基木是貼片形式,所以前期必須保證pcb版圖的正確性和可實施性11;(2) 由于ad9833貼片引腳相當密,因此焊接過程屮要特別注意,切勿將周 岡引腳焊接在一起。所以,應合理布線,以降低焊接難度,降低出錯率,同時防止干擾。4.1.2焊接焊接前應熟悉各芯片的引腳,焊接吋參照電路圖,仔細地連接引腳。先焊接各 芯片的電源線和地線,這樣確保各芯片有止確的工作電壓,同類的芯片應順序焊接, 在一片焊接并檢查好之后,其他的同類芯片便可以參照第一片進行焊接。這樣便可 大大節省吋間,也可降低出錯率。在大面積的接地(電)中,常用元器件的腿與其連接,對連接腿的處理需要進 行綜合的考慮,就電氣性能而言,元件腿的焊盤與銅面滿接為好,但對元件的焊接 裝配就存在一些不良隱患如焊接需要大功率加熱器,容易造成虛焊點。所以兼顧電 氣性能與工藝需要,做成十字花焊盤,稱之為熱隔離俗稱熱焊盤,這樣,可使在焊 接吋因截面過分散熱而產生虛
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45617-2025國際貿易業務流程規范動物溯源數據交換
- GB/T 21307-2025皮輥軋花機
- GB/T 45550-2025蜜蜂遺傳資源調查技術規范
- 發生火災時停電應急預案(3篇)
- 行政管理風險評估試題及答案
- 2025年智能化應用試題及答案
- 時空組學 數據集格式規范 編制說明
- 高考數學2024年解題思路探討與試題及答案
- 高考數學強化課程試題及答案
- 企業火災場景應急預案(3篇)
- 鐵路客運安檢員應知應會考試題庫300題(含答案)
- 雕像遷移 施工方案
- 2025年湖北省新華書店(集團)有限公司招聘筆試參考題庫含答案解析
- 燃氣公司新員工入職三級安全教育培訓
- 黑龍江商業職業學院《生活中的科學》2023-2024學年第二學期期末試卷
- 2025年中國鐵路沈陽局集團有限公司招聘筆試參考題庫含答案解析
- 水泥攪拌樁培訓
- 電網工程設備材料信息參考價(2024年第四季度)
- 2025年專利使用合同范本
- 數據中心運維服務投標方案(技術標)
- 2025屆高考英語復習讀后續寫練習:雪山遇險:絕境中盼來的生機+課件
評論
0/150
提交評論