FIR濾波器的信號(hào)濾波_第1頁(yè)
FIR濾波器的信號(hào)濾波_第2頁(yè)
FIR濾波器的信號(hào)濾波_第3頁(yè)
FIR濾波器的信號(hào)濾波_第4頁(yè)
FIR濾波器的信號(hào)濾波_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘要本文介紹了一種基于TMS320182 DSP芯片A/D模塊進(jìn)行波形采集后濾波處理且最終在液晶顯示器顯示所采集的波形圖。系統(tǒng)利用DSP內(nèi)置A/D功能對(duì)外部模擬電壓信號(hào)(波形)采集轉(zhuǎn)換成數(shù)字信號(hào),然后在用外部LCD顯示屏顯示所采集波形的形狀。本文給出了整體設(shè)計(jì)方案,重點(diǎn)介紹了DSP模數(shù)轉(zhuǎn)換功能和液晶顯示(LCD)原理。實(shí)驗(yàn)結(jié)果表明:系統(tǒng)的LCD所顯示的波形和實(shí)際采集的模擬信號(hào)有良好的準(zhǔn)確性,能進(jìn)一步加深讀者對(duì)FIR濾波器的了解和其參數(shù)的修改。關(guān)鍵詞:TMS32OF2812 DSP,FIR濾波器,波形采集,液晶顯示,數(shù)字濾波IAbstractThis paper introduces a kin

2、d of waveform acquisition module based on TMS320182 DSP chip A/D after filtering and ultimately displays in the LCD display. The system uses DSP built-in A/D function to exchange the analog voltage signal to the digital signal, and then uses the external LCD to display the waveform shape. This paper

3、 gives the overall design scheme, and put emphasis on the DSP analog-to-digital conversion function and liquid crystal display (LCD). The experimental results show that: the LCD of the system displays of the waveform and the actual analog signal with good accuracy, it can further deepen the understa

4、nding of the FIR filter and its parameter modification.Keywords:TMS32OF2812 DSP, the FIR filter, Waveform acquisition,Liquid crystal display,Digital filtering II目錄摘要IAbstractII第1章 緒論11.1 引言11.2 本課題要解決的問(wèn)題11.3 課題的意義和目的1第2章 FIR的濾波器的信號(hào)濾波系統(tǒng)的軟硬件設(shè)計(jì)22.1 系統(tǒng)設(shè)計(jì)概述22.2 課題主要芯片介紹22.2.1 主控芯片介紹22.2.2 液晶顯示(LCD)模塊32.2

5、.3 液晶顯示器與DSP 的連接:32.2.4 A/D數(shù)據(jù)采集模塊42.2.5 鍵盤模塊42.2.6 Wintech綜合信號(hào)發(fā)生器介紹42.3 FIR工作原理及其計(jì)算參數(shù)62.4 系統(tǒng)硬件連接72.5 系統(tǒng)軟件設(shè)計(jì)82.5.1 系統(tǒng)程序框圖82.5.2 程序調(diào)試9參考文獻(xiàn)10III第1章 緒論1.1 引言數(shù)字信號(hào)處理是20世紀(jì)60年代,隨著信息學(xué)科和計(jì)算機(jī)學(xué)科的高速發(fā)展而迅速發(fā)展起來(lái)的一門新興學(xué)科。它的重要性日益在各個(gè)領(lǐng)域的應(yīng)用中表現(xiàn)出來(lái)。其主要標(biāo)志是兩項(xiàng)重大進(jìn)展,即快速傅里葉變換(FFT)算法的提出和數(shù)字濾波器設(shè)計(jì)方法的完善。數(shù)字信號(hào)處理是把信號(hào)用數(shù)字或符號(hào)表示成序列,通過(guò)計(jì)算機(jī)或通用(專用

6、)信號(hào)處理設(shè)備,用數(shù)值計(jì)算方法進(jìn)行各種處理,達(dá)到提取有用信息便于應(yīng)用的目的。例如:濾波、檢測(cè)、變換、增強(qiáng)、估計(jì)、識(shí)別、參數(shù)提取、頻譜分析等。數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們所需要的信號(hào)形式。數(shù)字信號(hào)處理是將信號(hào)以數(shù)字方式表示并處理的理論和技術(shù)。數(shù)字信號(hào)處理與模擬信號(hào)處理是信號(hào)處理的子集。數(shù)字信號(hào)處理技術(shù)及設(shè)備具有靈活、精確、抗干擾強(qiáng)、設(shè)備尺寸小、造價(jià)低、速度快等突出優(yōu)點(diǎn),這些都是模擬信號(hào)處理技術(shù)與設(shè)備所無(wú)法比擬的。1.2 本課題要解決的問(wèn)題通過(guò)本次課程設(shè)計(jì),綜合運(yùn)用數(shù)字信號(hào)處理、DSP技術(shù)課程以及其他有關(guān)

