⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.asm

📁 用汇编语言编写的的生日歌(改进)版与乐器演奏的相似度非常高
💻 ASM
字号:
		    
/*********************************************************************************************************				   */


/*          DGUT            */
/*
/*学习板系列测试代码,*/
/*
/*其他最新代码请登陆:http://219.222.172.222*/
/*或者加入Q群:52145070。*/
/*共同学习探讨单片机,ARM,FPGA*/
/*
/*东莞理工学院8A105室*/
/*
/*////////////////*/	
/*			
**------------------------------------------------------------------------------------------------------

**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
*/
/*******************************************************************************
                                           
********************************************************************************
                                                                               *
                                                         *
               蜂鸣器唱《祝你平安》                                           * 
                                                                               *
********************************************************************************/
SPK bit P3.4	//蜂鸣器接口脚

 ORG 0000H
 LJMP START
 ORG 000BH
 INC 20H ;中断服务,中断计数器加1
 MOV TH0,#07CH
 MOV TL0,#0eFH ;24M晶振,形成10毫秒中断
 RETI

START: 
 MOV SP,#50H
 MOV TH0,#0D8H
 MOV TL0,#0EFH
 MOV TMOD,#01H
 MOV IE,#82H
MUSIC0:
 NOP
 MOV DPTR,#DAT ;表头地址送DPTR
 MOV 20H,#00H ;中断计数器清0
 MOV B,#00H ;表序号清0
MUSIC1:
 NOP
 CLR A
 MOVC A,@A+DPTR ;查表取代码
 JZ END0 ;是00H,则结束
 CJNE A,#0FFH,MUSIC5
 LJMP MUSIC3
MUSIC5:
 NOP
 MOV R6,A
 INC DPTR
 MOV A,B
 MOVC A,@A+DPTR ;取节拍代码送R7
 MOV R7,A
 SETB TR0 ;启动计数
MUSIC2:
 NOP
 CPL SPK
 MOV P2,20H;
  MOV P0,20H;
 MOV A,R6
 MOV R3,A
 LCALL DEL
 MOV A,R7
 CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
 MOV 20H,#00H ;等于,则取下一代码
 INC DPTR
; INC B
 LJMP MUSIC1
MUSIC3:
 NOP
 CLR TR0 ;休止100毫秒
 MOV R2,#0DH
MUSIC4:
 NOP
 MOV R3,#0FFH
 LCALL DEL
 DJNZ R2,MUSIC4
 INC DPTR
 LJMP MUSIC1
END0:
 NOP
 MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
 MOV R3,#00H
 LCALL DEL
 DJNZ R2,MUSIC6
 LJMP MUSIC0
DEL:
 NOP
DEL3: 
 MOV R4,#02H
DEL4: 
 NOP
 DJNZ R4,DEL4
 NOP
 DJNZ R3,DEL3
 RET
 NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H

 END 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -