基于電子琴畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
基于電子琴畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)
基于電子琴畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)
基于電子琴畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)
基于電子琴畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

附錄3:主要程序 BEEPBITP3.7 ;定義蜂鳴器BEEP為P3.7 ON_OFFBITF0 ;定義按鍵標(biāo)志位ON_OFF為F0 SOUND_BUFFEQU30H ;定義音符緩沖區(qū)SOUND_BUFF為30H,用來存放按鍵號(hào) SOUND_BAKEQU31H ;定義音符備用緩沖區(qū)SOUND_BAK為31H,用來備份按鍵號(hào) ORG0000H ;程序從0000H開始 AJMPMAIN ;跳轉(zhuǎn)到主程序MAIN ORG0BH ;定時(shí)器T0中斷入口地址 AJMPTIME0 ;跳轉(zhuǎn)至定時(shí)器T0中斷服務(wù)程序 ORG030H ;主程序從030H開始 ;以下是主程序MAIN: MOVSP,#5FH ;設(shè)置堆棧指針為5FH MOVTMOD,#01H ;設(shè)定時(shí)器T0工作模式1 SETBET0 ;開定時(shí)器T0中斷 SETBTR0 ;啟動(dòng)定時(shí)器T0START: CLREA ;關(guān)斷總中斷 SETBBEEP ;關(guān)斷蜂鳴器NEXT1: CALLKEY ;調(diào)按鍵判斷子程序 JBON_OFF,NEXT1 ;若ON_OFF=1,說明無鍵按下,繼續(xù)掃描 ACALLKEY_PROC ;調(diào)按鍵處理子程序,求出按鍵號(hào)并存放到SOUND_BUFF MOVSOUND_BAK,SOUND_BUFF ;將第1次SOUND_BUFF中的按鍵號(hào)備份到SOUND_BAK中 ACALLDELAY_10ms ;調(diào)10ms延時(shí)子程序 CALLKEY ;再次調(diào)按鍵判斷子程序 JBON_OFF,NEXT1 ;若ON_OFF=1,說明無鍵按下,繼續(xù)掃描 ACALLKEY_PROC ;調(diào)按鍵處理子程序,再次求出按鍵號(hào)存放到SOUND_BUFF MOVA,SOUND_BUFF ;將第2次得到的按鍵號(hào)(存放在SOUND_BUFF中)送A CJNEA,SOUND_BAK,NEXT1 ;比較第1次(存放在SOUND_BAK)和第2次(存放在SOUND_BUFF) ;存放的按鍵號(hào)是否相等,若不等,跳轉(zhuǎn)到NEXT1繼續(xù)掃描 ACALLSOUND ;若兩次掃描的鍵號(hào)相同,則調(diào)用音符處理子程序,查找出相應(yīng)音符 SETBEA ;打開總中斷NEXT2: CALLKEY ;調(diào)用按鍵判斷子程序,開始判斷按鍵是否釋放 JNBON_OFF,NEXT2 ;若ON_OFF=0,說明按鍵仍然按下,跳轉(zhuǎn)到NEXT2繼續(xù)等待 AJMPSTART ;若ON_OFF=1,說明按鍵釋放,跳轉(zhuǎn)到START,繼續(xù)循環(huán) ;按鍵判斷子程序(判斷鍵盤有無鍵按下,并確認(rèn)按鍵特征碼)KEY: SETBON_OFF ;ON_OFF為1,表示無鍵按下 MOVP1,#0F0H ;置列線為0,行線為1 MOVA,P1 ;讀取P1,求出行線的特征碼1 ANLA,#0F0H ;屏蔽低4位列線 MOVB,A ;送A的內(nèi)容存放到B,即特征碼1送B MOVP1,#0FH ;置列線為1,行線為0 MOVA,P1 ;讀取P1,求出列線的特征碼2 ANLA,#0FH ;屏蔽高4位行線 ORLA,B ;將特征碼1(B)與特征碼2(A)相或后送A,求出特征碼 CJNEA,#0FFH,KEY_FLAG ;若A的內(nèi)容與FFH不等(有鍵按下),則跳轉(zhuǎn)到KEY_PROC AJMPKEY_RET ;若A的內(nèi)容不等FFH(沒有鍵按下),跳轉(zhuǎn)到KEY_RETKEY_FLAG: CLRON_OFF ;ON_OFF清0,表示有鍵按下,且鍵已彈起KEY_RET: RET ;以下是按鍵處理子程序(根據(jù)按鍵特征碼,查表求出按鍵順序碼,即按鍵號(hào))KEY_PROC: MOVB,A ;若有鍵按下,將A的內(nèi)容(特征碼)送B MOVDPTR,#TAB1 ;將TAB1的地址送DPTR MOVR3,#0FFH ;將FFH送R3(以方便0號(hào)鍵查表),R3用來存放鍵值的順序碼KEY_PROC1: INCR3 ;R3(鍵值順序碼)加1 MOVA,R3 ;R3(鍵值順序碼)送A MOVCA,@A+DPTR ;查表 CJNEA,B,KEY_PROC2 ;若A與B的值不等(未找到),跳轉(zhuǎn)到KEY_PROC2 MOVA,R3 ;若A與B的值相等(找到),則取順序碼 MOVSOUND_BUFF,A ;將A的內(nèi)容送音符緩沖SOUND_BUFFKEY_PROC2:CJNEA,#00H,KEY_PROC1 ;若A與00H(結(jié)束碼)不等,則跳轉(zhuǎn)到KEY_PROC1,繼續(xù)查 RET ;子程序返回 ;以下是順序碼0~F的特征碼TAB1: DB 0EEH,0EDH,0EBH,0E7H ;順序碼0,1,2,3的特征碼 DB 0DEH,0DDH,0DBH,0D7H ;順序碼4,5,6,7的特征碼 DB 0BEH,0BDH,0BBH,0B7H ;順序碼8,9,A,B的特征碼 DB 07EH,07DH,07BH,77H ;順序碼C,D,E,F的特征碼 DB 00H ;00H為結(jié)束碼 ;以下是音符處理子程序SOUND: MOVA,SOUND_BUFF ;將音符緩沖區(qū)SOUND_BUFF的內(nèi)容送A RLA ;向左移1位乘2 MOVDPTR,#TAB2 ;將TAB2的地址送DPTR MOVCA,@A+DPTR ;到標(biāo)號(hào)TAB2處取音符 MOVTH0,A ;取到的高位字節(jié)存入TH0 MOV21H,A ;取到的高位字節(jié)存入21H MOVA,SOUND_BUFF ;再載入取碼指針值 RLA ;向左移1位乘2 INCA ;加1 MOVCA,@A+DPTR ;至表取低位字節(jié)計(jì)數(shù)值 MOVTL0,A ;取到的低位字節(jié)存入TL0 MOV20H,A ;取低位字節(jié)存入20H RET ;以下是定時(shí)器T0中斷服務(wù)程序TIME0: PUSHACC ;將A的值入棧 PUSHPSW ;將PSW的值入棧 MOVTL0,20H ;將20H的計(jì)數(shù)初值送TL0 MOVTH0,21H ;將21H的計(jì)數(shù)初值送TH0 CPLBEEP ;將BEEP(P3.7)反相 POPPSW ;PSW的值出棧 POPACC ;A的值出棧 RETI ;返回主程序 ;以下是字符定時(shí)值TAB2: DB0FAH,1AH,0FAH,6AH ;低音3、4的定時(shí)值 DB0FBH,00H,0FBH,8CH ;低音5、6的定時(shí)值 DB0FCH,0EH,0FCH,4AH ;低音7和中音1的定時(shí)值 DB0FCH,0AEH,0FDH,08H ;中音2、3的定時(shí)值 DB0FDH,30H,0FDH,80H ;中音4、5的定時(shí)值 DB0FDH,0C6H,0FEH,02H ;中音6、7的定時(shí)值 DB0FEH,2AH,0FEH,5CH ;高音1、2的定時(shí)值 DB0FEH,84H,0FEH,98H ;高音3、4的定時(shí)值 ;以下是10ms延時(shí)子程序DELAY_10ms: MOVR7,#50 ;立即數(shù)50送R7D2: MOVR6,#100 ;立即數(shù)100送R6D1: DJNZR6,D1 ;R6中的內(nèi)容減1,若不為0,轉(zhuǎn)到D1 DJNZR7,D2 ;R7中的內(nèi)容減1,若不為0,轉(zhuǎn)到D2 RET ;延時(shí)子程序返回 END ;程序結(jié)束參考文獻(xiàn)[1]胡漢才:?jiǎn)纹瑱C(jī)原理及其接口技術(shù),北京清華大學(xué)出版社,2004,P142-P145[2]蘇家健、曹柏榮、汪志鋒:?jiǎn)纹瑱C(jī)原理及應(yīng)用技術(shù),高等教育出版社,2004.9,P3-P7[3]陳明熒:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材,北京清華大學(xué)出版社,2003.9,P231-P235[4]劉永明、賀民譯:[美]AshishWilfredMeetaGuptaKartikBhatnagar,php專業(yè)項(xiàng)目實(shí)例開發(fā),水利水電出版社,2003,P79-P83[5]趙鑫、蔣亮、齊兆群:數(shù)字電路設(shè)計(jì),北京機(jī)械工業(yè)出版社,2005.6,P27-P31[6]龔妮麗:音樂美學(xué)論綱,中國(guó)社會(huì)科學(xué)出版社,2002.12,P47-P51[7]楊恢先、黃輝先:?jiǎn)纹瑱C(jī)原理及應(yīng)用,人民郵電出版社,2006,P114-P117[8]徐新艷:?jiǎn)纹瑱C(jī)原理應(yīng)用與實(shí)踐,北京高等教育出版社,2005.3,P64-P67[9]張靖武、周靈彬:?jiǎn)纹瑱C(jī)原理、應(yīng)用與PROTEUS仿真,2008.8,P71-P74[10]謝自美:電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試,華中理工大學(xué)出版社,1992,P131-P137致謝本研究及學(xué)位論文是在我的導(dǎo)師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。從課題的選擇到項(xiàng)目

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論