网站首页  |  电子入门  |   应用技术  |   单片机技术  |   作品展示  |   协会动态  |   IT资讯  |   下载中心  |   本站留言  |  图片文章  |  荣誉证书  |  关于协会
  用户名: 密码: 验证码:       
今天是:

共有 20824 位读者读过此文 【选择字体颜色】: 【字体:放大 正常 缩小】     【双击自动滚屏】【图片滚轮变焦】

音乐播放器和电子琴汇编程序

发表日期:2007年4月20日   出处:电子技术研究协会 作者:李德文 【编辑录入:zouwenkun

 

 音乐播放器和电子琴

本程序可直接使用

OUT       BIT    P0.0
NEXTSONG  BIT    P3.2
LASTSONG  BIT    P3.3
PLAY      BIT    P3.4
SONGNUM   EQU    40H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          ORG    0000H
          AJMP   START
          ORG    0003H
          AJMP   INT0
          ORG    000BH
          AJMP   TIME
          ORG    0013H
          AJMP   INT1
          ORG    0100H
START:    MOV    SONGNUM,#0
          MOV    50H,#0
          MOV    TMOD,#01H         ;T0   方式1
          SETB   EA
          SETB   ET0               ;允许T0中断
          SETB   IT0               ;INT0 边沿触发
          SETB   IT1               ;INT1 边沿触发
          SETB   EX0               ;外部中断0
          SETB   EX1               ;外部中断1
          SETB   PX0               ;优先级1 INT0
          SETB   PX1               ;优先级2 INT1
START0:   MOV    30H,#0            ;音符+节拍序列号
NEXT:     ACALL  SON
          MOV    A,30H
          MOVC   A,@A+DPTR
          MOV    R2,A
          JZ     START0
          ANL    A,#0FH
          MOV    R5,A
          MOV    A,R2
          SWAP   A
          ANL    A,#0FH
          JNZ    SING
      ;    CLR   TR0
          AJMP   SING1
SING:     DEC    A
          MOV    60H,A
          MOV    A,SONGNUM
          CJNE   A,#0,SHIJIAN
          MOV    50H,#2
          AJMP   JK
SHIJIAN:  MOV    50H,#4         
JK:       MOV    A,60H
          ADD    A,50H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          MOV    22H,A
          RL     A
          MOV    DPTR,#TABLE1
          MOVC   A,@A+DPTR
          MOV    TH0,A
          MOV    21H,A
          MOV    A,22H
          RL     A
          INC    A
          MOVC   A,@A+DPTR
          MOV    TL0,A
          MOV    20H,A
     ;     SETB  TR0
SING1:    LCALL  DELAY
          INC    30H
          AJMP   NEXT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SON:      MOV    A,SONGNUM
SON0:     CJNE   A,#0,KON
          MOV    DPTR,#SONG0
          RET
KON:      CJNE   A,#1,SON1
          MOV    DPTR,#KONG
          RET
SON1:     CJNE   A,#10,SON2
          MOV    DPTR,#SONG1
          RET     
SON2:     CJNE   A,#2,SON3
          MOV    DPTR,#SONG2
          RET
SON3:     CJNE   A,#3,SON4
          MOV    DPTR,#SONG3
          RET
SON4:     CJNE   A,#4,SON5
          MOV    DPTR,#SONG4
          RET
SON5:     CJNE   A,#5,SON6
          MOV    DPTR,#SONG5
          RET
SON6:     CJNE   A,#6,SON7
          MOV    DPTR,#SONG6
          RET
SON7:     CJNE   A,#7,SON8
          MOV    DPTR,#SONG7
          RET
SON8:     CJNE   A,#8,SON9
          MOV    DPTR,#SONG8
          RET
SON9:     MOV    DPTR,#SONG9
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT0:     CLR    EX0
          PUSH   ACC
          PUSH   PSW
          ACALL  DELAY0
          JB     NEXTSONG,TO1            ;P3.2
K1:       MOV    A,SONGNUM
          INC    A
          MOV    SONGNUM,A
          CJNE   A,#11,TOE0
          MOV    SONGNUM,#0
TOE0:     ACALL  DISP
          MOV    30H,#0
TO1:      POP    PSW
          POP    ACC
          SETB   EX0
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT1:     CLR    EX1
          PUSH   ACC
          PUSH   PSW
          ACALL  DELAY0
          JB     LASTSONG,TO2            ;P3.3
          JNB    PLAY,K3                 ;P3.4
K2:       MOV    A,SONGNUM
          DEC    A
          MOV    SONGNUM,A
          CJNE   A,#0FFH,TOE1
          MOV    SONGNUM,#10
          AJMP   TOE1
K3:       ACALL  DELAY0
          CPL    TR0
TOE1:     ACALL  DISP
          MOV    30H,#0
