版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本文介紹了一種基于TMS320182 DSP芯片A/D模塊進行波形采集后濾波處理且最終在液晶顯示器顯示所采集的波形圖。系統(tǒng)利用DSP內(nèi)置A/D功能對外部模擬電壓信號(波形)采集轉(zhuǎn)換成數(shù)字信號,然后在用外部LCD顯示屏顯示所采集波形的形狀。本文給出了整體設計方案,重點介紹了DSP模數(shù)轉(zhuǎn)換功能和液晶顯示(LCD)原理。實驗結(jié)果表明:系統(tǒng)的LCD所顯示的波形和實際采集的模擬信號有良好的準確性,能進一步加深讀者對FIR濾波器的了解和其參數(shù)的修改。關鍵詞: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 本課題要解決的問題11.3 課題的意義和目的1第2章 FIR的濾波器的信號濾波系統(tǒng)的軟硬件設計22.1 系統(tǒng)設計概述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綜合信號發(fā)生器介紹42.3 FIR工作原理及其計算參數(shù)62.4 系統(tǒng)硬件連接72.5 系統(tǒng)軟件設計82.5.1 系統(tǒng)程序框圖82.5.2 程序調(diào)試9參考文獻10III第1章 緒論1.1 引言數(shù)字信號處理是20世紀60年代,隨著信息學科和計算機學科的高速發(fā)展而迅速發(fā)展起來的一門新興學科。它的重要性日益在各個領域的應用中表現(xiàn)出來。其主要標志是兩項重大進展,即快速傅里葉變換(FFT)算法的提出和數(shù)字濾波器設計方法的完善。數(shù)字信號處理是把信號用數(shù)字或符號表示成序列,通過計算機或通用(專用
6、)信號處理設備,用數(shù)值計算方法進行各種處理,達到提取有用信息便于應用的目的。例如:濾波、檢測、變換、增強、估計、識別、參數(shù)提取、頻譜分析等。數(shù)字信號處理是利用計算機或?qū)S锰幚碓O備,以數(shù)字形式對信號進行采集、變換、濾波、估值、增強、壓縮、識別等處理,以得到符合人們所需要的信號形式。數(shù)字信號處理是將信號以數(shù)字方式表示并處理的理論和技術。數(shù)字信號處理與模擬信號處理是信號處理的子集。數(shù)字信號處理技術及設備具有靈活、精確、抗干擾強、設備尺寸小、造價低、速度快等突出優(yōu)點,這些都是模擬信號處理技術與設備所無法比擬的。1.2 本課題要解決的問題通過本次課程設計,綜合運用數(shù)字信號處理、DSP技術課程以及其他有關
7、先修課程的理論和實際知識分析和解決具體問題,使所學知識得到進一步鞏固、深化和發(fā)展。初步培養(yǎng)學生對工程設計的獨立工作能力,掌握電子系統(tǒng)設計的一般方法。通過課程設計,基本技能的訓練,如查閱設計資料和手冊、程序的設計、調(diào)試等,提高學生分析問題、解決問題的能力。本題目為FIR濾波器的信號濾波,目的是掌握AD轉(zhuǎn)換的基本過程和程序處理過程,學習通過對采樣值進行計算產(chǎn)生混疊波形,同時熟悉掌握FIR濾波器并能對其參數(shù)進行調(diào)整。1.3 課題的意義和目的通過本實驗可以了解TMS32OF2812數(shù)字信號處理器內(nèi)部運行的一些機制,并可以了解它內(nèi)部的一些模塊的使用。30第2章 FIR的濾波器的信號濾波系統(tǒng)的軟硬件設計2
8、.1 系統(tǒng)設計概述本文基于TMS320182 DSP芯片A/D模塊進行波形采集后濾波處理且最終在液晶顯示器顯示所采集的波形圖。系統(tǒng)利用DSP內(nèi)置A/D功能對外部模擬電壓信號(波形)采集轉(zhuǎn)換成數(shù)字信號,然后在用外部LCD顯示屏顯示所采集波形的形狀。2.2 課題主要芯片介紹2.2.1 主控芯片介紹數(shù)字信號處理器(digital signal processors 簡稱DSP)誕生于20 世紀70 年代,專門為實時數(shù)字信號處理而設計的一種可編程的嵌入式微處理器。它以數(shù)字器件特有的穩(wěn)定性,可重復性,可編程性和易于實現(xiàn)自適應處理特點,取得了突飛猛進的發(fā)展。近年來,隨著DSP 性能的日趨完善,功耗的逐步降
9、低,開發(fā)環(huán)境的不斷改進以及價格的不斷下調(diào),其應用領域已拓展到國民經(jīng)濟生活的各個方面。本系統(tǒng)所采用的是TI公司的TMS320vc5509A,TMS320vc5509A是TI公司推出的定點數(shù)字信號處理器C5000系列中的一種,TMS320vc5509A通過增加乘累加MAC單元,增強了DSP的運算能力,而且性能更好,功耗更低,是目前TMS320家族中最省電的芯片。該芯片上的資源有:16Mbitn曲196k16bit sRAM2500昏TECPLD模塊上留有TTAG插口,用戶可以通過仿真器和CCS下載程序和進行實驗;其低功耗設計。比上一代c54xx器件功耗低3咣左右;處理速度更快,雙核結(jié)構(gòu),處理速度4
10、00MIPs;軟件程序兼容c54xx DSP;片內(nèi)存貯空間128K×16Bit;大容量SDRAM設計:4M×16Bit;2路10bit片上A/D接口;8M bit擴展FLASH,存儲大量固化程序和數(shù)據(jù);設計有用戶可以測試指示燈;DSP擴展總線,包括數(shù)據(jù)、地址、I/O、控制;4組標準擴展連接器,為用戶進行二次開發(fā)提供條件;具有IEEEll49.1相兼容的邏輯掃描電路,該電路僅用于測試和仿真;+5v電源輸入,內(nèi)部+3.3V、+1.6V電源管理;高保真語音接口設計,雙路語音采集,每路48K/S;USB2.0接口設計;4層板設計下藝,穩(wěn)定可靠。實驗箱上帶有ICETEKCRT顯示控制
11、模塊,實驗箱上有紅、黃、綠三種顏色十二只指示燈可供模擬交通燈用。在該系統(tǒng)中利用定時器中斷來控制交通燈的亮滅以及間隔時間,同時利用了鍵盤中斷來進行模擬突發(fā)事件發(fā)生時的控制。2.2.2 液晶顯示(LCD)模塊液晶模塊選擇MS320VC5402芯片,該芯片可以與復雜可編程邏輯器件CPLD相結(jié)合,大大簡化系統(tǒng),使系統(tǒng)更精簡,體積更小。DSP的顯示控制軟件負責將微處理器處理后的顯示數(shù)據(jù)映射到顯示緩沖區(qū)中,并由LCD顯示出來,從而完成一次測量。(1) 液晶顯示模塊的訪問、控制是由2812A DSP 對擴展接口的操作完成。控制口的尋址:命令控制接口的地址為0x108001,數(shù)據(jù)控制接口的地址為0x10800
12、3 和0x108004,輔助控制接口的地址為0x108002。(2) 顯示控制方法:液晶顯示模塊中有兩片顯示緩沖存儲器,分別對應屏幕顯示的象素,向其中寫入數(shù)值將改變顯示,寫入“1”則顯示一點,寫入“0”則不顯示。其地址與象素的對應方式如下:制字,然后再向輔助控制接口寫入0。下面給出的是基本命令字、解釋和C 語言控制語句舉例:顯示開關:0x3f 打開顯示;0x3e 關閉顯示;設置顯示起始行:0x0c0+起始行取值,其中起始行取值為0 至63;設置操作頁:0x0b8+頁號,其中頁號取值為0-7;設置操作列:0x40+列號,其中列號為取值為0-63;寫顯示數(shù)據(jù):在使用命令控制字選擇操作位置(頁數(shù)、列
13、數(shù))之后,可以將待顯示的數(shù)據(jù)寫入液晶顯示模塊的緩存。將數(shù)據(jù)發(fā)送到相應數(shù)據(jù)控制I/O 接口即可。2.2.3 液晶顯示器與DSP 的連接:圖12.2.4 A/D數(shù)據(jù)采集模塊TMS320F2812帶內(nèi)置采樣保持(SH)的12位模數(shù)轉(zhuǎn)換模塊(ADC);有多達16個的模擬輸人通道(ADCIN0ADClN15);有自動排序的能力,一次可執(zhí)行最多16通道的“自動轉(zhuǎn)換”,而每次轉(zhuǎn)換的通道都可通過編程來選擇;有兩個獨立的最多可選擇8個模擬轉(zhuǎn)換通道的排序器(SEQ1和SEQ2)可以獨立工作在雙排序器模,或者級聯(lián)之后工作在一個最多可選擇16個模擬轉(zhuǎn)換通道的排序器模式;可單獨訪問16個結(jié)果寄存器(RESULT0RES
14、ULT15)用來存儲轉(zhuǎn)換結(jié)果;多個觸發(fā)源可以啟動AD轉(zhuǎn)換5。模數(shù)轉(zhuǎn)換的程序控制模數(shù)轉(zhuǎn)換相對于計算機來說是一個較為緩慢的過程。一般采用中斷方式啟動轉(zhuǎn)換或保存結(jié)果,這樣在CPU 忙于其他工作時可以少占用處理時間。設計轉(zhuǎn)換程序應首先考慮處理過程如何與模數(shù)轉(zhuǎn)換的時間相匹配,根據(jù)實際需要選擇適當?shù)挠|發(fā)轉(zhuǎn)換的手段,也要能及時地保存結(jié)果。2.2.5 鍵盤模塊1. EMIF 接口TMS320F2812DSP 的擴展存儲器接口(EMIF)用來與大多數(shù)外圍設備進行連接,典型應用如連接片外擴展存儲器等。這一接口提供地址連線、數(shù)據(jù)連線和一組控制線。 F2812 EVM將這些擴展線引到了板上的擴展插座上供擴展使用。2.
15、 鍵盤連接原理鍵盤的掃描碼由 DSP 的擴展地址 0x8001 給出,當有鍵盤輸入時,讀此端口得到掃描碼,當無鍵被按下時讀此端口的結(jié)果為0。9 個按鍵分別讀回 1-9 這九個數(shù)字。2.2.6 Wintech綜合信號發(fā)生器介紹圖2 右上部有一個紅色的電源指示燈以及信號發(fā)生器電源開關,當信號源上電后,該指示燈應處于點亮狀態(tài)。圖 2 上部是一個兩行字符型的液晶顯示屏。圖 2中間部分有錄音,放音,循環(huán)三個按鈕,一個錄音指示燈(紅色)和一個麥克風。麥克風可在錄音時作為語音信號的輸入端。當信號發(fā)生器處于錄音狀態(tài)時,錄音指示燈應點亮。按放音鈕時,可以從揚聲器或耳機中聽到錄在信號發(fā)生器中的語音信號。按住循環(huán)鈕
16、不放,可以循環(huán)播放錄下的語音信號。當按下錄音按鈕后, 信號發(fā)生器正面的紅色錄音指示燈應處于點亮狀態(tài)。此時,若錄音輸入端口沒有接入音頻線, 信號發(fā)生器會將從麥克風輸入的語音信號錄下。若錄音輸入端口有接入音頻線, 信號發(fā)生器就會錄下從音頻線輸入的語信號。圖1 下部有控制A 路和B 路波形和頻率的四個按鈕以及復位按鈕,可控制輸出1030KHz 的方波,三角波,正弦波以及白噪聲四種波形。在按鈕上面有一排共16 個狀態(tài)指示燈。其中綠燈表示輸出波形種類,紅燈表示輸出波形頻率。左側(cè)8 個燈表示A路波形輸出的狀態(tài),右面8 個燈表示B路波形輸出的狀態(tài)。當A路波形輸出處于任一狀態(tài)時,上面8 個燈中均會有一個紅燈和
17、一個綠燈點亮(輸出白噪聲時紅燈狀態(tài)無意義)。B 路波形輸出同理。頻率共分4 檔, 分別10100 Hz , 1001 KHz , 1 K10 KHz , 10K30KHz。當輸出信號的頻率落入哪一檔的范圍時,在信號源正面,與該檔位相對應的紅色指示燈會點亮。波形也有四種:方波,三角波,正弦波和白噪聲4 種波形可通過按鈕選擇,當輸出為某一特定波形時,信號源正面相應的綠色指示燈會點亮。使用音頻信號線錄音時,需要注意信號與電源的共地問題,最好使用與信號發(fā)生器配套的dsp 評估板作為音源,不然可能會產(chǎn)生噪音。圖1 左部上下有兩個揚聲器。通過音頻線將一個音源的輸出接入到揚聲器輸入端口可以從揚聲器中直接聽到
18、該音源的輸出。在放音或循環(huán)放音時,將耳機輸入線插入到耳機輸入端口可以從耳機中聽到信號發(fā)生器的輸出。圖22.3 FIR工作原理及其計算參數(shù)濾波器的參數(shù):采樣頻率15kHz,帶通濾波500Hz-1kHz,增益40dB,階數(shù)25分別用于低通濾波和高通濾波兩種方式進行濾波。本實驗程序在AD中斷對AD進行連續(xù)采樣。由于需要實時混頻,所以交替轉(zhuǎn)換通道3和通道混頻的波形通過FIR濾波器,得到輸出的波形。低通濾波時,輸入頻率在500Hz-1kHz之間才能通過濾波器。高通濾波時,輸入頻率在高于1kHz的才能通過濾波器。2.4 系統(tǒng)硬件連接圖2 2812與TLV320AIC23的連接示意圖表1 TLV320AIC
19、23映射寄存器定義圖2為AIC23和F2812的硬件連接圖,AIC23有兩個接口,一個是控制口,用于設置AIC23的工作參數(shù);另一個是數(shù)據(jù)口,用于傳輸AIC23的A/D和D/A數(shù)據(jù)。本文設計將2812的MSBSP0配置成IIS,MSBSP的發(fā)送和接受時鐘均由AIC23來提供。表1為AIC23的映射寄存器的地址,按鍵數(shù)據(jù)回讀寄存器CTRKEY的映射地址為0x108001,清除鍵盤寄存器CTRCLKEY的映射地址為0x108002。2.5 系統(tǒng)軟件設計2.5.1 系統(tǒng)程序框圖程序開始先初始化,然后根據(jù)鍵盤的鍵值做出相應的處理。如果鍵值為1則LCD顯示兩天波形,同時LED燈亮,如果鍵值為2則顯示混疊
20、波形,為8則交通燈循環(huán);如果鍵值為9則停止波形,為4則進行低通濾波,為5則進行高通濾波。2.5.2 程序調(diào)試1、首先先將硬件線路連接好,將。將一根信號線一端插入信號源波形輸出A 端口,另一端插入試驗箱上ADCIN2 端口。將另一根信號線一端插入信號源波形輸出B 端口,另一端插入試驗箱上ADCIN3 端口。將波形輸出A 波形選擇調(diào)為正弦波,頻率調(diào)整調(diào)至100-1KHz。將波形輸出B 波形選擇調(diào)為正弦波,頻率調(diào)整調(diào)至1K-10KHz。2、設置Code Composer Studio 2.2 在硬件仿真(Emulater)方式下運行。3、啟動Code Composer Studio 2.2 ,選擇菜
21、單 Debug->Reset CPU。4、新建工程文件,添加各種庫文件和源文件,編寫主程序。5、編譯調(diào)試,檢查錯誤;編譯通過后下載程序,進行在線仿真,觀察效果。參考文獻1 邵明;李振軍;郭春華高精度交流采樣系統(tǒng)研制微計算機信息,2006,23: 2262272 Texas Instruments. TMS320F120xDSP Peripherals Reference Guide. 2003 3 智澤英,楊晉嶺,劉輝.DSP控制技術實踐M.北京:中國電力出版社,2009.4 程佩青, 數(shù)字信號處理教程M.北京:清華大學出版社,2001年.5 李維諟,郭強.液晶顯示應用技術M.北京:電子
22、工業(yè)出版社,1999.6 三恒科技.TMS320F2812 DSP原理與應用實例M.北京:電子工業(yè)出版社,2009.7 智澤英,楊晉嶺,劉輝.DSP控制技術實踐M.北京:中國電力出版社,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);/ 延時子程序void TurnOnLCD();/ 打開顯示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;/常寫0,寫1是反寫液晶屏。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);/ 延時子
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;/ 關閉東西方向的交通燈Delay(LCDDELAY);*(int *)0x108007=0x40;/ 關閉南北方向的交通燈Delay(LCDDELAY);*(int *)0x108007=0x0c1;/*(int *)0x108000=0x81; / 打開顯示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;/ 設置指示燈狀態(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;/ 設置指示燈狀態(tài) *(int *)0x108007=uLed1nCount1; Delay11(100); *(int *)0x108007=uLed1nCount0; break; case 3: / 定義指示燈寄存器地址和寄存器類型 LBDS=15;/ 正向順序送控制字 Delay11(1000);/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 資產(chǎn)擔保合同協(xié)議范本
- 臨床試驗數(shù)據(jù)管理服務合同
- 政府采購水質(zhì)監(jiān)測站設備合同
- 補充協(xié)議對按揭業(yè)務的規(guī)范
- 皮鞋購銷合同乙方權益
- 貨款折扣補充協(xié)議的注意事項
- 保密協(xié)議在勞動合同中的角色
- 有機化肥特許購銷協(xié)議
- 安全兒童游樂場玩具購銷協(xié)議
- 瓷磚采購合同范本案例
- YY/T 0872-2013輸尿管支架試驗方法
- GB/T 22594-2018水處理劑密度測定方法通則
- GB 19517-2004國家電氣設備安全技術規(guī)范
- 【表格】面試評分等級標準表
- 山西省太原市市藥品零售藥店企業(yè)藥房名單目錄
- 全面設備保養(yǎng)TPM培訓教材課件
- 垃圾焚燒發(fā)電廠項目給排水安裝工程專項方案
- DB64-T 1147-2022 寧夏工業(yè)單位產(chǎn)品能源消耗限額
- 授課比賽評分表
- XXXX供電項目可行性研究報告
- 抗菌藥物供應目錄備案表
評論
0/150
提交評論