三相正弦波發(fā)生器_第1頁
三相正弦波發(fā)生器_第2頁
三相正弦波發(fā)生器_第3頁
三相正弦波發(fā)生器_第4頁
三相正弦波發(fā)生器_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、21 嵌入式系統(tǒng)綜合實(shí)訓(xùn)說明書題 目: 三相正弦波發(fā)生器 院 (系): 信息與通信學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 閆朝明 學(xué) 號(hào): 1100220429 指導(dǎo)教師: 孫安青 2015年1月10日 基于DDS的正弦波發(fā)生器摘要DDS(Direct Digital Synthesizer)是直接數(shù)字頻率合成器技術(shù)?;贏ltera公司的cycloneII利用DDS技術(shù)實(shí)現(xiàn)正弦波發(fā)生器是一種新的頻率合成技術(shù),它主要是通過相位累加器、波形ROM構(gòu)成,與傳統(tǒng)的相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn),廣泛使用在電信與電子儀器領(lǐng)域,是實(shí)現(xiàn)設(shè)備全數(shù)字化的一個(gè)關(guān)鍵技術(shù)。通過正弦波

2、發(fā)生器還可以拓展出任意波形器。關(guān)健詞: DDS nuc-140 ROM modelsim Sine Wave Generator Based on DDS AbstractDDS (Direct Digital Synthesizer) is the Direct Digital frequency Synthesizer technology. Based on Altera corporation cycloneII using DDS technology to realize the sine wave generator is a kind of new frequency synt

3、hesis technology, it mainly through the phase accumulator, waveform ROM composition, compared with the traditional, DDS has low cost, low power consumption, and the advantages of high resolution and fast conversion time, widely used in the field of telecommunications and electronic instruments, is o

4、ne of the key technologies to realize full digital equipment. Through sine wave generator can also expand the arbitrary waveform.Keywords: DDS nuc-140 ROM modelsim 目 錄引言 11 設(shè)計(jì)目的及意義31.1 設(shè)計(jì)目的 31.2 設(shè)計(jì)意義 42 設(shè)計(jì)方案 62.1 設(shè)計(jì)要求 62.2設(shè)計(jì)思路63 硬件電路設(shè)計(jì) 103.1開發(fā)板及主要芯片介紹 103.2 硬件框圖113.3 硬件模塊說明124 軟件設(shè)計(jì) 124.1 程序流程圖 124.2

5、 正弦波的產(chǎn)生過程 125 結(jié)論13謝辭 14參考文獻(xiàn) 15附錄 16引言 波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號(hào)和用戶定義信號(hào),并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。函數(shù)波形發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點(diǎn),不僅可以模擬各種復(fù)雜信號(hào),還可對頻率、幅值、相移、波形進(jìn)行動(dòng)態(tài)、及時(shí)的控制,并能夠與其它儀器進(jìn)行通訊,組成自動(dòng)測試系統(tǒng),因此被廣泛用于自動(dòng)控制系統(tǒng)、震動(dòng)激勵(lì)、通訊和儀器儀表領(lǐng)域。近年來,波形發(fā)生器在各種領(lǐng)域中得到越來越廣泛的應(yīng)用。 本系統(tǒng)主要通過開發(fā)板NuMicro NUC140,外加D/A轉(zhuǎn)換芯片等其它器件,進(jìn)行硬件設(shè)計(jì)和軟件編程,完成正弦波的形成。波形頻率的變

