通信工程專業(yè)課程設(shè)計--基于sep3203的電子琴模型_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  1、需求分析

2、

3、 </p><p><b>  1.1基本功能</b></p><p>  想法來源:例如電子琴之類的鍵盤樂器。早期電子琴的原理是:檢測鍵盤上的按鍵是否按下,若按下,則相應(yīng)的蜂鳴器發(fā)出聲音。這樣,每個電子琴需要的蜂鳴器就很多。但是

4、,這樣做很浪費資源。所以,可以采用另一種方法,只用一個發(fā)聲設(shè)備,每個按鈕按下,對應(yīng)加入一個相應(yīng)的分量,將最終的波形輸出來。 </p><p>  實際功能描述:按不同的按鍵,發(fā)出不同的聲音。按下按鈕之后,發(fā)出中斷請求信號,CPU響應(yīng)中斷時,先檢測按下的是哪一個按鈕,然后控制發(fā)出相應(yīng)PWM波,輸出到蜂鳴器上,發(fā)出相應(yīng)的聲音。最后,CPU繼續(xù)循環(huán)執(zhí)行主程序,等候下一個中斷請求的到來。</p><p

5、><b>  1.2附加功能</b></p><p>  想法來源:調(diào)試過程中,需要查看按鍵的狀態(tài),需要查看是否正確檢測到了按鍵,是否能夠給出正確的鍵碼,所以增加了這一功能。</p><p>  功能描述:利用LED數(shù)碼管,顯示按下的按鍵。</p><p><b>  2、總體設(shè)計</b></p>&l

6、t;p>  2.1基本功能使用的模塊</p><p>  第一部分包括兩個主要軟件模塊和兩個外圍的硬件模塊:</p><p>  2.2加入附加功能之后的模塊組成</p><p>  加入第二部分后的框圖如下:</p><p>  增加了一個新的程序模塊和硬件模塊。</p><p>  程序運行的流程如下:<

7、;/p><p>  第二部分是對第一部分的完善和改進,但是在程序執(zhí)行的流程中,僅僅在處理鍵碼信息步驟,增加了“根據(jù)鍵碼控制點亮數(shù)碼管”這一部分。</p><p><b>  3、可行性分析</b></p><p>  該系統(tǒng)包含了輸入、處理、輸出三個部分。其中,輸入即為按鍵,使用矩陣鍵盤完成,實際的電子琴鍵盤含有更多的按鍵,但由于這僅僅是模型,所以

8、,不需要使用那么多的按鍵。處理部分是基于SEP3203的程序,通過輸入的按鍵信息,修改寄存器的相應(yīng)位,使得最終能夠輸出相應(yīng)的PWM波,控制蜂鳴器響。此外,還可以根據(jù)輸入的按鍵信息,將輸入的按鍵值顯示在LED七段數(shù)碼管上。輸出即為蜂鳴器和LED數(shù)碼管,硬件電路已經(jīng)在實驗箱上連接好。</p><p>  4、詳細設(shè)計與分工日志</p><p><b>  4.1輸入:</b&g

9、t;</p><p>  4.1.1 器件原理</p><p>  采用矩陣鍵盤,矩陣鍵盤有兩種驅(qū)動方式:一種是行掃描法,另一種是高低電平翻轉(zhuǎn)法。這里采用了行掃描法。包括兩個步驟:</p><p>  判斷鍵盤中有無鍵按下:將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按

10、鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p>  判斷閉合鍵所在的位置:在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。</p><p>  4.1.2 相關(guān)代碼</p

11、><p><b>  鍵盤中斷的調(diào)用:</b></p><p><b>  尋找被按下的按鍵:</b></p><p><b>  4.2發(fā)聲器件</b></p><p>  4.2.1 PWM波輸出原理</p><p>  發(fā)聲器件即為蜂鳴器,通過控制輸出

12、的PWM波的波形來控制發(fā)出的聲音。PWM波包括兩個參數(shù):頻率和占空比??刂祁l率,可以控制發(fā)出聲音的頻率;控制占空比,可以控制聲音的響度。</p><p>  在所用開發(fā)板GE01中,PWM 模塊中包含了2 個PWM 通道,彼此相互獨立。</p><p><b>  相關(guān)寄存器: </b></p><p>  4.2.2控制寄存器(PWMC):&

13、lt;/p><p><b>  高16位為保留位</b></p><p>  bit15——中斷請求狀態(tài)(0 = FIFO 滿、1 = FIFO 不滿)</p><p>  bit14——中斷請求使能 (0 = 不使能(缺省)、1 = PWM 中斷使能)</p><p>  bit 13——FIFO 有效狀態(tài)(0 = FIF

14、O 滿、1 = FIFO 不滿)</p><p>  bit 12 —— PWM 使能 (0 = PWM 不使能、1 = PWM 使能)</p><p>  bit 11-10 ——選擇playback 模式下采樣被重放的次數(shù)(00 = 沒重復(fù),01 = 播放兩次、10 = 重復(fù)3 次(播放4次)、11 = 重復(fù)7 次(播放8次))</p><p>  bit 9-

