【正文】
and a keyboard. In this text,I have explained and remended the design scheme of software and hardware of the product in detail,providing the specific program.Keyword: DDS AD9951 Controlregister Frequency tuning word Transmissible format of data 前言信號(hào)源作為一種基本電子設(shè)備,無論是在教學(xué)、還是在科學(xué)技術(shù)研究中,都有著廣泛的使用。相位寄存器就將加法器在上一個(gè)時(shí)鐘作用后產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一個(gè)時(shí)鐘的作用下繼續(xù)將相位數(shù)據(jù)與頻率控制字相加。DDS在改變頻率時(shí)只需改變頻率控制字(即累加器累加步長),而不需改變?cè)械睦奂又担矢淖冾l率時(shí)相位是連續(xù)的。3. AD9951芯片介紹 引腳與寄存器介紹采用48腳TQFP/EP封裝,其引腳定義和設(shè)置見硬件設(shè)計(jì)部分,它有6個(gè)寄存器,分別是控制寄存器CFR控制寄存器CFR幅度大小控制寄存器ASF、幅度斜率控制寄存器ARR、頻率控制寄存器FTW、相位控制寄存器POW,其內(nèi)部寄存器每一位設(shè)置見附錄,AD9951芯片如圖31。主要功能特性: l 兼容MCS51指令系統(tǒng)l 2個(gè)雙向I/O口 l 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器l 全雙工UART串行中斷口線l 2個(gè)外部中斷源l 中斷喚醒省電模式l 看門狗(WDT)電路l 靈活的ISP字節(jié)和分頁編程l l 時(shí)鐘頻率033MHzl 256x8bit內(nèi)部RAMl 低功耗空閑和省電模式l 3級(jí)加密位l 軟件設(shè)置空閑和省電功能l 雙數(shù)據(jù)寄存器指針l 8k可反復(fù)擦寫(1000次)ISP 鍵盤說明系統(tǒng)中的鍵盤接P1口,鍵盤的定義如表 41。從液晶顯示器顯示內(nèi)容來分,可分為段式、字符式和點(diǎn)陣式三種。第37腳(IOSYNC)為異步串行端口控制復(fù)位引腳;為1時(shí),當(dāng)前I/O操作立即停止;為0時(shí)開始新的I/O操作;不用時(shí),此引腳必須接地;應(yīng)用電路圖中將此腳接地。得到的+;另一方面,可以提供給單片機(jī)系統(tǒng),包括為LCD、AT24C02及上拉電阻提供電壓。其流程圖見圖 52 所示,完整程序見附件1 。delay5ms(10)。 //加一鍵程序 case 0x7f: {make_sure()。對(duì)于只關(guān)心頻率參數(shù)的應(yīng)用場(chǎng)合,可以只簡(jiǎn)單地對(duì)控制寄存器2(CFR2)和頻率控制寄存器(FTW0)進(jìn)行設(shè)置即可。IOSYNC引腳為高時(shí)將立即終止當(dāng)前的通信周期,而當(dāng)IOSYNC引腳狀態(tài)回到低電平時(shí),AD9951串口控制器即認(rèn)為接下來的8個(gè)系統(tǒng)時(shí)鐘的上升沿對(duì)應(yīng)的是下一個(gè)通信周期的指令字,從而保持通信的同步。在該計(jì)算頻率控制字程序中,要傳遞的參數(shù)為2個(gè) long 型數(shù)據(jù)。MOV R0, 6DH MOV R1, 6CH MOV R2, 6BH MOV R3, 6AH。單片機(jī)只要通過軟件模擬I2C通信協(xié)議就可以和具有I2C串行總線接口的器件進(jìn)行通信。程序中只要設(shè)立一個(gè)設(shè)置定時(shí)器初值的子程序,喂它時(shí)只要調(diào)用這個(gè)子程序即可。在硬件的調(diào)試過程中發(fā)現(xiàn)了以下幾個(gè)問題,同時(shí)也給出了一些相應(yīng)的解決辦法。具有一定的實(shí)用和推廣價(jià)值。所以就造成了輸出的誤差,同時(shí)也給校準(zhǔn)帶來困難。//喂狗指令}}系統(tǒng)調(diào)試與測(cè)試本系統(tǒng)所使用的軟件開發(fā)工具是Keil c51v706a版本,在uVision2集成開發(fā)環(huán)境中編程、編譯、調(diào)試和連接,直接用ISP(在線可編程)下載。當(dāng)系統(tǒng)陷入系統(tǒng)后,怎樣才能從死循環(huán)中跳出來呢?只有比這個(gè)死循環(huán)更高級(jí)的中斷程序才能奪走CPU的控制權(quán)。它的優(yōu)點(diǎn)是對(duì)硬件的依賴小,只用兩根線進(jìn)行連接。PUBLIC _COUNT_F MOVEP SEGMENT CODERSEG MOVEP_COUNT_F: 。匯編子程序名和函數(shù)名的對(duì)應(yīng)規(guī)則與有無參數(shù)傳遞,及是否是可重入函數(shù)有關(guān),其關(guān)系如下表所示。由于串行操作是在寄存器級(jí)別上發(fā)生的,因此串行端口控制器應(yīng)能識(shí)別指令字節(jié)寄存器地址和自動(dòng)產(chǎn)生適當(dāng)?shù)募拇嫫髯止?jié)地址。頻率控制寄存器FTW0的設(shè)置:應(yīng)用中采用外部振蕩源,外部晶振為30MHZ,AD9951工作頻率可達(dá)400MHZ,輸出頻率一般只為工作頻率的40%,最大輸出頻率達(dá)160MHZ,為了能輸出盡量高的頻率,所設(shè)的倍頻數(shù)是13,那么fs=1330MHZ,這樣開機(jī)初始化時(shí)要輸出fo=10MHZ的頻率, 可算得FTW=110127367,轉(zhuǎn)換成16進(jìn)制就是06906907H。 //右移鍵程序 case 0xdf: data_sub()。 lcd_mark(posi_mark)。用戶可以通過兩種方法輸入所需頻率:用數(shù)字鍵輸入或者用加一、減一、移位功能鍵輸入。其來源主要有三個(gè):相位舍位誤差造成的雜散;幅度量化誤差(由存儲(chǔ)器有限字長引起)造成的雜散和DAC非理想特性造成的雜散。第24引腳(DAC_RSET),DAC復(fù)位端,使用時(shí)應(yīng)通過一個(gè)3kΩ的電阻接至AGND端。第7腳需要接地。AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。該DDS系列包括一個(gè)集成的14位數(shù)模轉(zhuǎn)換器(DAC)、片內(nèi)125位隨機(jī)存儲(chǔ)器(RAM)、相位與幅度控制以及多芯片同步控制的功能。直接數(shù)字頻率合成是一個(gè)開環(huán)系統(tǒng),無任何反饋環(huán)節(jié),其頻率轉(zhuǎn)換時(shí)間主要由頻率控制字狀態(tài)改變所需的時(shí)間及各電路的延時(shí)時(shí)間所決定,轉(zhuǎn)換時(shí)間很短。DDS的結(jié)構(gòu)原理圖如圖1所示,它由相位累加器、正弦ROM表、D/A轉(zhuǎn)換器等組成。的內(nèi)部時(shí)鐘,而合成頻率高達(dá)160本設(shè)計(jì)采用該芯片,以AT89S52單片機(jī)為控制,采用AT24C02來存儲(chǔ)重要的系統(tǒng)數(shù)據(jù),由1602點(diǎn)陣式字符型液晶顯示模塊作為顯示器,并加上一個(gè)小鍵盤構(gòu)成了精密信號(hào)發(fā)生器。隨著科學(xué)技術(shù)的發(fā)展和測(cè)量技術(shù)的進(jìn)步,對(duì)信號(hào)源的要求越來越高,普通的信號(hào)發(fā)生器已無法滿足目前日益發(fā)展的數(shù)字技術(shù)領(lǐng)域科研和教學(xué)的需要。這樣,相位累加器在參考時(shí)鐘的作用下進(jìn)行線性相位累加。(4)相位噪聲小。 圖31:AD9951是采用先進(jìn)的DDS技術(shù)開發(fā)的高集成度DDS器件。校準(zhǔn)保存選擇左移右移減一加一確定表 4單片機(jī)與串行EEPROM芯片AT24C02的接口電路本系統(tǒng)中,關(guān)機(jī)斷電時(shí)的數(shù)據(jù)在下次開機(jī)時(shí)要重新調(diào)用,以及用戶認(rèn)為有用的頻率,為方便重新調(diào)用而保存下來的頻率信號(hào)(本系統(tǒng)中支持20通道的頻率信號(hào)的重復(fù)保存和調(diào)用);另外,系統(tǒng)的輸出頻率信號(hào)的精度和穩(wěn)定度,很大程度上取決于DDS所采用的時(shí)鐘源(本例中用外接晶振),而實(shí)際使用的晶振源是有一定誤差的,應(yīng)允許用戶根據(jù)實(shí)際情況進(jìn)行校正并保存以供系統(tǒng)調(diào)用合成所需的信號(hào)。其中字符式液晶顯示器以其價(jià)廉、顯示內(nèi)容豐富、美觀、無須定制、使用方便等特點(diǎn)成為LED顯示器的理想替代品。第38腳(SDO),采用3線串口操作時(shí),SDO為串行數(shù)據(jù)輸出端。、。初始化單片機(jī)初始化LCD初始化AD9951循環(huán)判鍵校準(zhǔn)鍵保存鍵選擇鍵左移鍵右移鍵減一鍵加一鍵確定鍵 圖52 主程序流程圖 其程序的結(jié)構(gòu)組織如下:void main(void){ dog_eat()。break。delay5ms(10)。而CFR2的07位控制著內(nèi)部倍頻模塊的倍頻數(shù),其他位可以忽略不用管他(使用其默認(rèn)值)。、頻率控制字計(jì)算程序合成信號(hào)的頻率可由公式(1) F = Fm* Fc/ 2n可以得到計(jì)算頻率控制字的公式如下: Fm=F*2n/Fc (3)可見,計(jì)算頻率控制字的公式實(shí)際上是一個(gè)多位數(shù)除法程序。一個(gè)是輸入頻率參數(shù),另一個(gè)為系統(tǒng)校正的晶振頻率。AT24C02采用標(biāo)準(zhǔn)的I2C通信接口進(jìn)行通信。當(dāng)程序陷入死喜歡后,定時(shí)器溢出,產(chǎn)生高優(yōu)先級(jí)中斷,從而跳出死循環(huán)。(1) 由于DDS是工作在0—160MHz,所以它不僅受外界的干擾,而且DDS自己也不斷的向外界輻射著干擾,這就要求DDS旁邊的器件具有極強(qiáng)的抗干擾能力,尤其是具有軟件系統(tǒng)的單片機(jī),對(duì)抗干擾的能力要求更高,才不至于導(dǎo)致單片機(jī)的程序經(jīng)常