久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1284|回復: 0
打印 上一主題 下一主題
收起左側

電子琴程序轉發

[復制鏈接]
跳轉到指定樓層
樓主
ID:394558 發表于 2018-9-6 15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. 源程序代碼:(彈奏部分代碼暫時去掉,見諒,需要的留言,轉載請注明出處,謝謝!)

  2.     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:

  3. 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:音樂

  4. 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

  5. ;確定不同歌曲的基地址START1:

  6. MOV  DPTR,#TABLE   ;從TABLE處取簡譜碼 MOV 60H,DPH MOV 61H,DPL MOV A,#00H        LJMP NEXT1START2:

  7. MOV  DPTR,#TABLE2  ;從TABLE2處取簡譜碼  MOV 60H,DPH MOV 61H,DPL   MOV A,#01H        LJMP NEXT1START3:

  8. MOV  DPTR,#TABLE3  ;從TABLE處取簡譜碼  MOV 60H,DPH MOV 61H,DPL   MOV A,#02H        LJMP NEXT1

  9. ;鍵盤彈奏程序入口KEYPLAY:    ;鍵盤程序入口    SETB P2.1 CLR P2.2 JNB P0.4,LOWTONE     ;查詢是高音還是其他的音 JNB P0.5,MIDDLETONE JNB P0.6,HIGHTONE LJMP NEXT           ;沒有選擇高中低音則重新查詢


  10. ;確定高中低音基地址LOWTONE: MOV DPTR,#LOWTABLE   ;賦基地址值 MOV 50H,DPH MOV 51H,DPL LJMP KEY      ;跳轉到按鍵查詢程序

  11. MIDDLETONE:        MOV DPTR,#MIDDLETABLE  MOV 50H,DPH MOV 51H,DPL LJMP KEY

  12. HIGHTONE:   MOV DPTR,#HIGHTABLE  MOV 50H,DPH MOV 51H,DPL  LJMP KEY


  13. ;歌曲播放程序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

  14. 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          ;重復循環


  15. ;按鍵查詢程序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          ;沒有按鍵按下則跳轉到循環查詢

  16. ;按鍵軟件防抖動程序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


  17. ;確定按鍵的偏移地址程序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      

  18. ;按鍵音彈奏程序


  19. ;音符對應的定時器初值表:   TABLE1:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021

  20. 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

  21. ;音符節拍表:   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


  22. END
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品在欧美一区二区少妇 | 中文字幕在线播放第一页 | 久久亚洲国产精品 | 超碰免费在线观看 | 久久国产欧美日韩精品 | 国产999在线观看 | 欧美大片久久久 | 国产高清一区二区三区 | 亚洲精品乱码久久久久久蜜桃 | 久久久久久综合 | 黄免费观看视频 | www.97zyz.com | 精品视频一区二区 | 精品久久久久久久久久久久久久 | 人人人人干 | 中文字幕一区二区三区精彩视频 | 午夜影视大全 | 国产高清在线精品一区二区三区 | 91av在线电影| 天天综合天天 | 亚洲精品一区二区三区在线 | 国精日本亚洲欧州国产中文久久 | 国产亚洲久 | 久久这里只有精品首页 | aaaa一级毛片 | 国产观看 | 欧美成人精品一区二区男人看 | 国产99精品 | 国产精品久久久久无码av | 亚洲毛片在线观看 | 色婷婷一区| 欧美一级大片免费观看 | 91免费在线播放 | 一区二区三区中文字幕 | 成人二区 | 亚洲视频在线免费观看 | 日韩av美女电影 | 日韩 欧美 综合 | 欧美一区二区免费 | h视频在线免费观看 | 欧洲色综合 |