15、0 (PRESCALER)——用來提供分頻因子的(prescaler+1),對系統(tǒng)時鐘進行分頻。缺省值是0。1 = 2 分頻、2 = 4 分頻…</p><p>  4.2.3采樣寄存器(PWMS): </p><p><b>  高16位為保留位</b></p><p>  Bit 15-0 ——PWMS 采樣值 PWM 采樣寄存器是FIF

16、O 的輸入。此值和一個自由計數(shù)的計數(shù)器比較。當(dāng)大于計數(shù)器值時PWM 輸出為高,反之輸出為低。</p><p>  4.2.4周期寄存器(PWMP):</p><p><b>  高16位為保留位</b></p><p>  bit15-0—— Period 值/定時值 在tone 模式時,其用于設(shè)置計數(shù)器的復(fù)位值。計數(shù)器計數(shù)到此值就復(fù)位一次,P

17、WM 輸出也相應(yīng)翻轉(zhuǎn)一次。</p><p>  4.2.5計數(shù)器寄存器(PWMCNT):</p><p><b>  高16位為保留位</b></p><p>  bit15-0 ——當(dāng)前的計數(shù)值 它保存著自由計數(shù)的計數(shù)器的當(dāng)前值。</p><p>  依據(jù)上述寄存器各位的功能,通過合適的賦值便可以實現(xiàn)本實驗所要求的基本

18、功能。</p><p>  4.2.6相關(guān)代碼:</p><p><b>  主函數(shù):</b></p><p>  STATUS模塊初始化</p><p><b>  4.3 LED顯示</b></p><p>  4.3.1 動態(tài)顯示原理</p><p&

19、gt;  圖 十二動態(tài)顯示LED的連接</p><p>  由圖,六個數(shù)碼管每個都有一個選擇信號,當(dāng)置“1”時,該數(shù)碼管的相關(guān)段亮。對于此動態(tài)顯示電路,有六個數(shù)碼管,使用的頻率由定時器產(chǎn)生,為500Hz,即周期為2ms。此外,將每個數(shù)碼管相同的段連在一起到段數(shù)據(jù)線上。在第一個2ms,第一個數(shù)碼管允許點亮,同時,需要點亮的段置“1”,在這2ms內(nèi),只有第一個數(shù)碼管亮。在第二個2ms,第二個數(shù)碼管允許點亮,同時,需要

20、點亮的段置“1”,在這2ms內(nèi),只有第二個數(shù)碼管亮……如此,每個2ms只有一個數(shù)碼管亮,所以,不會相互影響,導(dǎo)致顯示不清。而且,由于每個數(shù)碼管刷新的周期非常小,本實驗中為12ms,小于人眼的分辨時間。所以,看起來,好像同時亮了。</p><p>  4.3.2 定時器輸出</p><p>  如圖,定時器用到的IO端口位置如下:</p><p>  TIMER 是片

21、內(nèi)集成的 32bit 定時器,該模塊共包括4個通道,每個通道包括一個 32 位計數(shù)器,以及一個加載計數(shù)寄存器。計數(shù)器的重新加載、計數(shù)使能以及中斷的產(chǎn)生受到控制寄存器的各個控制位的控制。定時器的工作原理是:首先要設(shè)定定時器的初值,然后啟動定時器。一旦啟動,定時器就從初值開始累計增加或減小(在實驗所用的芯片中是遞減)。每增加或減小一個數(shù)需要特定的時間,這個特定的時間是累加指令的機器周期,是由處理器的晶振的頻率(本實驗中晶振的頻率是75MHz

22、)決定的。計數(shù)值從初值計至 0 時,TIMER 模塊發(fā)出中斷,然后計數(shù)器跳至用戶配置的值,重復(fù)遞增或遞減過程。在中斷寄存器允許的情況下處理器響應(yīng)中斷,通過中斷服務(wù)程序執(zhí)行特定的任務(wù)。</p><p>  TIMER中的一個通道的功能結(jié)構(gòu)如下圖:</p><p>  TIMER 有兩種工作模式: </p><p><b>  正常工作模式 </b>

23、;</p><p>  TIMER 在正常工作模式時,當(dāng)通道使能后計數(shù)器鎖存加載計數(shù)寄存器的值,然后在系統(tǒng)時鐘的驅(qū)動下遞減計數(shù)。當(dāng)計數(shù)到零時,產(chǎn)生一個計數(shù)到零的標志用于設(shè)置相應(yīng)的中斷標志位,若中斷未被屏蔽則產(chǎn)生中斷;同時,計數(shù)器重新鎖存加載計數(shù)寄存器的值開始一個新的計數(shù)周期。 </p><p><b>  自由工作模式 </b></p><p>