6、化和振幅可以自行選擇,即通過改變定時(shí)器的初值來改變輸出波形相鄰兩點(diǎn)的時(shí)間間隔,從而實(shí)現(xiàn)波形頻率的改變。此次課程設(shè)計(jì)是為了提高我們的動(dòng)手能力,實(shí)踐能力,創(chuàng)新能力而開設(shè)的一門實(shí)踐,它充分利用了學(xué)校實(shí)驗(yàn)室所能提供的各種儀器及器材,根據(jù)學(xué)生所掌握的知識(shí),從實(shí)際情況出發(fā)而制定的實(shí)踐項(xiàng)目。課程設(shè)計(jì)是一項(xiàng)重要的實(shí)踐性教育環(huán)節(jié),是學(xué)生在完成本專業(yè)所有課程學(xué)習(xí)后必須接受的一項(xiàng)結(jié)合本專業(yè)方向的、系統(tǒng)的、綜合的工程訓(xùn)練。1 設(shè)計(jì)目的及意義 1.1設(shè)計(jì)目的 (1)利用所學(xué)嵌入式系統(tǒng)以及單片機(jī)的理論知識(shí)進(jìn)行軟硬件整體設(shè)計(jì),鍛煉學(xué)生理論聯(lián)系實(shí)際,提高我們的綜合應(yīng)用能力。(2)我們這次的課程設(shè)計(jì)是以NuMicro NUC1

7、40開發(fā)板為基礎(chǔ),設(shè)計(jì)并開發(fā)能輸出正弦波且頻率可變的函數(shù)發(fā)生器,可增強(qiáng)對微控制器的學(xué)習(xí)及運(yùn)用能力。(3)掌握各種芯片(如DAC0832等)的功能特性及接口方法。(4)在平時(shí)的學(xué)習(xí)中,我們所學(xué)的知識(shí)大都是課本上的,在機(jī)房的練習(xí)大家也都是分散的對各個(gè)章節(jié)的內(nèi)容進(jìn)行練習(xí)。因此,缺乏一種系統(tǒng)的設(shè)計(jì)鍛煉。在課程所學(xué)結(jié)束以后,這樣的課程設(shè)計(jì)十分有助于學(xué)生的知識(shí)系統(tǒng)的總結(jié)到一起。(5)通過這一個(gè)函數(shù)發(fā)生器的設(shè)計(jì),使得我對系統(tǒng)的整個(gè)框架的設(shè)計(jì)有了一個(gè)很好的鍛煉。這不僅有助于大家找到自己感興趣的題目,更可以鍛煉大家對知識(shí)的應(yīng)用能力。1.2 設(shè)計(jì)意義 波形發(fā)生器作為一種常用的信號(hào)源,是現(xiàn)代測試領(lǐng)域內(nèi)應(yīng)用最為廣泛的

8、通用儀器之一。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機(jī)設(shè)備時(shí),都學(xué)要有信號(hào)源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號(hào)并加到被測器件或設(shè)備上,用其他儀器觀察、測量被測儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號(hào)發(fā)生器是電子測量領(lǐng)域中最基本、應(yīng)用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號(hào),如正弦波,三角波,方波等,因而廣泛用于通信、雷達(dá)、導(dǎo)航、宇航等領(lǐng)域。2 設(shè)計(jì)方案2.1 設(shè)計(jì)要求 (1)具有產(chǎn)生正弦波波形的功能;(2)可改變波形的振幅以及頻率;(3)輸出波形的頻率可調(diào),頻率步進(jìn)為2Hz。(4)輸出波形幅度范圍可按步進(jìn)0.2V(峰峰值)調(diào)整。(6)具有顯示輸出波形的類型、重復(fù)頻率

9、(周期)和幅度的功能。2.2 設(shè)計(jì)思路 根據(jù)題目的要求,經(jīng)過仔細(xì)的考慮各種要素,制定了整體方案:以NuMicro NUC140開發(fā)板為基礎(chǔ),P0口接DAC0832信號(hào)輸入并進(jìn)行數(shù)模轉(zhuǎn)換,P1口接矩陣鍵盤,P2口接液晶顯示器LCD1602,由程序控制P0口產(chǎn)生波形,再由按鍵及按鍵次數(shù)控制產(chǎn)生波形的頻率和幅值在一定范圍內(nèi)可調(diào),并且能夠按任意鍵實(shí)現(xiàn)波形頻率和幅值的設(shè)定(不通過步進(jìn)按鍵設(shè)定來控制)。由運(yùn)放OP07實(shí)現(xiàn)DAC0832輸出電流到電壓的轉(zhuǎn)換,即實(shí)現(xiàn)數(shù)字信號(hào)到模擬信號(hào)的轉(zhuǎn)換。在LCD上實(shí)時(shí)的顯示波形的頻率和幅值,波形在示波器上產(chǎn)生。其波形的存儲(chǔ)方式,我們通過按鍵確定,一旦按鍵按下后,就把當(dāng)時(shí)的

10、波形對應(yīng)的參數(shù)存儲(chǔ)起來,例如幅度值,頻率值等參數(shù)。波形的合成:為了波形的合成,我們在采樣的時(shí)候,對正弦波,三角波,方波都只取樂20個(gè)點(diǎn);因?yàn)辄c(diǎn)越少,其頻率達(dá)到的值就會(huì)越大;合成時(shí)就是對幅值點(diǎn)進(jìn)行一個(gè)疊加后賦給DAC0832輸出一組波形。紅外,通過外部中斷高低電平的延時(shí)的時(shí)間來進(jìn)行解碼。3 硬件電路設(shè)計(jì) 3.1 NuMicro NUC140開發(fā)板及主要芯片介紹 本次設(shè)計(jì)用到的硬件資源主要有NuMicro NUC140開發(fā)板以及DAC0832芯片3.1.1 NuMicro NUC140開發(fā)板簡介(1)NuMicro NUC140是32位的內(nèi)嵌ARM Cortex-M0核的微控制器 ,適用于工業(yè)控制

11、和需要豐富的通信接口的應(yīng)用領(lǐng)域,Cortex-M0是ARM最新的32位嵌入式處理器,擁有與傳統(tǒng)8051單片機(jī)之匹敵的價(jià)格優(yōu)勢。NuMicro NUC140 Connectivity Line 帶全速USB 2.0 和 CAN功能,內(nèi)嵌Cortex-M0內(nèi)核,最高可運(yùn)行至50 MHz,內(nèi)建32K/64K/128K字節(jié)的Flash存儲(chǔ)器,以及4K/8K/16K字節(jié)SRAM,4K字節(jié)用于存儲(chǔ)ISP引導(dǎo)代碼的ROM,和4K字節(jié)的數(shù)據(jù) Flash 存儲(chǔ)器。另外還有豐富的外設(shè),如定時(shí)器,看門狗定時(shí)器,RTC,PDMA,UART,SPI, I2C,I2S,PWM 定時(shí)器,GPIO,LIN,CAN,PS/2,

12、USB 2.0 FS 設(shè)備,12位ADC,模擬比較器,低電壓復(fù)位控制和欠壓檢測功能。其主要性能特征有: 內(nèi)核 ARM Cortex-M0 內(nèi)核最高運(yùn)行 50 MHz 一個(gè) 24-位系統(tǒng)定時(shí)器 支持低功耗睡眠模式 單周期32位硬件乘法器 嵌套向量中斷控制器(NVIC)用于控制32個(gè)中斷源,每個(gè)中斷源可設(shè)置為4個(gè)優(yōu)先級 支持串行線調(diào)試(SWD)帶2個(gè)觀察點(diǎn)/4個(gè)斷點(diǎn) 內(nèi)建 LDO,寬電壓工作范圍 2.5 V 到 5.5 V Flash 存儲(chǔ)器 32K/64K/128K 字節(jié) Flash 用于存儲(chǔ)程序代碼 4KB flash 用于存儲(chǔ)ISP引導(dǎo)代碼 支持在系統(tǒng)編程 (ISP)方式更新應(yīng)用程序 支持5