TO2:      POP    PSW
          POP    ACC
          SETB   EX1
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;;T0中断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME:     PUSH   ACC
          PUSH   PSW
          MOV    TL0,20H
          MOV    TH0,21H
          CPL    OUT
          POP    PSW
          POP    ACC
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP:     PUSH   DPL
          PUSH   DPH
          MOV    A,SONGNUM
          MOV    DPTR,#TAB
          MOVC   A,@A+DPTR
          MOV    P1,A
          CLR    P2.0
          POP    DPH
          POP    DPL
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;消抖延时;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY0:   MOV    R6,#200
          MOV    R1,#250
          DJNZ   R1,$
          DJNZ   R6,$-4
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;延时;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:    MOV    R7,#2
D2:       MOV    R4,#155
D3:       MOV    R3,#248
          DJNZ   R3,$
          DJNZ   R4,D3
          DJNZ   R7,D2
          DJNZ   R5,DELAY
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TAB:      DB     0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H  ;0-9 "灭"
;;;;;;;;;;;;;;;;;;;;;;音符控制常数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TABLE1:   DW     63628,63835,64021,64103,64260,64400,64524     ;低音1234657
          DW     64580,64684,64777,64820,64898,64968,65030     ;中音1234567
          DW     65058,65110,65157,65178,65217,65252,65282     ;高音1234567
;;;;;;;;;;;;;;;;;;;;;;;;;音符+节拍;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG0:;;;;;;;;;;;;;;;;;;;兰花草;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,82H,82H,82H,86H,72H,63H,71H,62H,52H,48H
          DB     0B2H,0B2H,0B2H,0B2H,0B6H,0A2H
          DB     83H,0A1H,0A2H,92H,88H,82H,0B2H,0B2H,0A2H,86H,72H
          DB     63H,71H,62H,52H,44H,12H,02H
          DB     12H,62H,62H,52H,46H,82H,73H,61H,52H,32H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG1:;;;;;;;;;;;;;;;;;;;两只老虎;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     44H,54H,64H,44H
          DB     44H,54H,64H,44H
          DB     64H,74H,88H
          DB     64H,74H,88H
          DB     82H,92H,82H,72H,64H,44H
          DB     82H,92H,82H,72H,64H,44H
          DB     54H,14H,48H
          DB     54H,14H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG2:;;;;;;;;;;;;;;;;;;;生日快乐;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     82H,01H,81H,94H,84H
          DB     0B4H,0A4H,04H
          DB     82H,01H,81H,94H,84H
          DB     0C4H,0B4H,04H
          DB     82H,01H,81H,0F4H,0D4H
          DB     0B4H,0A4H,94H,04H
          DB     0E2H,01H,0E1H,0D4H,0B4H
          DB     0C4H,0B4H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG3:;;;;;;;;;;;;;;;;;;;两只蝴蝶;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     62H,52H,64H,04H,
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
          DB     62H,52H,64H,04H
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,54H,04H
          DB     62H,52H,64H,04H
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
          DB     62H,82H,84H,04H
          DB     82H,92H,82H,64H,04H
          DB     52H,62H,54H,64H,52H,42H,22H,42H,44H,04H
          DB     82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
          DB     62H,62H,82H,94H,94H,22H,62H,56H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
          DB     62H,62H,82H,94H,94H,22H,62H,56H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG4:;;;;;;;;;;;;;;;;;;;;记事本;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,82H,84H,0B2H,0A2H,0A2H,93H,04H
          DB     94H,92H,82H,82H,63H,62H,62H,52H,52H,42H,44H,04H
          DB     62H,52H,52H,42H,84H,04H
          DB     92H,82H,94H,82H,63H,04H
          DB     84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,83H,04H
          DB     84H,0B2H,0A2H,0A2H,93H,94H,82H,92H,82H,63H,04H
          DB     52H,62H,52H,62H,44H,04H
          DB     52H,62H,52H,42H,84H,04H
          DB     14H,62H,52H,52H,42H,54H,42H,44H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0D2H,0C2H,0C2H,0B2H,0C2H,0B2H,0B2H,0B2H,94H,84H,94H,64H,04H
          DB     64H,62H,52H,52H,42H,44H,04H
          DB     64H,62H,52H,52H,42H,84H,04H
          DB     84H,92H,82H,92H,83H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0D2H,0C2H,0C2H,0B2H,0D2H,0C2H,0C2H,0B2H,0C2H,0C2H,0C4H,0E4H,64H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,94H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,0B4H,96H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG5:;;;;;;;;;;;;;;;;;;;;;;;;新年快乐;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,42H,44H,14H,02H
          DB     62H,62H,64H,44H,04H
          DB     42H,62H,84H,84H,02H
          DB     72H,62H,54H,04H
          DB     52H,62H,74H,74H,02H
          DB     62H,52H,64H,44H,04H
          DB     42H,62H,54H,14H,02H
          DB     32H,52H,44H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG6:;;;;;;;;;;;;;;;;;;;;;;;;哈巴狗;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,42H,42H,52H,64H,04H
          DB     62H,62H,62H,72H,84H,04H
          DB     92H,92H,82H,72H,64H,04H
          DB     82H,82H,52H,62H,44H,04H
          DB     42H,42H,42H,52H,84H,04H
          DB     62H,62H,62H,72H,84H,04H
          DB     92H,92H,82H,72H,64H,04H
          DB     82H,82H,52H,62H,44H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG7:;;;;;;;;;;;;;;;;;;;;;;;;绿岛小夜曲;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H
          DB     0B2H,0A2H,82H ,72H,88H
          DB     72H, 82H,0A2H,82H,72H,62H,42H,62H
          DB     38H,38H
          DB     0A4H,02H,0B2H,0A4H,084H
          DB     72H,82H,72H,62H,72H,84H,72H
          DB     64H,62H,12H,34H,02H,42H
          DB     38H,38H
          DB     44H,02H,32H,44H,64H
          DB     72H,82H,72H,62H,72H,84H,0A2H
          DB     72H,74H,82H,0A2H,02H,0B2H
          DB     0A8H,0A8H
          DB     0B2H,0B4H,0A2H,84H,82H,72H
          DB     62H,72H,82H, 0A2H,88H
          DB     72H,74H,62H,42H,32H,32H,62H
          DB     78H,78H
          DB     82H,84H,72H,82H,0A2H,84H
          DB     72H,82H, 72H, 62H, 48H
          DB     32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H
          DB     68H,68H
          DB     0B2H, 0B2H,0A2H, 82H,84H,02H
          DB     72H,74H,62H,42H,32H,42H,62H
          DB     78H,78H
          DB     0A2H,0B2H,0A2H,72H,82H,84H,82H
          DB     72H,74H,62H,44H,64H
          DB     0A8H,0A4H,02H,0A2H
          DB     0A2H ,0B1H ,0A1H,82H,0A2H,0B4H,0B2H,0C2H
          DB     0A2H,0B2H,0A2H,82H,78H
          DB     84H,72H,62H,44H,02H,62H
          DB     72H,81H,71H,62H,72H,84H,02H,0A2H
          DB     0B4H,02H,82H,74H,82H,72H
          DB     68H,68H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG8:;;;;;;;;;;;;;;;;;;;;;弯弯的月亮;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     62H,82H,82H,62H,98H
          DB     92H,0B2H,0B2H,82H,98H
          DB     62H,82H,82H,52H,68H
          DB     92H,0B2H,0B2H,82H,92H,92H,94H
          DB     92H,0B2H,0B2H,92H,84H,94H
          DB     0B8H,0B4H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG9:;;;;;;;;;;;;;;;;;;;;妹妹背着洋娃娃;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     84H,02H,82H,64H,54H
          DB     64H,54H,48H
          DB     64H,02H,52H,44H,24H
          DB     14H,24H,18H
          DB     84H,94H,88H
          DB     64H,54H,68H
          DB     84H,64H,54H,44H
          DB     52H,42H,52H,62H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KONG:     DB     04H,00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          END

