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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7651|回復: 2
收起左側

用單片機實現的音樂播放器原理圖和匯編語言程序

[復制鏈接]
ID:210140 發表于 2017-6-11 16:38 | 顯示全部樓層 |閱讀模式
用單片機實現的音樂播放器

原理圖:
101208f020igbkkb2g2oe6.png.thumb.jpg

單片機匯編語言源程序如下:
  1. 用單片機實現的音樂播放器
  2. 源程序清單


  3.         ;**************************************;
  4.   ;            MCU音樂播放器             ;
  5.   ;作者:耶濤                             ;
  6.   ;開發時間:2005年9月20日                ;
  7.   ;**************************************;

  8.         ORG 0000H
  9.         AJMP START
  10.         ORG 000BH
  11.         AJMP TIM0
  12.         ORG 001BH
  13.         RETI
  14.         ORG 0023H
  15. START:  MOV R5,#00H                  ;初始化
  16.         MOV TMOD,#00010001B         
  17.         MOV IE,#10101010B
  18.         MOV DPTR,#TAB2               ;裝第一首歌
  19.         MOV 30H,DPL                  ;DPTR低8位送30H暫存
  20.         MOV 31H,DPH                  ;DPTR高8位送31H暫存
  21. START1: INC R7                       ;產生8位隨機數
  22.         MOV A,#12H
  23.         MOV B,R7
  24.         MUL AB
  25.         MOV P1,A                     ;8位隨機數由P1口輸出
  26.         MOV DPL,30H
  27.         MOV DPH,31H
  28.         MOV A,#00H
  29.         MOVC A,@A+DPTR               ;查表
  30.         MOV R0,A                     ;音符數據送R0嶄存
  31.         MOV A,#00H
  32.         INC DPTR
  33.         MOVC A,@A+DPTR               ;查表
  34.         MOV R1,A                     ;節拍數據送R1嶄存
  35.         INC DPTR
  36.         MOV 30H,DPL
  37.         MOV 31H,DPH
  38.         CJNE A,#01H,ELECT            ;一首歌沒結束轉ELECT
  39.         INC R5                       ;結束歌曲計數器加1
  40. ELECT: JZ START                     ;所有歌曲結束轉START循環
  41.         MOV A,R0
  42.         JNZ SING
  43.         CLR TR0
  44.          SETB P3.7
  45.   LOOP1: ACALL DELAY                  ;調用延時子程序
  46.          DJNZ R1,LOOP1
  47.          SJMP START1
  48.    SING: MOV DPTR,#TAB1               ;音符表首址送DPTR
  49.          DEC R0                       ;計算音符
  50.          MOV A,R0
  51.          MOV B,#02H                  
  52.          MUL AB
  53.          MOV R0,A
  54.          MOVC A,@A+DPTR               ;查表
  55.          MOV 21H,A
  56.          INC DPTR
  57.          MOV A,R0
  58.          MOVC A,@A+DPTR
  59.          MOV 20H,A
  60.          MOV TL0,20H                 
  61.          MOV TH0,21H
  62.          SETB TR0                     ;開T0定時器
  63.   LOOP2: ACALL DELAY
  64.          DJNZ R1,LOOP2
  65.          AJMP START1
  66.    TIM0: MOV TL0,20H
  67.          MOV TH0,21H
  68.          CPL P3.7
  69.          RETI                         ;中斷返回
  70.   DELAY: MOV R2,#70
  71. DELAY1: MOV R3,#252
  72.          DJNZ R3,$
  73.          JNB P3.4,FORM                ;上一曲開關按下轉FORM
  74.          JNB P3.5,NEXT                ;下一曲開關按下轉NEXT
  75.          DJNZ R2,DELAY1
  76.          RET
  77.    FORM: CLR EA                        ;關中斷
  78.          JNB P3.4,[        DISCUZ_CODE_1        ]nbsp;                   ;等待鍵釋放
  79.          CJNE R5,#00H,ZERO             ;不是第一首歌曲轉ZER0
  80.          MOV R5,#08H                   ;是第一首將最后一首歌曲裝入歌曲計數器
  81.          SJMP KEYWORK
  82.    ZERO: DEC R5                        ;歌曲向上進一首
  83.          SJMP KEYWORK
  84.    NEXT: CLR EA
  85.          JNB P3.5,$
  86.          INC R5                        ;歌曲下翻一首
  87. KEYWORK: MOV DPTR,#TAB                 ;將歌曲排列表裝入DPTR
  88.          MOV A,R5                      ;將R5的內容送A
  89.          RL A                          
  90.          SETB EA                       ;開中斷
  91.          JMP @A+DPTR                   ;根據A的內容轉向不同歌曲
  92.     TAB: AJMP MUSIC2
  93.          AJMP MUSIC3
  94.          AJMP MUSIC4
  95.          AJMP MUSIC5
  96. MUSIC2: MOV DPTR,#TAB2                ;第2首歌曲首址送DPTR
  97.    GONG: MOV 30H,DPL
  98.          MOV 31H,DPH
  99.          AJMP START1
  100. MUSIC3: MOV DPTR,#TAB3
  101.          SJMP GONG
  102. MUSIC4: MOV DPTR,#TAB4
  103.          SJMP GONG
  104. MUSIC5: MOV DPTR,#TAB5
  105.          SJMP GONG
  106.                  
  107. ;********************(音符表)**********************;
  108. TAB1: DW 64021,64185,64331,64400,64524,64632,64732,
  109.        DW 64777,64860,64934,64968,65030,65085,65134,
  110.        DW 65157,65198,65235,65252,65283,65310,65335,
  111. ;*********************(蘭花草)***********************;
  112.         TAB2: DW 0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908H,
  113.        DW 0808H,0708H,0620H,0D08H,0D08H,0D08H,0D08H,0D18H,
  114.        DW 0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08H,
  115.        DW 0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708H,
  116.        DW 0610H,0310H,0308H,0808H,0808H,0708H,0618H,0A08H,
  117.        DW 0908H,0808H,0708H,0508H,0620H,0908H,0808H,0708H,
  118.        DW 0508H,0640H,0001H
  119. ;**********************(梁祝)*************************;
  120. TAB3: DW 0A10H,0C08H,0D04H,0F08H,1004H,0D04H,0F04H,0C08H,
  121.        DW 1308H,1504H,1404H,1304H,1104H,1304H,1018H,1008H,
  122.        DW 1004H,1104H,0E08H,0D04H,0C08H,0D04H,0F08H,1008H,
  123.        DW 0A08H,0F08H,0D04H,0C04H,0D04H,0F04H,0C18H,1108H,
  124.        DW 1304H,0E08H,1008H,0D04H,0F04H,0C08H,0C10H,0A08H,
  125.        DW 0C02H,0A08H,0C08H,0D02H,0E04H,1004H,0D18H,0C04H,
  126.        DW 0D04H,0F08H,1004H,1308H,1108H,1008H,1104H,1004H,
  127.        DW 0F08H,0D04H,0C04H,0A10H,0F10H,0D08H,0F02H,0D04H,
  128.        DW 0C04H,0A04H,0C04H,0D04H,0F04H,0C38H,0001H
  129. ;*****************(讓我們蕩起雙槳)*********************;
  130.         TAB4: DW 0608H,0808H,0908H,0A18H,0C08H,0A08H,0808H,0910H,
  131.        DW 0620H,0008H,0808H,0908H,0A08H,0C18H,0001H,0C08H,
  132.        DW 0D10H,0910H,0A30H,0001H,0A08H,0C08H,0D20H,0C18H,
  133.        DW 0D08H,0F08H,0E04H,0D04H,0C08H,0D08H,0A10H,0004H,
  134.        DW 0808H,0908H,0A18H,0C08H,0810H,0610H,0808H,0908H,
  135.        DW 0A08H,0D08H,0C30H,0010H,0A20H,0D18H,0001H,0D08H,
  136.        DW 0C08H,0B08H,0A10H,0001H,0920H,0A18H,0C08H,0608H,
  137.        DW 0808H,0910H,0010H,0808H,0908H,0A10H,0C0BH,0001H,
  138.        DW 0C04H,0D10H,0F10H,0E08H,0D08H,0C08H,0A08H,0D40H,
  139.        DW 0001H
  140. ;*********************(童年)****************************;
  141.         TAB5: DW 0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08H,
  142.        DW 0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08H,
  143.        DW 0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10H,
  144.        DW 0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08H,
  145.        DW 0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08H,
  146.        DW 0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008H,
  147. ……………………

  148. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