13、12 字節(jié)單頁擦除 在128K字節(jié)系統(tǒng)中可配置數(shù)據(jù)FLASH地址和大小,在32K字節(jié)和64K字節(jié)系統(tǒng)中固定為4K字節(jié)數(shù)據(jù) 通過SWD/ICE接口,支持2 線 ICP升級方式 支持外部編程器并行高速編程模式 SRAM 存儲(chǔ)器 4K/8K/16K 字節(jié)內(nèi)建 SRAM 支持 PDMA 模式 PDMA (Peripheral DMA) 支持9通道 PDMA 用于SRAM和周邊設(shè)備的自動(dòng)數(shù)據(jù)傳輸 時(shí)鐘控制 針對不同應(yīng)用可靈活選擇時(shí)鐘 內(nèi)部 22.1184 MHz 高速振蕩器可用于系統(tǒng)運(yùn)行 內(nèi)部低功耗 10 KHz 低速振蕩器用于看門狗及掉電模式喚醒等功能 支持一組PLL, 高至 50 MHz, 用于高性

14、能的系統(tǒng)運(yùn)行 外部 424 MHz 晶振輸入用于 USB 和精準(zhǔn)的定時(shí)操作 外部 32.768 kHz 晶振輸入用于 RTC 及低功耗模式操作 GPIO 四種 I/O 模式: 準(zhǔn)雙向模式、 推挽輸出模式、 開漏輸出模式、 高阻輸入模式 TTL/Schmitt 觸發(fā)輸入可選 I/O 引腳可被配置為邊沿/電平觸發(fā)模式的中斷源 支持大電流驅(qū)動(dòng)和灌入 I/O 模式 Timer 支持4組32位定時(shí)器, 每個(gè)定時(shí)器有一個(gè)24位向上計(jì)數(shù)定時(shí)器和一個(gè)8位預(yù)分頻計(jì)數(shù)器 每個(gè)定時(shí)器有獨(dú)立的時(shí)鐘源 提供 one-shot, periodic, toggle and continuous 計(jì)數(shù)操作模式 支持事件計(jì)數(shù)功

15、能 支持輸入捕捉功能(2)NuMicro NUC140管腳圖3.1.2 DAC0832簡介DAC0832DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。DAC0832是采樣頻率為八位的D/A轉(zhuǎn)換芯片,集成電路內(nèi)有兩級輸入寄存器,使DAC0832芯片具備雙緩沖、單緩沖和直通三種輸

16、入方式,以便適于各種電路的需要(如要求多路D/A異步輸入、同步轉(zhuǎn)換等)。所以這個(gè)芯片的應(yīng)用很廣泛。若需要相應(yīng)的模擬電壓信號(hào),可通過一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。運(yùn)放的反饋電阻可通過RFB端引用片內(nèi)固有電阻,也可外接。DAC0832邏輯輸入滿足TTL電平,可直接與TTL電路或微機(jī)電路連接。DAC0832引腳功能說明:DI0DI7:數(shù)據(jù)輸入線,TLL電平。ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效。CS:片選信號(hào)輸入線,低電平有效。WR1:為輸入寄存器的寫選通信號(hào)。XFER:數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效。WR2:為DAC寄存器寫選通輸入線。Iout1:電流輸出線。當(dāng)輸入全為1時(shí)Io

17、ut1最大。Iout2: 電流輸出線。其值與Iout1之和為一常數(shù)。Rfb:反饋信號(hào)輸入線,芯片內(nèi)部有反饋電阻.Vcc:電源輸入線 (+5v+15v)Vref:基準(zhǔn)電壓輸入線 (-10v+10v)AGND:模擬地,摸擬信號(hào)和基準(zhǔn)電源的參考地.DGND:數(shù)字地,兩種地線在基準(zhǔn)電源處共地比較好.3.2 硬件框圖3.3 硬件模塊說明3.3.1顯示接口模塊 功能:驅(qū)動(dòng)LCD液晶顯示、掃描按鈕。 由LCD1602液晶顯示器和矩陣按鍵組成。當(dāng)某一按鍵按下時(shí),掃描程序掃描到之后,通過P2口將數(shù)字信號(hào)發(fā)送到LCD1602,LCD1602液晶專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,其外接電壓時(shí)5V。掃描利用