24、;  TIMER 在自由工作模式時,當(dāng)通道使能后計數(shù)器鎖存加載計數(shù)寄存器的值,然后在系統(tǒng)時鐘的驅(qū)動下遞減計數(shù)。當(dāng)計數(shù)到零時,產(chǎn)生一個計數(shù)到零的標志用于設(shè)置相應(yīng)的中斷標志位,若中斷未被屏蔽則產(chǎn)生中斷;同時,計數(shù)器加載數(shù)據(jù) 32’H FFFFFFFF 開始一個新的計數(shù)周期。</p><p>  TIMER 中四個通道的中斷都可以通過各自的控制寄存器屏蔽。任意一個通道計數(shù)完畢都會產(chǎn)生一個中斷。TIMER 的中斷輸出是四

25、個中斷源的線或。 </p><p>  查詢中斷源有兩種方法:</p><p> ?。ㄒ唬┎樵兏鱾€通道的中斷屏蔽狀態(tài)寄存器是否被置 1;</p><p> ?。ǘ┎樵?TIMER中斷屏蔽狀態(tài)寄存器,看各個通道相應(yīng)位是否被置 1。 </p><p>  清除中斷的方法也有兩種:</p><p> ?。ㄒ唬┳x各個通道的中

26、斷狀態(tài)清除寄存器,相應(yīng)通道的中斷會被清除;</p><p> ?。ǘ┳x TIMER 中斷狀態(tài)清除寄存器,所有通道的中斷都會被清除。 </p><p>  查詢到中斷源后,如果不重新配置加載計數(shù)寄存器,計數(shù)器會按照原來的配置繼續(xù)計數(shù),直到計數(shù)完畢再發(fā)出中斷。如果要重新配置,清完中斷后應(yīng)該先將計數(shù)器關(guān)閉(disable) ,然后配置新的計數(shù)值,再將計數(shù)器打開(enable)。</p&g

27、t;<p>  4.3.3 相關(guān)寄存器</p><p>  4.3.4相關(guān)代碼:</p><p><b>  調(diào)用LED顯示:</b></p><p><b>  LED顯示模塊:</b></p><p><b>  LED顯示程序:</b></p>

28、<p><b>  翻譯碼值</b></p><p><b>  LED輸出</b></p><p>  74HC595鎖存鎖存輸出,即led顯示使能</p><p><b>  分工日志:</b></p><p>  9月20日(周二):各組員熟悉ADS界面環(huán)境,

29、練習(xí)基本操作。組長確定選題,完成需求分析,進行總體設(shè)計并論證可行性和可完成性。</p><p>  9月22日(周四):黃哲忱和殷杰選取各模塊可供參考的代碼,并將代碼在實驗箱上測試。學(xué)習(xí)、熟悉各段代碼的含義。將代碼的接口給出。交由毛彥和費馳同學(xué)。</p><p>  9月26日(周一):毛彥和費馳完成第一部分的程序和調(diào)試。調(diào)試過程中,使用了LED數(shù)碼管。</p><p&

30、gt;  9月28日(周三):將調(diào)試過程中使用的LED數(shù)碼管程序段改寫成第二部分的模塊,并完成調(diào)試。</p><p>  9月30日(周五):整體功能測試,組長慢慢寫論文。</p><p><b>  5、測試</b></p><p>  使用LED數(shù)碼管檢測從矩陣鍵盤輸入的按鍵時,發(fā)現(xiàn)段碼表有問題,與實際的不對應(yīng),所以給控制哪個段點亮的變量依

31、次賦值為0x01、0x02、0x04、0x08、0x10、0x20、0x40、0x80。即分別點亮一個段,以確定每一位對應(yīng)段。</p><p>  其次在LED顯示和PWM輸出合一的時候,發(fā)現(xiàn)程序運行出錯。后來發(fā)現(xiàn)是調(diào)用了同一個變量,導(dǎo)致了沖突。</p><p>  最后一個問題是,解決了上面的問題后,按下7、8、9三個按鍵的時候,會死機。后來發(fā)現(xiàn)是顯示的短碼表有問題。</p>

32、<p><b>  6、結(jié)論</b></p><p>  最后,能夠?qū)崿F(xiàn)這樣一個效果:按下某個按鍵,然后在LED數(shù)碼管上顯示同一個數(shù)字,同時,蜂鳴器發(fā)出一個聲音。</p><p>  我們想到了但是沒有做到的一些改進有:數(shù)碼管上顯示現(xiàn)在按下的和之前按下的按鍵,移位顯示;使用觸摸屏,把鍵盤放在觸摸屏上;同時按下兩個按鍵的時候,通過處理,使之輸出的是兩個頻率

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論