用單片機實現的音樂播放器圖和程序070302.rar (70.73 KB, 下載次數: 57)

評分

參與人數 1黑幣 +5 收起 理由
落羽wy + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:241627 發表于 2017-12-12 10:39 | 顯示全部樓層
謝謝分享,來搞個手機鈴聲
回復

使用道具 舉報

ID:876573 發表于 2021-3-23 21:53 | 顯示全部樓層
這個系統有不少bug:
1、比如播放過程中按下“下一首”或者“上一首”的時候會隨機的變成“嘟嘟嘟”或者“長鳴”等的噪音;
2、按一首歌還沒有播放完的時候,按下“下一首”或者“上一首”歌曲:其實并不是真正的“上一首”或者“下一首”歌曲,也就是說會亂掉

期待樓主改進、分享,謝謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线播放一区二区三区 | 不卡一二三区 | 涩爱av一区二区三区 | 99久久久久 | 在线播放中文字幕 | 国产成人精品午夜视频免费 | 久久精品视频网站 | 狠狠爱免费视频 | 天天噜天天干 | 国产精品久久久久久久久久软件 | 日韩精品福利 | 日韩色图在线观看 | 日韩精品在线视频 | 国产视频一区在线 | 国产精品国产精品国产专区不卡 | 亚洲成人精品 | 亚洲一区二区日韩 | 久久精品在线播放 | 欧美国产日韩在线观看 | 午夜不卡一区二区 | 久久天堂| 久久午夜视频 | 成人欧美一区二区三区黑人孕妇 | 日本不卡一区二区三区 | a视频在线观看 | 福利社午夜影院 | 国产欧美一区二区三区久久手机版 | 男女羞羞视频网站 | 另类专区亚洲 | 亚洲第1页| 欧美一区二区三区久久精品 | 色综合美女 | 天天躁日日躁aaaa视频 | 天天操天天操 | 久久久91精品国产一区二区三区 | 日韩欧美中文 | 一区二区三区影院 | 国产精品久久久久久久久久久久午夜片 | 欧美精品一区二区三区四区五区 | 亚洲毛片| 成人免费观看男女羞羞视频 |