基于TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)(已處理)_第1頁
基于TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)(已處理)_第2頁
基于TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)(已處理)_第3頁
基于TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)(已處理)_第4頁
基于TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)(已處理)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于 TMS320C5416DSP芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)摘要數(shù)字信號處理 (DigitalSignalProcessing,DSP)是利用計算機或?qū)S锰幚碓O(shè)備 ,以數(shù)字的形式對信號進行分析、采集、合成、變換、濾波、估算、壓縮、識別等加工處理 ,以便提取有用的信息并進行有效的傳輸與應(yīng)用。與模擬信號處理相比 ,數(shù)字信號處理具有精確、靈活、抗干擾能力強、可靠性高、體積小、抑郁大規(guī)模集成等優(yōu)點。基于TMS320C5416DS芯片的音頻信號頻譜分析的設(shè)計系統(tǒng)的主要功能P對語音信號進行采樣濾波后 FFT變換 ,然后通過 LCD觀察其頻譜分布。本設(shè)計通過C語言編程來實現(xiàn)系統(tǒng)的功能。關(guān)鍵詞 :DSP;信號 ;頻譜;FFT;LCD目錄TOC\o"1-5"\h\z緒論 1設(shè)計目的 1設(shè)計要求 1設(shè)計原理 2TMS320C54x芯片簡介 2TLV320AIC23芯片簡介 312864LCD液晶顯示屏簡介 4系統(tǒng)總設(shè)計方案 4系統(tǒng)模塊設(shè)計 4語音信號采集模塊 4語音信號處理模塊 6LCD顯示模塊 7設(shè)計結(jié)果顯示 86設(shè)計心得 10參考文獻 11致謝12附錄設(shè)計程序 13緒論設(shè)計目的熟悉 TLV320AIC23的接口和使用 ;熟悉 McBSP多通道緩沖串口配置為 SPI模式的通信的應(yīng)用 ;掌握一個完整的語音輸入、輸出通道的設(shè)計 ;熟悉A/D轉(zhuǎn)換的基本原理 ;加深對 DFT算法原理和基本性質(zhì)的理解 ;熟悉FFT算法原理和 FFT子程序的應(yīng)用 ;學(xué)習(xí)用FFT對連續(xù)信號和時域信號進行譜分析的方法 ,了解可能出現(xiàn)的分析誤差及其原因 ,以便在實際中正確應(yīng)用 FFT;了解 LCD顯示的基本原理 ;學(xué)習(xí)用 TMS320C54XDS芯片控制P LCD的基本方法和步驟。1.2設(shè)計要求DSP課程設(shè)計是對《數(shù)字信號處理》 、《DSP原理及應(yīng)用》等課程的較全面練習(xí)和訓(xùn)練 ,是實踐教學(xué)中的一個重要環(huán)節(jié)。通過本次課程設(shè)計 ,綜合運用數(shù)字信號處理、 DSP技術(shù)課程以及其他有關(guān)先修課程的理論和生產(chǎn)實際知識去分析和解決具體問題 ,并使所學(xué)知識得到進一步鞏固、深化和發(fā)展。初步培養(yǎng)學(xué)生對工程設(shè)計的獨立工作能力 ,掌握電子系統(tǒng)設(shè)計的一般方法。通過課程設(shè)計完成基本技能的訓(xùn)練 ,如查閱設(shè)計資料和手冊、程序的設(shè)計、調(diào)試等 ,提高學(xué)生分析問題、解決問題的能力。本題目通過 TLC320AIC23采集音頻信號 f.10kHz,編寫 DSP的FFT處理程序(自定頻譜分辨力 ),獲得幅頻特性之后 ,在點陣液晶中大致顯示出幅頻圖。 并在TOC\o"1-5"\h\z液晶中用文字顯示頻率幅值前三的頻率值。DSP與TLC320AIC23接口電路的原理圖繪制 ;DSP控制 TLC320AIC23的程序編寫與調(diào)試 ;TLC320AIC23進行語音模擬量到數(shù)字信號的轉(zhuǎn)換 ,實現(xiàn)聲音的采集 ,在CCS軟件中分析信號的幅頻特性 ;編寫 DSP的FFT處理程序;控制點陣液晶 ,實現(xiàn)繪圖功能 ,將幅頻圖顯示出來按要求編寫課程設(shè)計報告書 ,正確、完整的闡述設(shè)計和實驗結(jié)果。在報告中繪制程序的流程圖 ,并文字說明。2設(shè)計原理2.1TMS320C54x芯片簡介C54x是一款低功耗、 高性能的定點 DSP芯片 ,其內(nèi)部結(jié)構(gòu)電路圖如圖 2-1所示。其 CPU部分采用先進的多總線結(jié)構(gòu) 1條程序總線、 3條數(shù)據(jù)總線和 4條地址總線。40位算術(shù)邏輯運算單元 ALU,包括 1個40位桶形移位寄存器和 2個獨立的40位累加器。 17位并行乘法器 ,與40位專用加法器相連 ,用于非流水線式單周期乘法/累加 MAC運算。TMS320C5416DSP芯片共有 192千字的可尋址存儲空間。 這192千字的存儲空間分為 3個獨立的可選擇空間 ,分別為:64千字的程序存儲空間 ;64千字的數(shù)據(jù)存儲空間 ;64千字的I/O空間。所有的 TMS320C5416DS芯片都包括內(nèi)部隨機P存儲器 (RAM)和只讀存儲器 (ROM)。內(nèi)部隨機存儲器 RAM又分為單尋址 RAM(SARAM)和雙尋址 RAMDARA兩種類型。M為了滿足數(shù)據(jù)處理的需要 ,TMS320C5416DSP芯片提供了必要的片內(nèi)外部設(shè)備。這些外部設(shè)備主要包括 :通用I/O引腳;定時器;時鐘發(fā)生器 ;主機接口 HPI;串行通信接口 ;軟件可編程等待狀態(tài)發(fā)生器 ;可編程分區(qū)轉(zhuǎn)換邏輯。TMS320C5416DSP芯片的外部總線具有很強的系統(tǒng)接口能力 ,可與外部存儲器以及 I/O設(shè)備相連,能對64K字的數(shù)據(jù)存儲空間 ,64K字的程序存儲空間 ,以及64K字的I/O空間進行尋址。獨立的空間選擇信號 DS,PS和IS允許進行物理上分開的空間選擇。接口的外部數(shù)據(jù)準(zhǔn)備輸入信號 (READY)與片內(nèi)軟件可編程等待狀態(tài)發(fā)生器一道 ,可以使處理器與各種不同速度的存儲器和 I/O設(shè)備連接。接口的保護方式能使外設(shè)對 TMS320C5416DS芯片的外部總線進行控P制,使外部設(shè)備可以訪問程序 ,數(shù)據(jù)和I/O空間的資源。C5416DSP芯片是一種特殊結(jié)構(gòu)的微處理器 ,為了快速實現(xiàn)數(shù)字信號處理運算,采用了流水線指令結(jié)構(gòu)和相應(yīng)的并行處理結(jié)構(gòu) ,可在一個周期內(nèi)對數(shù)據(jù)進行高速的算術(shù)運算和邏輯運算。 C5416采用先進的哈佛結(jié)構(gòu) ,具有片內(nèi)存儲器、中斷、串口、并口等豐富的資源 ,加上高度專業(yè)化的指令系統(tǒng) ,使C5416具有很高的性價比 ,已經(jīng)廣泛應(yīng)用于通信、語音處理、圖像處理、儀器儀表等無線電通信系統(tǒng)中。圖 2-1TMS320C54x內(nèi)部結(jié)構(gòu)示意圖TLV320AIC23芯片簡介TLV320AIC23是一種高性能的立體聲音頻 Codec芯片作為從設(shè)備 ,主要完成輸入語音信號的 A/D轉(zhuǎn)換,語音采樣編解碼及濾波處理 ,該芯片構(gòu)成簡單 ,功能強大。TLV320AIC23工作電壓3.3V,能在數(shù)字和模擬電壓下工作,與TMS320C5416的I/O電壓相兼容 ,其控制接口和數(shù)字接口與 DSP的 MCBSP端口能夠無縫連接。 TLV320AIC23的模數(shù)轉(zhuǎn)換 (ADCs)和數(shù)模轉(zhuǎn)換 (DACs)部件高度集成在芯片內(nèi)部 ,采用了先進的 Sigma-delta過采樣技術(shù) (Sigma-delta一般用于ADC中,是高精度的 A/D轉(zhuǎn)換器,該轉(zhuǎn)換器的特點是將絕大多數(shù)的噪聲從動態(tài)轉(zhuǎn)移到阻態(tài)),可以在 8K到96K的頻率范圍內(nèi)提供 16bit、20bit、24bit和32bit的采樣 ,ADC和DAC的輸出信噪比分別可以達到 90dB和100dB。12864LCD液晶顯示屏簡介帶中文字庫的 128X64是一種具有 4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、 二級簡體中文字庫的點陣圖形液晶顯示模塊 ;其顯示分辨率為 128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令 ,可構(gòu)成全中文人機交互圖形界面??梢燥@示 8×4行16×16點陣的漢字 .也可完成圖形顯示 .低電壓低功耗是其又一顯著特點。 由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比 ,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多 ,且該模塊的價格也略低于相同點陣的圖形液晶模塊。系統(tǒng)總設(shè)計方案本系統(tǒng)用 DSP芯片 TMS320C541與音頻編解碼芯片6 TLV320AIC23實現(xiàn)硬件接口和軟件設(shè)計 ,并在此硬件基礎(chǔ)上實現(xiàn)語音信號的采集、 頻譜分析并用 LCD顯示語音信號的幅頻特性曲線。本系統(tǒng)包括音頻采集、 DSP對語音信號的處理、LCD顯示三部分。系統(tǒng)結(jié)構(gòu)如圖 3-1所示:圖3-1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)模塊設(shè)計語音信號采集模塊 從適應(yīng)語音信號頻率、滿足實時性、降低成本、簡化設(shè)計的要求出發(fā) ,本系統(tǒng)選擇 TLV320AIC23。TLV320AIC23是一種高性能的立體聲音頻 Codec芯片作為從設(shè)備 ,主要完成輸入語音信號的 A/D轉(zhuǎn)換 ,語音采樣編解碼及濾波處理 ,該芯片構(gòu)成簡單 ,功能強大。TLV320AIC23工作電壓3.3V,能在數(shù)字和模擬電壓下工作,與TMS320C5416的I/O電壓相兼容 ,其控制接口和數(shù)字接口與 DSP的MCBSP端口能夠無縫連接。 TLV320AIC23的模數(shù)轉(zhuǎn)換 (ADCs)和數(shù)模轉(zhuǎn)換 (DACs)部件高度集成在芯片內(nèi)部 ,采用了先進的 Sigma-delta過采樣技術(shù) (Sigma-delta一般用于ADC中,是高精度的 A/D轉(zhuǎn)換器,該轉(zhuǎn)換器的特點是將絕大多數(shù)的噪聲從動態(tài)轉(zhuǎn)移到阻態(tài)),可以在8K到96K的頻率范圍內(nèi)提供 16bit、20bit、24bit和32bit的采樣 ,ADC和DAC的輸出信噪比分別可以達到 90dB和100dB。TLV320AIC23通過以下引腳與 TMS320C5416連接。BCLK:I2S一種TLV320AIC23的數(shù)字音頻接口支持的通用的音頻格式串行數(shù)據(jù)傳輸時鐘 ,當(dāng)TLV320AIC23為主模式時 BCLK由TLV320AIC23產(chǎn)生并提供給 DSP,頻率為主時鐘的1/4,當(dāng)從模式時由 DSP產(chǎn)生 ;DIN:I2S格式串行數(shù)據(jù)輸入端 ,送入立體聲DAC;DOUT:I2S格式串行數(shù)據(jù)輸出端 ,由立體聲 ADC產(chǎn)生 ;LRCIN/LRCOUT:I2S格式數(shù)據(jù)輸入 /出幀同步信號 ;SCLK:控制端口移位時鐘 ;SDIN:控制端口串行數(shù)據(jù)輸入,用來傳輸配置 TLV320AIC23內(nèi)部寄存器數(shù)據(jù) ;/CS:控制端口輸入和地址鎖存選擇端,在SPI控制模式下 ,作為數(shù)據(jù)鎖存控制端 ,在I2C模式下,定義外設(shè)的 7位地址;XTI/MCLK:晶體或外部時鐘輸入端 ,TLV320AIC23內(nèi)部時鐘由它產(chǎn)生。TLV320AIC23的工作時鐘由外接的一個11.2896M的晶振提供,TLV320AIC23從電路模塊電路如圖 4-1所示。圖4-1TLV320AIC23從電路模塊電路數(shù)字音頻接口主要管腳為 BCLK-數(shù)字音頻接口時鐘信號 (bit時鐘),當(dāng)TLV320AIC23為從模式時 (通常情況 ),該時鐘由 DSP產(chǎn)生 ;TLV320AIC23為主模式時,該時鐘由 TLV320AIC23產(chǎn)生;LRCIN-數(shù)字音頻接口 DAC方向的幀信號 (I2S模式下word時鐘 );LRCOUT-數(shù)字音頻接口 ADC方向的幀信號 ;DIN-數(shù)字音頻接口DAC方向的數(shù)據(jù)輸入 ;DOUT-數(shù)字音頻接口 ADC方向的數(shù)據(jù)輸出 ;這部分可以和 DSP的McBSP(Multi-channelbufferedserialport,多通道緩存串口 )無縫連接 ,唯一要注意的地方是 McBSP的接收時鐘和 TLV320AIC23的BCLK都由 McBSP的發(fā)送時鐘提供。麥克風(fēng)輸入接口主要管腳為 MICBIAS-提供麥克風(fēng)偏壓 ,通常是3/4AVDDMICIN-麥克風(fēng)輸入 ;LINEIN輸入接口主要管腳為 LLINEIN-左聲道LINEIN輸入RLINEIN-右聲道LINEIN輸入;配置接口主要管腳為 SDIN-配置數(shù)據(jù)輸入;SCLK用于配置時鐘 ;DSP通過該部分配置 TLV320AIC23的內(nèi)部寄存器 ,每個word的前7bit為寄存器地址 ,后9bit為寄存器內(nèi)容。TLV320AIC23有兩個數(shù)字接口 ,其一是由 CS控制信號、 SDIN信號數(shù)據(jù)輸入、 SCLK信號時鐘和 MODE模式構(gòu)成的數(shù)字控制接口 ,通過它將芯片的控制字寫入TLV320AIC23,從而控制 TLV320AIC23功能 ;另一組是由 LRCIN左右聲控制輸入、DIN數(shù)據(jù)輸入、 LROUT左右聲輸出、 DOUT數(shù)據(jù)輸出和 BLCK時鐘組成的數(shù)字音頻接口 ,TLV320AIC23的數(shù)字音頻信號從這個接口接收或發(fā)出。TLV320AIC23內(nèi)部還包含兩個 A/D、D/A變換器,其字長可以是 16、20、32,同時TLV320AIC23內(nèi)部的時鐘可以通過 XTI晶振時鐘輸入、 XTO時鐘輸出和外接晶振構(gòu)成時鐘 ,也可以由外部直接輸入時鐘信號。 TLV320AIC23內(nèi)部還包含有MIC偏置電路,使用外接 MIC無需外置偏置電路。語音信號處理模塊有語音信號采集模塊所采集的模塊經(jīng)過 A/D轉(zhuǎn)換輸入 TMS320C5416DSP芯片對其進行 FFT運算,得其幅頻特性曲線。FFT算法的實現(xiàn)主要分為三個步驟 :實現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn) ,輸入數(shù)據(jù)的比特翻轉(zhuǎn)實際上就是將輸入數(shù)據(jù)進行位碼倒置 ,以便在整個運算后的輸出序列是一個自然序列。實現(xiàn)N點復(fù)數(shù) FFT,這一過程的實現(xiàn)分為三個功能塊 ,即第一級蝶形運算、第二級蝶形運算、第三級蝶形運算乃至 log2N級蝶形運算。對于任何一個 2的整數(shù)冪 N2m總可以通過, M次分解到 2點的 DFT計算。 通過這樣的 M次分解,可構(gòu)成 M(log2N)級迭代計算 ,每級由N/2個蝶形運算組成。功率普計算 ,即計算XkXnWNnk,X(k)一般是由實部和虛部組成。 ?因此計算功率普時 ,只需將FFT變換好的數(shù)據(jù) ,按照實部和虛部求它們的平方和即可。設(shè)計的子程序流圖如圖 4-2所示;圖4-2FFT運算子程序流圖LCD顯示模塊LCD數(shù)據(jù)接口基本上分為串行接口和并行接口兩種形式 ,本設(shè)計系統(tǒng)選用的是北京青云創(chuàng) 新科技 公司生產(chǎn)的中文 液晶顯示模 塊,型 號為LCM12864ZK_LCD其字型, ROM內(nèi)含8192個16*16點中文型和 128個 16*8半寬的字母符號字型 ;另外繪圖顯示畫面提供一個 64*256點的繪圖區(qū)域 GDRAM而且內(nèi);含CGRAM提供 4組軟件可編程的 16*16點陣造字功能。TOC\o"1-5"\h\z本設(shè)計中,采用并行 8位數(shù)據(jù)接口輸入方式 ,把LCD映射到 DSP芯片的 I/O空間,通過讀寫 I/O地址來控制液晶 ,TMS320C54xDSP芯片對該地址輸出數(shù)據(jù) ,實現(xiàn)LCD的顯示控制。 LCD顯示子程序流程圖如圖 4-3所示。圖4-3LCD顯示子程序流圖5設(shè)計結(jié)果顯示運用 C語言編寫設(shè)計所需要的程序 (見附錄),把程序下載到的實驗箱中 ,觀察 LCD上所顯示的幅頻特性曲線如圖 5-1,圖5-2所示。圖5-1基波幅頻特性曲線圖5-2混頻信號幅頻特性曲線上圖中所顯示的分別是基波和基波三次諧波以及五次諧波所疊加而得信號的幅頻特性曲線 ,并且所給信號是一定的 ,LCD的只進行一次掃描 ,并且是點狀圖。對程序稍作修改可以實現(xiàn)動態(tài)顯示 ,也可以實現(xiàn)用柱形圖來表示頻譜 ,如圖4-3所示。圖5-3幅頻特性柱狀圖6設(shè)計心得為期兩周的 DSP課程設(shè)計結(jié)束了 ,在這兩周的時間里 ,我認(rèn)認(rèn)真真地學(xué)習(xí)了DSP的相關(guān)知識。 這個學(xué)期由于準(zhǔn)備考研 ,所以基礎(chǔ)知識學(xué)得不是很扎實 ,正好利用課程設(shè)計這個機會 ,對沒有掌握好的知識進行一個補習(xí)。在剛開始的時候 ,我首先從最簡單的程序開始著手 ,首先看懂程序是什么意思,在嘗試在這個基礎(chǔ)上對程序進行修改 ,看程序是否出錯 ,或者說實驗的結(jié)果會有什么樣的改變。用這種方法是自己盡快的熟悉這個系統(tǒng)的編程的方式。我這次課程設(shè)計要做的是音頻信號頻譜分析。在一開始我就被語音信號的采集難住了。 所以只好從 LCD顯示這一塊先著手做 ,用一個正弦信號 ,將其通過DSP芯片進行 FFT,在通過 LCD顯示其快速傅里葉變換的結(jié)果 ,即其幅頻特性。在課程設(shè)計的過程中 ,雖然自己有許多的知識都不懂 ,但是能夠在同學(xué)的幫助下,老師的指導(dǎo)下解決一些問題 ,我覺得這就是進步 ,這就是收獲。通過這兩周的課程設(shè)計 ,讓我對 DSP的應(yīng)用有了更好的理解 ,同時對 LCD的顯示這一塊也學(xué)到了不少的東西 ,總之,這兩周的課程設(shè)計過的很充實 ,收獲很大。參考文獻鄒彥.DSP原理及應(yīng)用 .北京:電子工業(yè)出版社 .2001.1盧官明、宗肪 .數(shù)字音頻原理及應(yīng)用 .北京:機械工業(yè)出版社 .2001.6宋瑜.數(shù)字音頻及多媒體廣播接收系統(tǒng) .北京:世界廣播電視出版社.2003.12張韶高.數(shù)字聲頻技術(shù)原理及應(yīng)用 .北京:國防工業(yè)出版社 .2001.2林福宗.多媒體技術(shù)基礎(chǔ) .北京:清華大學(xué)出版社 .2001.6致謝在本次課程設(shè)計中 ,我常常會遇到自己弄不明白的問題 ,比如說程序看不懂,調(diào)試時顯示結(jié)果與預(yù)期不一致等等。 而每當(dāng)我遇到困難的時候 ,老師總會耐心地給我講解 ,幫助我發(fā)現(xiàn)問題 ,糾正錯誤 ;同學(xué)也會很熱情的幫助我修改和完善設(shè)計方案。在這樣一個良好的環(huán)境下 ,我順利地完成了本次 DSP課程設(shè)計 ,讓我發(fā)現(xiàn),提升了我的動手能力。!你們辛苦了 !你們辛苦了 !附錄設(shè)計程序////#include"MMRegs.h"#include"DspRegDefine.h"http://VC5402寄存器定義#include#include///*******************宏定義***************************************************************************/defineUCHARunsignedchardefineUINT16unsignedintdefineUINT32unsignedlongdefineTRUE1#defineFALSE0#defineLEN128//// LCD指令//基本指令集 RE0#defineCLEAR0x0001//清除顯示#defineRESAC0x0002//位址 ?位#defineSETPOINT0x0006//?入??定 ,游 ?右移 ,DDRAM位址 ??器 (AC)加 1#defineCURSOR0x000F//整??示,游 ??示 ,游 ?位置反白#defineMCURSOR0x0014//游?向右移 ?,ACAC+1#defineFUCSET0x0030//功能 ?定,BITMPU控制界面 ,基本指令集 ,默認(rèn)設(shè)置#defineCGRAMAC0x0040//?定CGRAM位址#defineDDRAMAC0x0080//?定DDRAM位址 //第一行 AC???80H..8FH//第二行AC???90H..9FH//第三行 AC???A0H..AFH//第四行 AC???B0H..BFH//#defineREADBFRS0,RW1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//BFAC6AC5AC4AC3AC2AC1AC0//?取忙碌旗 ?(BF)和位址//就是讀取指令寄存器 ,PORT8006,BF1,表示 LCD忙碌//#defineWRITERAMRS1,RW0,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//D7D6D5D4D3D2D1D0//?入?料到 RAM//就是寫數(shù)據(jù)寄存器 :PORT8005//#defineREADRAMRS1,RW1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0//D7D6D5D4D3D2D1D0//?取RAM的值//就是從數(shù)據(jù)寄存器 ?取?料,PORT8007//?充指令集 RE1defineIDLE0x01//待命模式defineCGRAMSET0x02//??位址或 RAM位址 ??defineREVERSE0x04//反白??defineSLEEP0x0c//??睡眠模式defineEFUCSET0x66//?充功能 ?定,8BITMPU控制界面 ,??充指令集作,???示ONdefineSISA0x40//?定IRAM位址或 ??位址defineSETGDRAM0x80//?定??RAM位址defineLength128//FFT的點數(shù)/////*端口定義 *///ioportUINT16port8002;ioportUINT16port8006;// 串行時鐘地址ioportUINT16port8007;// 串行數(shù)據(jù)地址///*全局變量定義 *///UINT16data_buff[LEN];UCHARdata_buffer[128];voidxint2_init//voidxint2_init//外部中斷 2初始化子程序voidxint2_initvoid;//voidxint2_initvoid;//外部中斷 2初始化子程序UCHARdata_picture[16*64];doublepr[128],pi[128],fr[128],fi[128],result[128];constdoublepp3.1415926;UINT16iii0;/**************************************************************************************所使用的函數(shù)原型 ****************************************************************************************/voidcpu_initvoid;//初始化CPUvoidDelayUINT16numbers;//延遲externvoiddelay_100usvoid;//100us延遲--指令之間的延遲externvoiddelay_1usvoid;//1us延遲--時鐘之間的延遲voiddelay_50msvoid;//50ms 延遲 --復(fù)位延遲voiddelay_20msvoid;//20ms 延遲 --清屏延遲voidSendByteUCHARdat;//串行發(fā)送一字節(jié)數(shù)據(jù)voidSendCMDUCHARdat;//寫指令寄存器 voidSendDatUCHARdat;//寫顯示數(shù)據(jù)或單字節(jié)字符voidDisplayUCHARx_add,UCHARdat1,UCHARdat2;//寫漢字到 LCD指定的位置