18、軟件程序?qū)崿F(xiàn),當(dāng)某一按鍵按下時(shí),掃描立即檢測到,隨即調(diào)用子程序,執(zhí)行相應(yīng)的功能。其與單片機(jī)連接如圖4所示:3.3.2波形轉(zhuǎn)換(D/A)電路功能:將波形樣值得編碼轉(zhuǎn)換成模擬值,完成波形的輸出。由一片DAC0832和LF356運(yùn)放組成。DAC0832是一個(gè)具有兩個(gè)輸入數(shù)據(jù)寄存器的8位DAC。目前生產(chǎn)的DAC芯片分為兩類,一類芯片內(nèi)部設(shè)置有數(shù)據(jù)寄存器,不需要外加電路就可以直接與微型計(jì)算機(jī)接口。另一類芯片內(nèi)沒有數(shù)據(jù)寄存器,輸出信號(hào)隨數(shù)據(jù)輸入線的狀態(tài)的變化而變化,因此不能直接與微型計(jì)算機(jī)接口,必須通過并行口與微型計(jì)算機(jī)接口。DAC0832是具有20條引線的雙列直插式CMOS器件,它內(nèi)部具有兩級數(shù)據(jù)寄存器

19、,完成8位電流D/A轉(zhuǎn)換,股不需要外加電路。DAC0832是電流輸出型,示波器上顯示波形,通常需要電壓信號(hào),電流信號(hào)到電壓信號(hào)的轉(zhuǎn)換可以用運(yùn)算放大器LF356實(shí)現(xiàn)。單片機(jī)想DAC0832發(fā)送數(shù)字編碼,產(chǎn)生不同的輸出。先利用采樣定理對各種波形進(jìn)行抽樣,然后把各種采樣值進(jìn)行編碼,收到的數(shù)字量存入各個(gè)波形表,執(zhí)行程序時(shí)通過查表的方法依次取出,經(jīng)過D/A轉(zhuǎn)換后輸出就可以得到波形。假如N個(gè)點(diǎn)構(gòu)成波形的一個(gè)周期,則DAC0832輸出N個(gè)樣點(diǎn)值后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,即,一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,成為第二個(gè)周期。利用單片機(jī)的晶振控制輸出周期的速度,也就是控制輸出的波形的頻率。這樣就控制了輸出波形的及其幅值

20、和頻率,例如:正弦波3.3.3復(fù)位模塊 復(fù)位電路的工作原理是:單片機(jī)的復(fù)位電路在剛接通電時(shí),剛開始電容是沒有電的,電容內(nèi)的電阻很低,通電后,5V的電通過電阻給電容進(jìn)行充電,電容兩端的電會(huì)由0V慢慢的升到4V左右(此時(shí)間很短一般小于0.3秒),RC構(gòu)成的微分電路在上電瞬間產(chǎn)生一個(gè)微分脈沖,其寬度大于兩個(gè)機(jī)器周期,89C51將復(fù)位。正因?yàn)檫@樣,復(fù)位腳的電由低電位升到高電位,引起了內(nèi)部電路的復(fù)位工作,RST端電壓慢慢下降,降到一定電壓值以后,即為低電平,單片機(jī)開始正常工作(這是單片機(jī)的上電復(fù)位,也叫初始化復(fù)位);當(dāng)按下復(fù)位鍵時(shí),電容兩端放電,電容又回到0V了,于是又進(jìn)行了一次復(fù)位工作(這是手動(dòng)復(fù)位原

21、理)。3.3.4獨(dú)立按鍵模塊圖八為用獨(dú)立按鍵來控制不同的輸出波形3.3.5串口通信模塊圖中通過MAX232進(jìn)行TTL電平和232電平轉(zhuǎn)換,從而單片機(jī)和上位機(jī)之間通信提供通道。4 軟件設(shè)計(jì) 4.1 程序流程圖4.2正弦波的產(chǎn)生過程 正弦波的實(shí)現(xiàn)需要查表,每查一次表,輸出一個(gè)數(shù)值,之后查下一個(gè)數(shù)值繼續(xù)輸出,當(dāng)一個(gè)波形的256個(gè)數(shù)值全部輸出之后,從頭開始繼續(xù)輸出。DDS的工作原理是以相位累加器和ROM為核心的將要輸出的波形的數(shù)據(jù)取樣、量化、編碼,形成函數(shù)表,逐步存儲(chǔ)在ROM里,然后在系統(tǒng)標(biāo)準(zhǔn)時(shí)鐘下,按照一定的順序從ROM中讀取數(shù)據(jù),再經(jīng)過D/A轉(zhuǎn)換和濾波后,得到一定頻率的輸出波形。本論文中只涉及到軟