7、先修課程的理論和實(shí)際知識(shí)分析和解決具體問(wèn)題,使所學(xué)知識(shí)得到進(jìn)一步鞏固、深化和發(fā)展。初步培養(yǎng)學(xué)生對(duì)工程設(shè)計(jì)的獨(dú)立工作能力,掌握電子系統(tǒng)設(shè)計(jì)的一般方法。通過(guò)課程設(shè)計(jì),基本技能的訓(xùn)練,如查閱設(shè)計(jì)資料和手冊(cè)、程序的設(shè)計(jì)、調(diào)試等,提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力。本題目為FIR濾波器的信號(hào)濾波,目的是掌握AD轉(zhuǎn)換的基本過(guò)程和程序處理過(guò)程,學(xué)習(xí)通過(guò)對(duì)采樣值進(jìn)行計(jì)算產(chǎn)生混疊波形,同時(shí)熟悉掌握FIR濾波器并能對(duì)其參數(shù)進(jìn)行調(diào)整。1.3 課題的意義和目的通過(guò)本實(shí)驗(yàn)可以了解TMS32OF2812數(shù)字信號(hào)處理器內(nèi)部運(yùn)行的一些機(jī)制,并可以了解它內(nèi)部的一些模塊的使用。30第2章 FIR的濾波器的信號(hào)濾波系統(tǒng)的軟硬件設(shè)計(jì)2

8、.1 系統(tǒng)設(shè)計(jì)概述本文基于TMS320182 DSP芯片A/D模塊進(jìn)行波形采集后濾波處理且最終在液晶顯示器顯示所采集的波形圖。系統(tǒng)利用DSP內(nèi)置A/D功能對(duì)外部模擬電壓信號(hào)(波形)采集轉(zhuǎn)換成數(shù)字信號(hào),然后在用外部LCD顯示屏顯示所采集波形的形狀。2.2 課題主要芯片介紹2.2.1 主控芯片介紹數(shù)字信號(hào)處理器(digital signal processors 簡(jiǎn)稱DSP)誕生于20 世紀(jì)70 年代,專門為實(shí)時(shí)數(shù)字信號(hào)處理而設(shè)計(jì)的一種可編程的嵌入式微處理器。它以數(shù)字器件特有的穩(wěn)定性,可重復(fù)性,可編程性和易于實(shí)現(xiàn)自適應(yīng)處理特點(diǎn),取得了突飛猛進(jìn)的發(fā)展。近年來(lái),隨著DSP 性能的日趨完善,功耗的逐步降

9、低,開(kāi)發(fā)環(huán)境的不斷改進(jìn)以及價(jià)格的不斷下調(diào),其應(yīng)用領(lǐng)域已拓展到國(guó)民經(jīng)濟(jì)生活的各個(gè)方面。本系統(tǒng)所采用的是TI公司的TMS320vc5509A,TMS320vc5509A是TI公司推出的定點(diǎn)數(shù)字信號(hào)處理器C5000系列中的一種,TMS320vc5509A通過(guò)增加乘累加MAC單元,增強(qiáng)了DSP的運(yùn)算能力,而且性能更好,功耗更低,是目前TMS320家族中最省電的芯片。該芯片上的資源有:16Mbitn曲196k16bit sRAM2500昏TECPLD模塊上留有TTAG插口,用戶可以通過(guò)仿真器和CCS下載程序和進(jìn)行實(shí)驗(yàn);其低功耗設(shè)計(jì)。比上一代c54xx器件功耗低3咣左右;處理速度更快,雙核結(jié)構(gòu),處理速度4

