久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
電子琴程序轉發
[打印本頁]
作者:
葫蘆wa爺爺
時間:
2018-9-6 15:06
標題:
電子琴程序轉發
源程序代碼:(彈奏部分代碼暫時去掉,見諒,需要的留言,轉載請注明出處,謝謝!)
DUAN EQU 0c000H WEI EQU 0a000H LED0 EQU 8000H ORG 0000H ;復位地址 LJMP MAIN ;跳轉到主程序 ORG 0003H ;外部中斷0入口地址 LJMP INT00 ;跳轉到外部中斷0服務程序 ORG 000BH ;T0中斷入口 LJMP TIM0 ;跳轉到T0中斷服務程序 ORG 0030H ;主程序入口地址 MAIN:
MOV DPTR,#LED0MOV A,#00HMOVX @DPTR,A MOV TMOD,#01H ;寫入T0控制字, 16位定時方式 SETB IT0 ;外部中斷為下降沿觸發 MOV IE,#83H ;開中斷 MOV 30H,#00H ;取簡譜碼指針 MOV R6,#0FFH ;選擇音樂節奏燈循環次數 CLR 23H ;功能選擇標志 00:鍵盤 01:音樂
NEXT: CLR TR0 JNB 23H,KEYPLAY ;若標志位是0則轉到鍵盤程序 SETB P2.2 MOV A,30H ;簡譜碼指針裝入A JNB P0.1,START1 ;否則查詢播放哪一首歌曲 JNB P0.2,START2 JNB P0.3,START3 LJMP NEXT
;確定不同歌曲的基地址START1:
MOV DPTR,#TABLE ;從TABLE處取簡譜碼 MOV 60H,DPH MOV 61H,DPL MOV A,#00H LJMP NEXT1START2:
MOV DPTR,#TABLE2 ;從TABLE2處取簡譜碼 MOV 60H,DPH MOV 61H,DPL MOV A,#01H LJMP NEXT1START3:
MOV DPTR,#TABLE3 ;從TABLE處取簡譜碼 MOV 60H,DPH MOV 61H,DPL MOV A,#02H LJMP NEXT1
;鍵盤彈奏程序入口KEYPLAY: ;鍵盤程序入口 SETB P2.1 CLR P2.2 JNB P0.4,LOWTONE ;查詢是高音還是其他的音 JNB P0.5,MIDDLETONE JNB P0.6,HIGHTONE LJMP NEXT ;沒有選擇高中低音則重新查詢
;確定高中低音基地址LOWTONE: MOV DPTR,#LOWTABLE ;賦基地址值 MOV 50H,DPH MOV 51H,DPL LJMP KEY ;跳轉到按鍵查詢程序
MIDDLETONE: MOV DPTR,#MIDDLETABLE MOV 50H,DPH MOV 51H,DPL LJMP KEY
HIGHTONE: MOV DPTR,#HIGHTABLE MOV 50H,DPH MOV 51H,DPL LJMP KEY
;歌曲播放程序NEXT1: MOV DPTR,#SEG7 MOVC A,@A+DPTR MOV DPTR,#DUAN MOVX @DPTR,A MOV DPTR,#WEI MOV A,#000BH MOVX @DPTR,A MOV DPH,60H MOV DPL,61H MOV A,30H MOVC A,@A+DPTR MOV R2,A ;取得的簡譜碼暫存于R2 JZ END0 ;是否取到結束碼00H ANL A,#0FH ;不是,則取節拍碼 MOV R5,A ;節拍碼存于R5 MOV A,R2 ;將簡譜碼裝入A SWAP A ;高、低4位交換 ANL A,#0FH ;取音符碼 JNZ SING ;取得的音符碼是否為0? CLR TR0 ;是則不發音 lJMP D1 ;跳轉到D1
SING: DEC A ;取得的音符碼減1(不含0) MOV 22H,A ;存入22H單元 RL A ;乘2 MOV DPTR,#TABLE1 ;到TABLE1中取相對的高位字節值 MOVC A,@A+DPTR MOV TH0,A ;取得的高位字節裝入TH0和21H單元 MOV 21H,A MOV A,22H ;再裝入取得的音符碼 Rl A ;乘2 INC A ;加1 MOVC A,@A+DPTR ;到TABLE1中取相對的低位字節值 MOV TL0,A ;取得的高位字節裝入TL0和20H單元 MOV 20H,A SETB TR0 ;啟動T0D1: LCALL DELAY ;基本單位時間1/4拍,延時187毫秒 INC 30H ;取簡譜碼指針加1 LJMP NEXT ;取下一個碼END0: CLR TR0 ;停止T0 CLR 30H ;清零簡樸指針 LJMP NEXT ;重復循環
;按鍵查詢程序KEY: ;判斷是哪個音的按鍵按下 JNB P1.0,M0 ;分別是DO,RE,ME.... JNB P1.1,M1 JNB P1.2,M2 JNB P1.3,M3 JNB P1.4,M4 JNB P1.5,M5 JNB P1.6,M6 LJMP NEXT ;沒有按鍵按下則跳轉到循環查詢
;按鍵軟件防抖動程序M0: LCALL DELAY1 ;延時一段時間判斷按鍵是否繼續按下,是則跳轉到確定偏移量程序 JNB P1.0,M00 SJMP KEYM1: LCALL DELAY1 JNB P1.1,M11 SJMP KEYM2: LCALL DELAY1 JNB P1.2,M22 SJMP KEYM3: LCALL DELAY1 JNB P1.3,M33 SJMP KEYM4: LCALL DELAY1 JNB P1.4,M44 SJMP KEYM5: LCALL DELAY1 JNB P1.5,M55 SJMP KEYM6: LCALL DELAY1 JNB P1.6,M66 SJMP KEY
;確定按鍵的偏移地址程序M00: MOV A,#00H LJMP PLAYM11: MOV A,#01H LJMP PLAYM22: MOV A,#02H LJMP PLAYM33: MOV A,#03H LJMP PLAYM44: MOV A,#04H LJMP PLAY M55: MOV A,#05H LJMP PLAYM66: MOV A,#06H LJMP PLAY
;按鍵音彈奏程序
;音符對應的定時器初值表: TABLE1:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021
LOWTABLE:DW 63628,63835,64021,64103,64260,64400,64524MIDDLETABLE:DW 64580 ,64684,64777,64820,64898,64968,65030HIGHTABLE:DW 65058,65110,65157,65178,65217,65252,65283SEG7:DB 06H, 5BH, 4FH,66H, 6DH, 7DH,07H
;音符節拍表: TABLE: DB 02H,82HDB 16H,32H,54H,02H,52HDB 0A6H,32H,54H,02H,52HDB 64H,74H,0B6H,64HDB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,12H,94H,22H,32HDB 2CHDB 32H,52HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 96H,0A2H,96H,82HDB 3CH,54HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 16H,12H,14H,22H,32HDB 2CH,02H,82HDB 16H,32H,56H,12HDB 0A6H,32H,56H,52HDB 66H,72H,0B6H,62HDB 62H,52H,58H,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,92H,0A4H,12H,22HDB 1CHDB 00TABLE2:DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94HDB 1fH,88H,14H,24H,34H,32H,42H,54H,14HDB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74HDB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fHDB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2HDB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68HDB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68HDB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fHDB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12HDB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fHDB 00TABLE3:DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1cHDB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1cH,32H,52HDB 62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,32H,22HDB 12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12H,14H,0b2H,62H,52H,54H,62H,54H,32H,52HDB 66H,0b2H,0b4H,62H,52H,5cH,32H,52H,62H,64H,62H,64H,0b2H,62H,52H,54HDB 62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32H,22H,12H,14H,12H,14H,22H,32HDB 52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32H,24H,12H,1fHDB 00
END
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区国产视频
|
在线观看a视频
|
日本不卡一区二区三区
|
欧美午夜精品
|
天天干天天草
|
亚洲国产成人av好男人在线观看
|
日韩在线观看中文字幕
|
国精品一区
|
欧美成人在线免费
|
久久久久国
|
国产欧美精品一区二区三区
|
国产激情视频在线
|
中文字幕在线播放第一页
|
日韩at
|
欧美激情精品久久久久久免费
|
午夜av影院
|
人人九九
|
情侣黄网站免费看
|
国产精品18hdxxxⅹ在线
|
欧美在线观看一区
|
国产剧情久久
|
久久综合一区
|
日韩综合在线
|
久久国产亚洲精品
|
日本精品裸体写真集在线观看
|
波多野结衣二区
|
成人一区二区视频
|
欧美偷偷操
|
先锋资源网
|
亚洲手机视频在线
|
欧美黄色网
|
91精品国产综合久久久久久
|
日本中文字幕日韩精品免费
|
久久久久久国产
|
jav成人av免费播放
|
午夜电影网
|
91大片
|
成人精品毛片国产亚洲av十九禁
|
日韩一区二区三区在线视频
|
亚洲精品久久久久久久久久久
|
日日操av
|