版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 1、需求分析
2、
3、 </p><p><b> 1.1基本功能</b></p><p> 想法來源:例如電子琴之類的鍵盤樂器。早期電子琴的原理是:檢測鍵盤上的按鍵是否按下,若按下,則相應的蜂鳴器發(fā)出聲音。這樣,每個電子琴需要的蜂鳴器就很多。但是
4、,這樣做很浪費資源。所以,可以采用另一種方法,只用一個發(fā)聲設備,每個按鈕按下,對應加入一個相應的分量,將最終的波形輸出來。 </p><p> 實際功能描述:按不同的按鍵,發(fā)出不同的聲音。按下按鈕之后,發(fā)出中斷請求信號,CPU響應中斷時,先檢測按下的是哪一個按鈕,然后控制發(fā)出相應PWM波,輸出到蜂鳴器上,發(fā)出相應的聲音。最后,CPU繼續(xù)循環(huán)執(zhí)行主程序,等候下一個中斷請求的到來。</p><p
5、><b> 1.2附加功能</b></p><p> 想法來源:調試過程中,需要查看按鍵的狀態(tài),需要查看是否正確檢測到了按鍵,是否能夠給出正確的鍵碼,所以增加了這一功能。</p><p> 功能描述:利用LED數碼管,顯示按下的按鍵。</p><p><b> 2、總體設計</b></p>&l
6、t;p> 2.1基本功能使用的模塊</p><p> 第一部分包括兩個主要軟件模塊和兩個外圍的硬件模塊:</p><p> 2.2加入附加功能之后的模塊組成</p><p> 加入第二部分后的框圖如下:</p><p> 增加了一個新的程序模塊和硬件模塊。</p><p> 程序運行的流程如下:<
7、;/p><p> 第二部分是對第一部分的完善和改進,但是在程序執(zhí)行的流程中,僅僅在處理鍵碼信息步驟,增加了“根據鍵碼控制點亮數碼管”這一部分。</p><p><b> 3、可行性分析</b></p><p> 該系統(tǒng)包含了輸入、處理、輸出三個部分。其中,輸入即為按鍵,使用矩陣鍵盤完成,實際的電子琴鍵盤含有更多的按鍵,但由于這僅僅是模型,所以
8、,不需要使用那么多的按鍵。處理部分是基于SEP3203的程序,通過輸入的按鍵信息,修改寄存器的相應位,使得最終能夠輸出相應的PWM波,控制蜂鳴器響。此外,還可以根據輸入的按鍵信息,將輸入的按鍵值顯示在LED七段數碼管上。輸出即為蜂鳴器和LED數碼管,硬件電路已經在實驗箱上連接好。</p><p> 4、詳細設計與分工日志</p><p><b> 4.1輸入:</b&g
9、t;</p><p> 4.1.1 器件原理</p><p> 采用矩陣鍵盤,矩陣鍵盤有兩種驅動方式:一種是行掃描法,另一種是高低電平翻轉法。這里采用了行掃描法。包括兩個步驟:</p><p> 判斷鍵盤中有無鍵按下:將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按
10、鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p> 判斷閉合鍵所在的位置:在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。</p><p> 4.1.2 相關代碼</p
11、><p><b> 鍵盤中斷的調用:</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波包括兩個參數:頻率和占空比??刂祁l率,可以控制發(fā)出聲音的頻率;控制占空比,可以控制聲音的響度。</p><p> 在所用開發(fā)板GE01中,PWM 模塊中包含了2 個PWM 通道,彼此相互獨立。</p><p><b> 相關寄存器: </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 = 不使能(缺?。? = 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 模式下采樣被重放的次數(00 = 沒重復,01 = 播放兩次、10 = 重復3 次(播放4次)、11 = 重復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 的輸入。此值和一個自由計數的計數器比較。當大于計數器值時PWM 輸出為高,反之輸出為低。</p><p> 4.2.4周期寄存器(PWMP):</p><p><b> 高16位為保留位</b></p><p> bit15-0—— Period 值/定時值 在tone 模式時,其用于設置計數器的復位值。計數器計數到此值就復位一次,P
17、WM 輸出也相應翻轉一次。</p><p> 4.2.5計數器寄存器(PWMCNT):</p><p><b> 高16位為保留位</b></p><p> bit15-0 ——當前的計數值 它保存著自由計數的計數器的當前值。</p><p> 依據上述寄存器各位的功能,通過合適的賦值便可以實現(xiàn)本實驗所要求的基本
18、功能。</p><p> 4.2.6相關代碼:</p><p><b> 主函數:</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> 由圖,六個數碼管每個都有一個選擇信號,當置“1”時,該數碼管的相關段亮。對于此動態(tài)顯示電路,有六個數碼管,使用的頻率由定時器產生,為500Hz,即周期為2ms。此外,將每個數碼管相同的段連在一起到段數據線上。在第一個2ms,第一個數碼管允許點亮,同時,需要點亮的段置“1”,在這2ms內,只有第一個數碼管亮。在第二個2ms,第二個數碼管允許點亮,同時,需要
20、點亮的段置“1”,在這2ms內,只有第二個數碼管亮……如此,每個2ms只有一個數碼管亮,所以,不會相互影響,導致顯示不清。而且,由于每個數碼管刷新的周期非常小,本實驗中為12ms,小于人眼的分辨時間。所以,看起來,好像同時亮了。</p><p> 4.3.2 定時器輸出</p><p> 如圖,定時器用到的IO端口位置如下:</p><p> TIMER 是片
21、內集成的 32bit 定時器,該模塊共包括4個通道,每個通道包括一個 32 位計數器,以及一個加載計數寄存器。計數器的重新加載、計數使能以及中斷的產生受到控制寄存器的各個控制位的控制。定時器的工作原理是:首先要設定定時器的初值,然后啟動定時器。一旦啟動,定時器就從初值開始累計增加或減?。ㄔ趯嶒炈玫男酒惺沁f減)。每增加或減小一個數需要特定的時間,這個特定的時間是累加指令的機器周期,是由處理器的晶振的頻率(本實驗中晶振的頻率是75MHz
22、)決定的。計數值從初值計至 0 時,TIMER 模塊發(fā)出中斷,然后計數器跳至用戶配置的值,重復遞增或遞減過程。在中斷寄存器允許的情況下處理器響應中斷,通過中斷服務程序執(zhí)行特定的任務。</p><p> TIMER中的一個通道的功能結構如下圖:</p><p> TIMER 有兩種工作模式: </p><p><b> 正常工作模式 </b>
23、;</p><p> TIMER 在正常工作模式時,當通道使能后計數器鎖存加載計數寄存器的值,然后在系統(tǒng)時鐘的驅動下遞減計數。當計數到零時,產生一個計數到零的標志用于設置相應的中斷標志位,若中斷未被屏蔽則產生中斷;同時,計數器重新鎖存加載計數寄存器的值開始一個新的計數周期。 </p><p><b> 自由工作模式 </b></p><p>
24、; TIMER 在自由工作模式時,當通道使能后計數器鎖存加載計數寄存器的值,然后在系統(tǒng)時鐘的驅動下遞減計數。當計數到零時,產生一個計數到零的標志用于設置相應的中斷標志位,若中斷未被屏蔽則產生中斷;同時,計數器加載數據 32’H FFFFFFFF 開始一個新的計數周期。</p><p> TIMER 中四個通道的中斷都可以通過各自的控制寄存器屏蔽。任意一個通道計數完畢都會產生一個中斷。TIMER 的中斷輸出是四
25、個中斷源的線或。 </p><p> 查詢中斷源有兩種方法:</p><p> ?。ㄒ唬┎樵兏鱾€通道的中斷屏蔽狀態(tài)寄存器是否被置 1;</p><p> ?。ǘ┎樵?TIMER中斷屏蔽狀態(tài)寄存器,看各個通道相應位是否被置 1。 </p><p> 清除中斷的方法也有兩種:</p><p> (一)讀各個通道的中
26、斷狀態(tài)清除寄存器,相應通道的中斷會被清除;</p><p> (二)讀 TIMER 中斷狀態(tài)清除寄存器,所有通道的中斷都會被清除。 </p><p> 查詢到中斷源后,如果不重新配置加載計數寄存器,計數器會按照原來的配置繼續(xù)計數,直到計數完畢再發(fā)出中斷。如果要重新配置,清完中斷后應該先將計數器關閉(disable) ,然后配置新的計數值,再將計數器打開(enable)。</p&g
27、t;<p> 4.3.3 相關寄存器</p><p> 4.3.4相關代碼:</p><p><b> 調用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、練習基本操作。組長確定選題,完成需求分析,進行總體設計并論證可行性和可完成性。</p><p> 9月22日(周四):黃哲忱和殷杰選取各模塊可供參考的代碼,并將代碼在實驗箱上測試。學習、熟悉各段代碼的含義。將代碼的接口給出。交由毛彥和費馳同學。</p><p> 9月26日(周一):毛彥和費馳完成第一部分的程序和調試。調試過程中,使用了LED數碼管。</p><p&
30、gt; 9月28日(周三):將調試過程中使用的LED數碼管程序段改寫成第二部分的模塊,并完成調試。</p><p> 9月30日(周五):整體功能測試,組長慢慢寫論文。</p><p><b> 5、測試</b></p><p> 使用LED數碼管檢測從矩陣鍵盤輸入的按鍵時,發(fā)現(xiàn)段碼表有問題,與實際的不對應,所以給控制哪個段點亮的變量依
31、次賦值為0x01、0x02、0x04、0x08、0x10、0x20、0x40、0x80。即分別點亮一個段,以確定每一位對應段。</p><p> 其次在LED顯示和PWM輸出合一的時候,發(fā)現(xiàn)程序運行出錯。后來發(fā)現(xiàn)是調用了同一個變量,導致了沖突。</p><p> 最后一個問題是,解決了上面的問題后,按下7、8、9三個按鍵的時候,會死機。后來發(fā)現(xiàn)是顯示的短碼表有問題。</p>
32、<p><b> 6、結論</b></p><p> 最后,能夠實現(xiàn)這樣一個效果:按下某個按鍵,然后在LED數碼管上顯示同一個數字,同時,蜂鳴器發(fā)出一個聲音。</p><p> 我們想到了但是沒有做到的一些改進有:數碼管上顯示現(xiàn)在按下的和之前按下的按鍵,移位顯示;使用觸摸屏,把鍵盤放在觸摸屏上;同時按下兩個按鍵的時候,通過處理,使之輸出的是兩個頻率
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信工程專業(yè)課程設計--基于sep3203的電子琴模型
- 通信工程專業(yè)課程設計--基于SEP3203的電子琴模型.docx
- 通信工程專業(yè)課程設計實驗報告.pdf
- 圖書管理系統(tǒng)-通信工程專業(yè)課程設計報告
- 電氣信息學院通信工程專業(yè)課程設計報告
- 電子琴課程設計--基于單片機的電子琴設計
- 電子琴課程設計--基于單片機的電子琴設計
- 電子琴課程設計---電子琴的設計與實現(xiàn)
- 電子琴課程設計-- 基于單片機的電子琴設計
- 電子琴課程設計
- 課程設計--電子琴
- 電子琴課程設計
- 電子琴的課程設計
- 通信系統(tǒng)專業(yè)課程設計
- 電子琴的設計 課程設計
- 微機課程設計電子琴
- 接口課程設計電子琴
- 簡易電子琴課程設計
- 簡易電子琴課程設計
- 簡易電子琴課程設計
評論
0/150
提交評論