10、00MIPs;軟件程序兼容c54xx DSP;片內(nèi)存貯空間128K×16Bit;大容量SDRAM設(shè)計(jì):4M×16Bit;2路10bit片上A/D接口;8M bit擴(kuò)展FLASH,存儲(chǔ)大量固化程序和數(shù)據(jù);設(shè)計(jì)有用戶可以測(cè)試指示燈;DSP擴(kuò)展總線,包括數(shù)據(jù)、地址、I/O、控制;4組標(biāo)準(zhǔn)擴(kuò)展連接器,為用戶進(jìn)行二次開(kāi)發(fā)提供條件;具有IEEEll49.1相兼容的邏輯掃描電路,該電路僅用于測(cè)試和仿真;+5v電源輸入,內(nèi)部+3.3V、+1.6V電源管理;高保真語(yǔ)音接口設(shè)計(jì),雙路語(yǔ)音采集,每路48K/S;USB2.0接口設(shè)計(jì);4層板設(shè)計(jì)下藝,穩(wěn)定可靠。實(shí)驗(yàn)箱上帶有ICETEKCRT顯示控制

11、模塊,實(shí)驗(yàn)箱上有紅、黃、綠三種顏色十二只指示燈可供模擬交通燈用。在該系統(tǒng)中利用定時(shí)器中斷來(lái)控制交通燈的亮滅以及間隔時(shí)間,同時(shí)利用了鍵盤中斷來(lái)進(jìn)行模擬突發(fā)事件發(fā)生時(shí)的控制。2.2.2 液晶顯示(LCD)模塊液晶模塊選擇MS320VC5402芯片,該芯片可以與復(fù)雜可編程邏輯器件CPLD相結(jié)合,大大簡(jiǎn)化系統(tǒng),使系統(tǒng)更精簡(jiǎn),體積更小。DSP的顯示控制軟件負(fù)責(zé)將微處理器處理后的顯示數(shù)據(jù)映射到顯示緩沖區(qū)中,并由LCD顯示出來(lái),從而完成一次測(cè)量。(1) 液晶顯示模塊的訪問(wèn)、控制是由2812A DSP 對(duì)擴(kuò)展接口的操作完成。控制口的尋址:命令控制接口的地址為0x108001,數(shù)據(jù)控制接口的地址為0x10800

12、3 和0x108004,輔助控制接口的地址為0x108002。(2) 顯示控制方法:液晶顯示模塊中有兩片顯示緩沖存儲(chǔ)器,分別對(duì)應(yīng)屏幕顯示的象素,向其中寫(xiě)入數(shù)值將改變顯示,寫(xiě)入“1”則顯示一點(diǎn),寫(xiě)入“0”則不顯示。其地址與象素的對(duì)應(yīng)方式如下:制字,然后再向輔助控制接口寫(xiě)入0。下面給出的是基本命令字、解釋和C 語(yǔ)言控制語(yǔ)句舉例:顯示開(kāi)關(guān):0x3f 打開(kāi)顯示;0x3e 關(guān)閉顯示;設(shè)置顯示起始行:0x0c0+起始行取值,其中起始行取值為0 至63;設(shè)置操作頁(yè):0x0b8+頁(yè)號(hào),其中頁(yè)號(hào)取值為0-7;設(shè)置操作列:0x40+列號(hào),其中列號(hào)為取值為0-63;寫(xiě)顯示數(shù)據(jù):在使用命令控制字選擇操作位置(頁(yè)數(shù)、列

13、數(shù))之后,可以將待顯示的數(shù)據(jù)寫(xiě)入液晶顯示模塊的緩存。將數(shù)據(jù)發(fā)送到相應(yīng)數(shù)據(jù)控制I/O 接口即可。2.2.3 液晶顯示器與DSP 的連接:圖12.2.4 A/D數(shù)據(jù)采集模塊TMS320F2812帶內(nèi)置采樣保持(SH)的12位模數(shù)轉(zhuǎn)換模塊(ADC);有多達(dá)16個(gè)的模擬輸人通道(ADCIN0ADClN15);有自動(dòng)排序的能力,一次可執(zhí)行最多16通道的“自動(dòng)轉(zhuǎn)換”,而每次轉(zhuǎn)換的通道都可通過(guò)編程來(lái)選擇;有兩個(gè)獨(dú)立的最多可選擇8個(gè)模擬轉(zhuǎn)換通道的排序器(SEQ1和SEQ2)可以獨(dú)立工作在雙排序器模,或者級(jí)聯(lián)之后工作在一個(gè)最多可選擇16個(gè)模擬轉(zhuǎn)換通道的排序器模式;可單獨(dú)訪問(wèn)16個(gè)結(jié)果寄存器(RESULT0RES

14、ULT15)用來(lái)存儲(chǔ)轉(zhuǎn)換結(jié)果;多個(gè)觸發(fā)源可以啟動(dòng)AD轉(zhuǎn)換5。模數(shù)轉(zhuǎn)換的程序控制模數(shù)轉(zhuǎn)換相對(duì)于計(jì)算機(jī)來(lái)說(shuō)是一個(gè)較為緩慢的過(guò)程。一般采用中斷方式啟動(dòng)轉(zhuǎn)換或保存結(jié)果,這樣在CPU 忙于其他工作時(shí)可以少占用處理時(shí)間。設(shè)計(jì)轉(zhuǎn)換程序應(yīng)首先考慮處理過(guò)程如何與模數(shù)轉(zhuǎn)換的時(shí)間相匹配,根據(jù)實(shí)際需要選擇適當(dāng)?shù)挠|發(fā)轉(zhuǎn)換的手段,也要能及時(shí)地保存結(jié)果。2.2.5 鍵盤模塊1. EMIF 接口TMS320F2812DSP 的擴(kuò)展存儲(chǔ)器接口(EMIF)用來(lái)與大多數(shù)外圍設(shè)備進(jìn)行連接,典型應(yīng)用如連接片外擴(kuò)展存儲(chǔ)器等。這一接口提供地址連線、數(shù)據(jù)連線和一組控制線。 F2812 EVM將這些擴(kuò)展線引到了板上的擴(kuò)展插座上供擴(kuò)展使用。2.