0
  • 上一篇:数控直流恒流源源程序
  • 下一篇:八路LED跑马灯实验
  • 相关专题:

  • 专题1信息无
  • 专题2信息无
  • 相关评论:(评论内容只代表网友观点,与本站立场无关!)

    发表人:[风云 IP:125.66.103.206 发表人邮件:1051880189@qq.com 发表时间:2010/4/22 22:11:39]

  • 评论内容:怎么不用c语言编程啊?我们不学汇编!
  • 发表人:[游客 IP:222.219.184.4 发表人邮件:guest@fmdiy.com 发表时间:2008/12/25 22:03:58]

  • 评论内容:

    有错误,编译不了。

  • 发表人:[an1314wdxbb IP:117.43.43.203 发表人邮件:493041636@qq.com 发表时间:2008/11/13 22:43:47]

  • 评论内容:怎么没有原理图啊 有原理图就更好了啊
  • 发表人:[Z_8587169 IP:122.195.156.134 发表人邮件:Z_8587169@SINA.COM 发表时间:2008/10/29 12:56:20]

  • 评论内容:不错,谢了啊
  • 发表人:[游客 IP:222.161.39.61 发表人邮件:shoxgov@yahoo.com 发表时间:2008/7/14 16:05:53]

  • 评论内容:i 不错,共享服务于大家
  • 发表、查看更多关于该信息的评论 将本信息发给好友 打印本页

    | 关于我们 | 网站地图 | 联系我们 | 帮助中心 | 图片新闻 | 荣誉证书 |
    Copyright © 2004-2017 www.dzxh.cn All Rights Reserved
    电子技术研究协会 中国·广东·广州·花都
    Powered By:ForecastNews v1.5(B1)
    点击这里给我发消息 xml聚合新闻rss2.0 firefox全面支持 Creative Commons License
    页面执行时间:31.250毫秒