22、件仿真不講解D/A轉(zhuǎn)換和濾波。DDS原理框圖:5 結(jié)論 通過這次對波形發(fā)生器的設(shè)計(jì)與制作,讓我熟悉了NuMicro NUC140開發(fā)板的組成和使用,了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于波形發(fā)生的原理與設(shè)計(jì)理念。此次課程設(shè)計(jì)所用到的程序全系獨(dú)立編寫,通過這一課程設(shè)計(jì),使得對課堂上所學(xué)習(xí)的知識(shí)的應(yīng)用能力獲得了大的提高,也極大的增強(qiáng)了編寫調(diào)試程序和硬件連接的能力。編程工作是一項(xiàng)繁重,系統(tǒng)的腦力勞動(dòng),需要編程者具有足夠的耐心和毅力,耐心細(xì)致的工作態(tài)度和嚴(yán)謹(jǐn)務(wù)實(shí)的工作作風(fēng)。本次所編寫的多功能波形發(fā)生器的源程序總共將近一千行,系統(tǒng)龐大而且繁雜,在編寫過程中,所遇到的問題非常多,整個(gè)編寫過程就是一個(gè)不斷面

23、臨問題,不斷解決問題的過程,這一過程充滿了挑戰(zhàn)性,也充滿了各種困難,但不斷的追蹤錯(cuò)誤的來源也是很有趣味的一件事情。 總而言之,這使我對嵌入式實(shí)時(shí)操作系統(tǒng)、c語言的理解和掌握上有了很大的進(jìn)步,以前所了解的東西僅限于一些片面的知識(shí),通過這次編程,將這些零零碎碎的知識(shí)匯集起來,編寫出了一個(gè)完整的系統(tǒng),并且對知識(shí)的應(yīng)用能力有了極大的提高,對于硬件接口的問題也有了深刻的了解,體會(huì)到了的獨(dú)具一格的思想,也讓我對各種電路都有了大概的了解,所以說,坐而言不如立而行,對于這些電路還是應(yīng)該自己動(dòng)手實(shí)際操作才會(huì)有深刻理解。 謝 辭在這次課程設(shè)計(jì)過程中,得到了許多朋友,同學(xué)的幫助,如果沒有他們,設(shè)計(jì)過程將會(huì)更加地困難

24、。在此感謝在課設(shè)期間每位幫助過我的同學(xué),他們和我分享了很多以往的經(jīng)驗(yàn),讓我少走很多彎路。還要感謝所有傳授我知識(shí)的老師,是他們的悉心教導(dǎo)使我有了一定的專業(yè)課知識(shí),這也是課設(shè)能夠得以完成的基礎(chǔ)。再次感謝傳授給我知識(shí)以及給我?guī)椭凸膭?lì)的老師,同學(xué)和朋友,謝謝。參考文獻(xiàn)1盧有亮.嵌入式實(shí)時(shí)操作系統(tǒng).北京:電子工業(yè)出版社.20142 高士友等.基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)J.現(xiàn)代電子技術(shù),2009(16):35-40.3趙洪華.基于DDS技術(shù)的數(shù)字頻率信號(hào)發(fā)生器的設(shè)計(jì)J.客機(jī)創(chuàng)新導(dǎo)報(bào),2010(24):96-97. 4 譚浩強(qiáng).C語言程序設(shè)計(jì)(第二版)M,北京:清華大學(xué)出版社,1991.5 趙曙