15、 鍵盤連接原理鍵盤的掃描碼由 DSP 的擴(kuò)展地址 0x8001 給出,當(dāng)有鍵盤輸入時(shí),讀此端口得到掃描碼,當(dāng)無(wú)鍵被按下時(shí)讀此端口的結(jié)果為0。9 個(gè)按鍵分別讀回 1-9 這九個(gè)數(shù)字。2.2.6 Wintech綜合信號(hào)發(fā)生器介紹圖2 右上部有一個(gè)紅色的電源指示燈以及信號(hào)發(fā)生器電源開(kāi)關(guān),當(dāng)信號(hào)源上電后,該指示燈應(yīng)處于點(diǎn)亮狀態(tài)。圖 2 上部是一個(gè)兩行字符型的液晶顯示屏。圖 2中間部分有錄音,放音,循環(huán)三個(gè)按鈕,一個(gè)錄音指示燈(紅色)和一個(gè)麥克風(fēng)。麥克風(fēng)可在錄音時(shí)作為語(yǔ)音信號(hào)的輸入端。當(dāng)信號(hào)發(fā)生器處于錄音狀態(tài)時(shí),錄音指示燈應(yīng)點(diǎn)亮。按放音鈕時(shí),可以從揚(yáng)聲器或耳機(jī)中聽(tīng)到錄在信號(hào)發(fā)生器中的語(yǔ)音信號(hào)。按住循環(huán)鈕

16、不放,可以循環(huán)播放錄下的語(yǔ)音信號(hào)。當(dāng)按下錄音按鈕后, 信號(hào)發(fā)生器正面的紅色錄音指示燈應(yīng)處于點(diǎn)亮狀態(tài)。此時(shí),若錄音輸入端口沒(méi)有接入音頻線, 信號(hào)發(fā)生器會(huì)將從麥克風(fēng)輸入的語(yǔ)音信號(hào)錄下。若錄音輸入端口有接入音頻線, 信號(hào)發(fā)生器就會(huì)錄下從音頻線輸入的語(yǔ)信號(hào)。圖1 下部有控制A 路和B 路波形和頻率的四個(gè)按鈕以及復(fù)位按鈕,可控制輸出1030KHz 的方波,三角波,正弦波以及白噪聲四種波形。在按鈕上面有一排共16 個(gè)狀態(tài)指示燈。其中綠燈表示輸出波形種類,紅燈表示輸出波形頻率。左側(cè)8 個(gè)燈表示A路波形輸出的狀態(tài),右面8 個(gè)燈表示B路波形輸出的狀態(tài)。當(dāng)A路波形輸出處于任一狀態(tài)時(shí),上面8 個(gè)燈中均會(huì)有一個(gè)紅燈和