interruptvoidExtInt2;//2中斷子程序voidInitlcdvoid;//初始化2中斷子程序voiddisplay_lcd;voidbuffer;voiddata_switchunsignedchar*ptr;k,doublevoidkfftdoublepr[128],doublepi[128],intn,intfr[128],doublefi[128],intl,intil;k,double///************************************************************************************************函數(shù)定義 *******************************************************************************************/////函數(shù)名稱 :voidcpu_initvoid// 函數(shù)說明 : 初始化 CPU// 輸入?yún)?shù) : 無// 輸出參數(shù) : 無//*unsignedint*IMR0x0004;//使能int2中斷/*bit151:XINT2flag--write"1"toclearbit14-30:reservedbit21:XINT2Polarity--"1"risingeagebit10:XINT2Priority--"0"Highprioritybit01:XINT2Enable--"1"Enableinterrupt*/asm"rsbxINTM";//開總中斷interruptvoidExtInt2//中斷2中斷子程序*unsignedint*IFR0xFFFF;//清除所有中斷標(biāo)志 ,"寫1清0",這個語句可以省略,響應(yīng)中斷自動清除中斷標(biāo)志// 讀AD7822的轉(zhuǎn)換結(jié)果 data_buff[iii]port8002&0x00ff;iii++;ifiii256iii0;//在此設(shè)斷點 return;voidcpu_initvoidasm"nop";asm"nop";asm"nop";////CLKMDDEFINITIONS://PLLMULbit15-12-0000PLLmultiplier0multby1//PLLDIVbit11-0PLLdivider0divby1//PLLCOUNTbit10-3-11111111PLLcountersetto//PLLONOFFbit2-1PLLon//PLLNDIVbit1-1SelectPLLmode//PLLSTATUSbit1-xPLLStatusreadonly////000000x07ffCLKMD1XCLKIN//*unsignedint*CLKMD0x0;//switchtoDIVmodeclkout1/2clkinwhile*unsignedint*CLKMD&01!0;*unsignedint*CLKMD0x07ff;//switchtoPLLX1mode////ST0DEFINITIONS://ARPbit15-13-000Auxiliaryregisterpointer//TCbit12-1Test/controlflag//Cbit11-1Carryissetto1iftheresultofanadditiongeneratesacarry;itisclearedto0ifthe//resultofasubtractiongeneratesaborrow.//OVAbit10-0OverflowflagforaccumulatorA//OVBbit9-0OverflowflagforaccumulatorB//DPbit8-0-00000000Data-memorypagepointer////00011000000000000x1800Resetvalue////*unsignedint*ST00x1800;////ST1DEFINITIONS://BRAFbit15-0Block-repeatactiveflag//CPLbit14-1CompilermodeCPL0DP;CPL1SP//XFbit13-1XFstatus//HMbit12-0Holdmode//INTMbit11-1InterruptmodeINTM0,Allunmaskedinterruptsareenabled//Reserbit10-0Alwaysreadas0//OVMbit9-0Overflowmode//SXMbit8-1Sign-extensionmode//C16bit7-0Dual16-Bit/double-precisionarithmeticmode//FRCTbit6-0Fractionalmode//CMPTbit5-0Compatibilitymode//ASMbit4-0-00000Accumulatorshiftmode////01101001000000000x2900Resetvalue////*unsignedint*ST10x6900;////IPTRDEFINITIONS?//IPTRbit15-7-001111111Run-timeInterruptvectorlocation0x3f80fornow//MP/~MCbit6-1TurnoffinternalInstructionROMuseRAM//OVLYbit5-1TurnoninternalRAM//AVISbit4-1Addressvisibilityon//DROMbit3-0DataROMofFF00~FFFFisexternal//CLKOFFbit2-0Clockoutenabled,onlyforuseclkoutcpuclock//SMULbit1-1SaturatebeforemultiplyonMAC//SSTbit0-0Donotsaturatebeforestore////00111111111100100x3ff2/**unsignedint*PMST0x3FF2;////SWWSRDEFINITIONS?//XPAbit15-0Extendedprogramaddresscontrolbit.XPAisusedinconjunctionwiththeprogramspacefields//bits0through5toselecttheaddressrangeforprogramspacewaitstates//I/Obits14-12-111settowaitstatesforseven//Data1bits11-9 - 111SevenWaitstateforUpperdataspace0x8000-0xFFFF//Data2bits8-6-111SevenWaitstatesforLowerdataspace0x0000-0x7FFF//Prog1bits5-3-111SevenWaitstateforUpperprogramspace.xx8000-xxFFFF//Prog2bits2-0- 111SevenWaitstatesforProgramspace.xx0000-xx7FFF////1111111111111111-0x7fff/**unsignedint*SWWSR0x7fff;////SWCRDEFINITIONS?//Reservedbits15-1//SWSMbit0-1wait-statebasevaluesaremulitpliedby2//foraimumof14waitstates.////0000000000000001//*unsignedint*SWCR0x0001;////BSCRDEFINITIONS?//BNKCMPbit15-12-1111Bankcompare.Determinestheexternalmemory-banksize.BNKCMPisusedtomaskthefourMSBsof//anaddress.//11114k//11108k//110016k//100032k//000064kbetween//PS-DSbit11 - 1Oneextracycleisinsertedbetweenconsecutivedataandprogramreads//Reservedbits10-3-00000000//HBHbit2-0Thehpibusholderisdisabled//BHbit1-0Thedatabusholderisdisabled//EXIObit0-0Theexternalbusinterfacefunctionsasusual////1111100000000000//*unsignedint*BSCR0xf800;//asm"ssbxintm";//Disableallmaskinterrupts////IMRDEFINITIONS//Writinga1toanyIMRbitpositionenablesthecorrespondinginterruptwhenINTM0//Reservedbits15-14-xx//DMAC5bit13-0DMAchannel5interruptmaskbit//DMAC4bit12-0DMAchannel4interruptmaskbit//BXINT1/DMAC3bit11-0McBSP1transmitinterruptmaskbit,ortheDMAchannel3//BRINT1/DMAC2bit10-0McBSP1receiveinterruptmaskbit,ortheDMAchannel2//HPINTbit9- 0Hostto’54xinterrup/mask//INT3bit8-0Externalinterrupt3mask//TINT1/DMAC1bit7-0timer1interruptmaskbit,ortheDMAchannel1interruptmaskbit//DMAC0bit6-0reserved,ortheDMAchannel0interruptmaskbit//BXINT0bit5-0McBSP0transmitinterruptmaskbit//BRINT0bit4-0McBSP0receiveinterruptmaskbit// TINT0 bit3-0Timer 0interrupt maskbit// INT2bit 2 -0External interrupt2 maskbit// INT1bit 1 -0External interrupt1 maskbit// INT0bit 0 -0External interrupt0 maskbit////0000000000000000//*unsignedint*IMR0x0;////IFRDEFINITIONS//Writinga1toanyIFRbitpositionclearthecorrespondinginterruptmask,whencorrespondinginterruptoccurIFRcorrespondingbit1//Reservedbits15-14-xx//DMAC5bit13-1DMAchannel5interruptflagbit//DMAC4bit12-1DMAchannel4interruptflagbit//BXINT1/DMAC3bit11-1McBSP1transmitinterruptflagbit,ortheDMAchannel3//BRINT1/DMAC2bit10-1McBSP1receiveinterruptflagbit,ortheDMAchannel2//HPINTbit9- 1Hostto’54xinterrutpflak//INT3bit8-1Externalinterrupt3flag//TINT1/DMAC1bit7-1timer1interruptflagbit,ortheDMAchannel1interruptmaskbit//DMAC0bit6-1reserved,ortheDMAchannel0interruptflagbit//BXINT0bit5-1McBSP0transmitinterruptflagbit//BRINT0bit4-1McBSP0receiveinterruptflagbit//TINT0 bit 3-1Timer0interruptflag bit//INT2bit 2 -1Externalinterrupt 2flag bit//INT1bit 1 -1Externalinterrupt 1flag bit//INT0bit 0 -1Externalinterrupt 0flag bit////1111111111111111/**unsignedint*IFR0xffff;//asm"nopasm"nop";asm"nop";/************************************************************函數(shù)名稱 : void Delayintnumbers函數(shù)說明 : 延時輸入

溫馨提示

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

最新文檔

評論

0/150

提交評論