25、光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000.6 候伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)M, 西安:西安電子科技大學(xué)出版社, 1999.7 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設(shè)計(jì)M,西安電子科技大學(xué)出版社,2005.9.8 賈立新,王涌.電子系統(tǒng)設(shè)計(jì)與實(shí)踐M,北京:清華大學(xué)出版社,2007.9徐金龍,劉宇紅,劉嬌.基于DDS原理的任意波形發(fā)生器的設(shè)計(jì)J. 現(xiàn)代機(jī) 械,2006(4):74-76.10 彭文標(biāo),黃悅?cè)A.基于DDS技術(shù)的信號(hào)源設(shè)計(jì)與實(shí)現(xiàn)J.微計(jì)算機(jī)信息,2007(20):271-272.附 錄程序:#include stdio.h

26、 #include NUC1xx.h#include GPIO.h#include SYS.h#include Seven_Segment.h#include Scankey.h#include LCD.h#define ONESHOT 0 / counting and interrupt when reach TCMPR number, then stop#define PERIODIC 1 / counting and interrupt when reach TCMPR number, then counting from 0 again#define TOGGLE 2 / keep c

27、ounting and interrupt when reach TCMPR number, tout toggled (between 0 and 1)#define CONTINUOUS 3 / keep counting and interrupt when reach TCMPR numberstatic uint16_t Timer0Counter=0;static uint16_t Timer1Counter=0;static uint16_t Timer2Counter=0;static uint16_t count=0;static float Amplitude=1.5;st

28、atic float Count=0.455;static uint16_t Frequency=300;unsigned char sin= 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae, 0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8, 0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0

29、xf2,0xf4,0xf5, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6, 0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda, 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0x

30、c5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1, 0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51, 0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27, 0x25,0x22,0x20,0x1

31、e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a, 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, 0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,

32、0x25, 0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80; /-TIMER1void InitTIMER1(void)/* Step 1. Enable and Select Timer clock source */ SYSCLK-CLKSEL1.TMR1_S = 0;/Select 12Mhz for Timer1

33、clock source SYSCLK-APBCLK.TMR1_EN =1;/Enable Timer1 clock source/* Step 2. Select Operation mode */TIMER1-TCSR.MODE=PERIODIC;/Select periodic mode for operation mode/* Step 3. Select Time out period = (Period of timer clock input) * (8-bit Prescale + 1) * (24-bit TCMP)*/TIMER1-TCSR.PRESCALE=0;/ Set

34、 Prescale 0255/TIMER1-TCMPR = 46875/Frequency;/ Set TCMPR 016777215 TIMER1-TCMPR = 46875/Frequency;/ Set TCMPR 016777215/ (1/12000000)*(255+1)*46875 = 1 sec / 1 Hz/* Step 4. Enable interrupt */TIMER1-TCSR.IE = 1;TIMER1-TISR.TIF = 1;/Write 1 to clear for saftyNVIC_EnableIRQ(TMR1_IRQn);/Enable Timer1

35、Interrupt/* Step 5. Enable Timer module */TIMER1-TCSR.CRST = 1;/Reset up counterTIMER1-TCSR.CEN = 1;/Enable Timer1/ TIMER1-TCSR.TDR_EN=1;/ Enable TDR functionvoid TMR1_IRQHandler(void) / Timer1 interrupt subroutine /char TEXT220=Timer1: ;int range;range=(int)(Count*(sincount);count+=1;if(count255)count=0;DrvGPIO_SetPortBits(E_GPE,range);/DrvGPIO_SetPortBits(E_GPB,range);/DrvGPIO_SetPortBits(E_GPE,sincount);/sprin

溫馨提示

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

評論

0/150

提交評論