17、一個(gè)綠燈點(diǎn)亮(輸出白噪聲時(shí)紅燈狀態(tài)無(wú)意義)。B 路波形輸出同理。頻率共分4 檔, 分別10100 Hz , 1001 KHz , 1 K10 KHz , 10K30KHz。當(dāng)輸出信號(hào)的頻率落入哪一檔的范圍時(shí),在信號(hào)源正面,與該檔位相對(duì)應(yīng)的紅色指示燈會(huì)點(diǎn)亮。波形也有四種:方波,三角波,正弦波和白噪聲4 種波形可通過(guò)按鈕選擇,當(dāng)輸出為某一特定波形時(shí),信號(hào)源正面相應(yīng)的綠色指示燈會(huì)點(diǎn)亮。使用音頻信號(hào)線錄音時(shí),需要注意信號(hào)與電源的共地問(wèn)題,最好使用與信號(hào)發(fā)生器配套的dsp 評(píng)估板作為音源,不然可能會(huì)產(chǎn)生噪音。圖1 左部上下有兩個(gè)揚(yáng)聲器。通過(guò)音頻線將一個(gè)音源的輸出接入到揚(yáng)聲器輸入端口可以從揚(yáng)聲器中直接聽(tīng)到

18、該音源的輸出。在放音或循環(huán)放音時(shí),將耳機(jī)輸入線插入到耳機(jī)輸入端口可以從耳機(jī)中聽(tīng)到信號(hào)發(fā)生器的輸出。圖22.3 FIR工作原理及其計(jì)算參數(shù)濾波器的參數(shù):采樣頻率15kHz,帶通濾波500Hz-1kHz,增益40dB,階數(shù)25分別用于低通濾波和高通濾波兩種方式進(jìn)行濾波。本實(shí)驗(yàn)程序在AD中斷對(duì)AD進(jìn)行連續(xù)采樣。由于需要實(shí)時(shí)混頻,所以交替轉(zhuǎn)換通道3和通道混頻的波形通過(guò)FIR濾波器,得到輸出的波形。低通濾波時(shí),輸入頻率在500Hz-1kHz之間才能通過(guò)濾波器。高通濾波時(shí),輸入頻率在高于1kHz的才能通過(guò)濾波器。2.4 系統(tǒng)硬件連接圖2 2812與TLV320AIC23的連接示意圖表1 TLV320AIC

19、23映射寄存器定義圖2為AIC23和F2812的硬件連接圖,AIC23有兩個(gè)接口,一個(gè)是控制口,用于設(shè)置AIC23的工作參數(shù);另一個(gè)是數(shù)據(jù)口,用于傳輸AIC23的A/D和D/A數(shù)據(jù)。本文設(shè)計(jì)將2812的MSBSP0配置成IIS,MSBSP的發(fā)送和接受時(shí)鐘均由AIC23來(lái)提供。表1為AIC23的映射寄存器的地址,按鍵數(shù)據(jù)回讀寄存器CTRKEY的映射地址為0x108001,清除鍵盤寄存器CTRCLKEY的映射地址為0x108002。2.5 系統(tǒng)軟件設(shè)計(jì)2.5.1 系統(tǒng)程序框圖程序開(kāi)始先初始化,然后根據(jù)鍵盤的鍵值做出相應(yīng)的處理。如果鍵值為1則LCD顯示兩天波形,同時(shí)LED燈亮,如果鍵值為2則顯示混疊

20、波形,為8則交通燈循環(huán);如果鍵值為9則停止波形,為4則進(jìn)行低通濾波,為5則進(jìn)行高通濾波。2.5.2 程序調(diào)試1、首先先將硬件線路連接好,將。將一根信號(hào)線一端插入信號(hào)源波形輸出A 端口,另一端插入試驗(yàn)箱上ADCIN2 端口。將另一根信號(hào)線一端插入信號(hào)源波形輸出B 端口,另一端插入試驗(yàn)箱上ADCIN3 端口。將波形輸出A 波形選擇調(diào)為正弦波,頻率調(diào)整調(diào)至100-1KHz。將波形輸出B 波形選擇調(diào)為正弦波,頻率調(diào)整調(diào)至1K-10KHz。2、設(shè)置Code Composer Studio 2.2 在硬件仿真(Emulater)方式下運(yùn)行。3、啟動(dòng)Code Composer Studio 2.2 ,選擇菜

21、單 Debug->Reset CPU。4、新建工程文件,添加各種庫(kù)文件和源文件,編寫(xiě)主程序。5、編譯調(diào)試,檢查錯(cuò)誤;編譯通過(guò)后下載程序,進(jìn)行在線仿真,觀察效果。參考文獻(xiàn)1 邵明;李振軍;郭春華高精度交流采樣系統(tǒng)研制微計(jì)算機(jī)信息,2006,23: 2262272 Texas Instruments. TMS320F120xDSP Peripherals Reference Guide. 2003 3 智澤英,楊晉嶺,劉輝.DSP控制技術(shù)實(shí)踐M.北京:中國(guó)電力出版社,2009.4 程佩青, 數(shù)字信號(hào)處理教程M.北京:清華大學(xué)出版社,2001年.5 李維諟,郭強(qiáng).液晶顯示應(yīng)用技術(shù)M.北京:電子

22、工業(yè)出版社,1999.6 三恒科技.TMS320F2812 DSP原理與應(yīng)用實(shí)例M.北京:電子工業(yè)出版社,2009.7 智澤英,楊晉嶺,劉輝.DSP控制技術(shù)實(shí)踐M.北京:中國(guó)電力出版社,2009.附錄一 源程序#include "DSP281x_Device.h"/ Peripheral address definitions#ifdef EXAMPLE_BIOS #include "example_BIOS.h"#endif#ifdef EXAMPLE_NONBIOS #include "example_nonBIOS.h"#end

23、if#include "f2812a.h"#include "ctr.h"#include "demo.h"#include "math.h"/ for LCD control#define LCDDELAY 1#define LCDCMDTURNON 0x3f#define LCDCMDTURNOFF 0x3e#define LCDCMDSTARTLINE 0xc0#define LCDCMDPAGE 0xb8#define LCDCMDVERADDRESS 0x40#define LCDLEFTPAGE 0#d

24、efine LCDRIGHTPAGE 1#define LCDDATABYTE 1#define LCDDATAWORD 2#define STRINGREVERSE 1#define STRINGNOREVERSE 0#define T46uS0x0d40#define SCANCODE_0 0x70#define SCANCODE_1 0x69#define SCANCODE_2 0x72#define SCANCODE_3 0x7A#define SCANCODE_4 0x6B#define SCANCODE_5 0x73#define SCANCODE_6 0x74#define SC

25、ANCODE_7 0x6C#define SCANCODE_8 0x75#define SCANCODE_9 0x7D#define SCANCODE_Del 0x49#define SCANCODE_Enter 0x5A#define SCANCODE_Plus 0x79#define SCANCODE_Minus 0x7B#define SCANCODE_Mult 0x7C#define SCANCODE_Divid 0x4A#define SCANCODE_Num 0x77#define led *(int *)0xc0000#define SOUNDBUFFERLENGTH 128vo

26、id FFT(float dataR128,float dataI128);#define pi 3.1415926#define X0_b 16#define Y0_b 32#define X0_t 16#define Y0_t 16#define led *(int *)0xc0000void Delay(unsigned int nTime);/ 延時(shí)子程序void TurnOnLCD();/ 打開(kāi)顯示void LCDCLS();/ 清除屏幕顯示內(nèi)容void Gpio_select(void);void error(int);void program_stop();char Conver

27、tScanToChar(unsigned char cScanCode);void RefreshLEDArray();/ 刷新顯示void SetLEDArray(int nNumber);/ 修改顯示內(nèi)容unsigned int uWork,bLCD,nScanCode,nMode,bShowAD;int nModeAD;unsigned int w128;float sin_tab128,cos_tab128;float fDataR128,fDataR1128,fDataI128;interrupt void adc_isr(void);Uint16 var1 = 0;Uint16 v

28、ar2 = 0;Uint16 var3 = 0;Uint16 test_count = 0;Uint16 Test_flag = 0;Uint16 Test_var = 0;Uint16 Test_status32;struct CPUTIMER_VARS CpuTimer0;int jishu=0;int jishu1=0;unsigned int uPort8000;Uint16 LoopCount;Uint16 ConversionCount;int Position;int nBW=0;/常寫(xiě)0,寫(xiě)1是反寫(xiě)液晶屏。unsigned char cKey,cOldKey;Uint16 Vo

29、ltage1256;Uint16 Voltage2256;Uint16 ad1,ad2;Uint16 jia256;unsigned int bBreak;/*fir參數(shù)*/#define PI 3.1415926#define FIRNUMBER 25#define SIGNAL1F 1000#define SIGNAL2F 4500/*低通濾波器系數(shù)可濾掉1k以上的波形,保留1k一下的波形*/float fHnFIRNUMBER= 0.126,0.085,0.000,-0.103,-0.189,-0.216,-0.155,-0.000,0.233,0.504,0.756,0.935,1.0

30、00,0.935,0.756, 0.504,0.233,-0.000,-0.155,-0.216,-0.189,-0.103, 0.000, 0.085, 0.126;/*高通濾波器系數(shù)可濾掉1k以下的波形,保留1k以上的波形*/float fLnFIRNUMBER=-0.031,-0.021,-0.000,0.025, 0.047, 0.054, 0.038, 0.000,-0.058,-0.126,-0.189,-0.233, 1.000,-0.233,-0.189,-0.126,-0.058, 0.000, 0.038, 0.054, 0.047, 0.025,-0.000,-0.021

31、,-0.031;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;float fIn256,fOut256;int nIn,nOut;float FIR();float FIR1();float InputWave();int j,a=0;/int i;#define LBDS (*(unsigned int *)0xc0000)/ 子程序接口void Delay11(unsigned int nDelay);/ 延時(shí)子

32、程序unsigned int uLED4=1,2,4,8;/ 控制字,逐位置1: 0001B 0010B 0100B 1000B Uint16 d=0; Uint16 h=0;unsigned int uLed1122= 1,0x40,2,0x40,4,0x40, 0,0x48,0,0x50,0,0x60, 8,0x40,0x10,0x40,0x20,0x40, 0,0x41,0,0x42,0,0x44, ;void Gpio_select(void);void Gpio_PortAB(void);int nCount;int nCountt;/* Function: main()* Desc

33、ription: Main function for F281x example.*/void main(void)int i,nCount1=0;/* CPU Initialization */InitSysCtrl();/ Initialize the CPU (FILE: SysCtrl.c)/ Section secureRamFuncs contains user defined code that runs from CSM secured RAMmemcpy(&secureRamFuncs_runstart,&secureRamFuncs_loadstart,&a

34、mp;secureRamFuncs_loadend - &secureRamFuncs_loadstart);/* Main Loop */ bLCD=nMode=0;for ( i=0;i<8;i+ )ledxi=(i<<4)|8;/ 生成顯示列控制字for ( i=0;i<SOUNDBUFFERLENGTH;i+ )sin_tabi=sin(pi*2*i/SOUNDBUFFERLENGTH);cos_tabi=cos(pi*2*i/SOUNDBUFFERLENGTH);LCDSetDelay(1);LCDSetScreenBuffer(nScreenBuff

35、er);*(int *)0x108000=0x80;/ 初始化CTRDelay(LCDDELAY);*(int *)0x108000=0x0;Delay(LCDDELAY);*(int *)0x108000=0x80;Delay(LCDDELAY);*(int *)0x108007=0;/ 關(guān)閉東西方向的交通燈Delay(LCDDELAY);*(int *)0x108007=0x40;/ 關(guān)閉南北方向的交通燈Delay(LCDDELAY);*(int *)0x108007=0x0c1;/*(int *)0x108000=0x81; / 打開(kāi)顯示LCDTurnOn();LCDPutCString

36、(str8,CCXAD,CCYAD,6,1);i=*(int *)0x108002;k0=k1=0; cKey=cOldKey=0;for ( i=0;i<1024;i+ )nScreenBufferi=0;struGraph.pData=nGraphBuf2+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph.uWindowX1=128;struGraph.uW

37、indowY1=32;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0;struGraph1.pData=nGraphBuf1+20;struGraph1.uDataMode=DATAINTMODE;struGraph1.uDataLength=128;struGraph1.uMaxValue=2704;struGraph1.uWindowX0=0;struGraph1.uWindow

38、Y0=32;struGraph1.uWindowX1=128;struGraph1.uWindowY1=64;struGraph1.nOriginX=0;struGraph1.nOriginY=32;struGraph1.uLineMode=LINEMODE;struGraph1.bShowXCcoordinate=0;struGraph1.bShowYCcoordinate=0;nMode=MODEADC;LCDCLS(); EALLOW; SysCtrlRegs.HISPCP.all = 0x3; / HSPCLK = SYSCLKOUT/6 DINT;/ Gpio_PortAB() In

39、itPieCtrl(); IER = 0x0000; IFR = 0x0000; EALLOW; / This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; EDIS; / This is needed to disable write to EALLOW protected registers AdcRegs.ADCTRL1.bit.RESET = 1;/ Reset the ADC moduleasm(" RPT #10 | NOP");/ Must

40、 wait 12-cycles (worst-case) for ADC reset to take effect AdcRegs.ADCTRL3.all = 0x00C8;/ first power-up ref and bandgap circuits AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;/ Power up bandgap/reference circuitryDelay(200); / Delay before powering up rest of ADCAdcRegs.ADCTRL3.bit.ADCPWDN = 1;/ Power up rest

41、 of ADCDelay(200); / Delay after powering up ADC/ Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; / Enable CPU Interrupt 1 EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM LoopCount = 0; ConversionCount = 0; / Configure ADC AdcRegs.ADCMAXCONV.

42、all = 0x0001; / Setup 2 conv's on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x2; / Setup ADCINA3 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x3; / Setup ADCINA2 as 2nd SEQ1 conv. AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; / Enable EVASOC to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; / Ena

43、ble SEQ1 interrupt (every EOS)/ Configure EVA/Assumes EVA Clock is already enabled in InitSysCtrl(); EvaRegs.T1CMPR = 0x0080; / Setup T1 compare value EvaRegs.T1PR = 0x500; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0x1042; / Enable timer 1 co

44、mpare (upcount mode) bBreak=nModeAD=0; cKey=0;cOldKey=0;nCount1=0; nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30; fStepSignal2=2*PI*1.4;while ( 1 ) Delay(100);nScanCode=*(int *)0x108001;nScanCode&=0x0ff;uWork=*(int *)0x108002;if ( nScanCode!=0 && nScanCode

45、!=0x0ff )if ( nScanCode=9 ) AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0;break;elsecKey=nScanCode; switch ( cKey )case 1:/*兩路ad顯示*/ nModeAD=0;struGraph.pData=nGraphBuf2+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph

46、.uWindowX1=128;struGraph.uWindowY1=32;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0;struGraph1.pData=nGraphBuf1+20;struGraph1.uDataMode=DATAINTMODE;struGraph1.uDataLength=128;struGraph1.uMaxValue=2704;struGraph1.uWi

47、ndowX0=0;struGraph1.uWindowY0=32;struGraph1.uWindowX1=128;struGraph1.uWindowY1=64;struGraph1.nOriginX=0;struGraph1.nOriginY=32;struGraph1.uLineMode=LINEMODE;struGraph1.bShowXCcoordinate=0;struGraph1.bShowYCcoordinate=0; nCount=1; *(int *)0x108007=uLed1nCount0;/ 設(shè)置指示燈狀態(tài) *(int *)0x108007=uLed1nCount1;

48、 Delay11(100); *(int *)0x108007=uLed1nCount0; LBDS=2;/ 正向順序送控制字 Delay11(1000);break;case 2:/*混疊顯示*/ nModeAD=1;struGraph.pData=nGraphBuf1+20;struGraph.uDataMode=DATAINTMODE;struGraph.uDataLength=128;struGraph.uMaxValue=2704;struGraph.uWindowX0=0;struGraph.uWindowY0=0;struGraph.uWindowX1=128;struGraph

49、.uWindowY1=64;struGraph.nOriginX=0;struGraph.nOriginY=0;struGraph.uLineMode=LINEMODE;struGraph.bShowXCcoordinate=0;struGraph.bShowYCcoordinate=0; nCount=2; *(int *)0x108007=uLed1nCount0;/ 設(shè)置指示燈狀態(tài) *(int *)0x108007=uLed1nCount1; Delay11(100); *(int *)0x108007=uLed1nCount0; break; case 3: / 定義指示燈寄存器地址和寄存器類型 LBDS=15;/ 正向順序送控制字 Delay11(1000);/

溫馨提示

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

評(píng)論

0/150

提交評(píng)論