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

📄 music.lst

📁 51单片机应用开发实例之单片机演奏音乐歌曲实例
💻 LST
字号:
A51 MACRO ASSEMBLER  MUSIC                                                                06/23/2007 09:49:24 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN music.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE music.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;-----------------------------------
                       2     ;                   单片机演奏音乐实例
                       3     ;功能:演奏歌曲"祝你平安"
                       4     ;-----------------------------------
  0080                 5     BUZZER_PIN              EQU             P0.0 
  0030                 6     TIME_COUNT              DATA    30H
                       7     
0000                   8     ORG     0000H                           ;伪指令,指定程序从0000H开始存放
0000 02000E            9     LJMP    MAIN                            ;跳转指令,程序跳转到MAIN处
000B                  10     ORG     000BH                           ;伪指令,指定程序从T0入口地址000BH开始存放
000B 020065           11     LJMP    T0_INT                          ;跳转指令,程序跳转到T0_INT处
                      12     
000E                  13     MAIN:
000E 758160           14             MOV     SP,#60H                 ;给堆栈指针赋初值
0011 758CD8           15             MOV     TH0,#0D8H               ;设定定时器T0的初始值TH0
0014 758AEF           16             MOV     TL0,#0EFH               ;设定定时器T0的初始值TL0
0017 758901           17             MOV     TMOD,#01H               ;定时器T0工作在方式1
001A 75A882           18             MOV     IE,#82H                 ;中断允许
001D                  19     MUSIC0:
001D 900077           20             MOV     DPTR,#MUSIC_TABLE               ;表头地址传送到DPTR
0020 753000           21             MOV     TIME_COUNT,#00H                 ;中断计数器清0
0023 75F000           22             MOV     B,#00H                                  ;表序号清0
0026                  23     MUSIC1:
0026 E4               24             CLR             A
0027 93               25             MOVC    A,@A+DPTR                               ;查表取代码
0028 602F             26             JZ              END0                                    ;是00H,则结束
002A B4FF03           27             CJNE    A,#0FFH,MUSIC5
002D 02004A           28             LJMP    MUSIC3
0030                  29     MUSIC5:
0030 FE               30             MOV     R6,A
0031 A3               31             INC             DPTR
0032 E5F0             32             MOV     A,B
0034 93               33             MOVC    A,@A+DPTR                               ;取节拍代码送R7
0035 FF               34             MOV     R7,A
0036 D28C             35             SETB    TR0                                             ;启动计数
0038                  36     MUSIC2:
0038 B280             37             CPL             BUZZER_PIN                              ;
003A EE               38             MOV     A,R6
003B FB               39             MOV     R3,A
003C 12006E           40             LCALL   DELAY
003F EF               41             MOV     A,R7
0040 B530F5           42             CJNE    A,TIME_COUNT,MUSIC2             ;中断计数器(20H)=R7否?
                      43             ;不相等,则继续循环
0043 753000           44             MOV     TIME_COUNT,#00H                 ;等于,则取下一代码
0046 A3               45             INC             DPTR
0047 020026           46             LJMP    MUSIC1
004A                  47     MUSIC3:
004A C28C             48             CLR             TR0                                             ;休止100毫秒
004C 7A0D             49             MOV     R2,#0DH
004E                  50     MUSIC4:
004E 7BFF             51             MOV     R3,#0FFH
0050 12006E           52             LCALL   DELAY
0053 DAF9             53             DJNZ    R2,MUSIC4
0055 A3               54             INC             DPTR
0056 020026           55             LJMP    MUSIC1
0059                  56     END0:
0059 7A64             57             MOV     R2,#64H                                 ;歌曲结束,延时1秒后继续
005B                  58     MUSIC6:
A51 MACRO ASSEMBLER  MUSIC                                                                06/23/2007 09:49:24 PAGE     2

005B 7B00             59             MOV     R3,#00H
005D 12006E           60             LCALL   DELAY
0060 DAF9             61             DJNZ    R2,MUSIC6
0062 02001D           62             LJMP    MUSIC0
                      63     
0065                  64     T0_INT:
                      65     ;---------------------------------
                      66     ;     T0中断服务程序
                      67     ;12M晶振时,每10毫秒中断一次
                      68     ;---------------------------------    
0065 0530             69             INC             TIME_COUNT                              ;中断计数器加1
0067 758CD8           70             MOV     TH0,#0D8H
006A 758AEF           71             MOV     TL0,#0EFH
006D 32               72     RETI
                      73     
006E                  74     DELAY:
                      75     ;---------------------------------
                      76     ;     延时子程序
                      77     ;说明:延时时间通过R3传递,延时时间为(R3×20)uS
                      78     ;---------------------------------
006E 7C02             79             MOV     R4,#02H
0070                  80     DELAY1:
0070 00               81             NOP
0071 DCFD             82             DJNZ    R4,DELAY1
0073 00               83             NOP
0074 DBF8             84             DJNZ    R3,DELAY
0076 22               85     RET
                      86     
0077                  87     MUSIC_TABLE:
0077 26202020         88     DB 026H,020H,020H,020H,020H,020H,026H,010H,020H,010H,020H,080H,026H,020H,030H,020H
007B 20202610                
007F 20102080                
0083 26203020                
0087 30203910         89     DB 030H,020H,039H,010H,030H,010H,030H,080H,026H,020H,020H,020H,020H,020H,01CH,020H
008B 30103080                
008F 26202020                
0093 20201C20                
0097 20802B20         90     DB 020H,080H,02BH,020H,026H,020H,020H,020H,02BH,010H,026H,010H,02BH,080H,026H,020H
009B 26202020                
009F 2B102610                
00A3 2B802620                
00A7 30203020         91     DB 030H,020H,030H,020H,039H,010H,026H,010H,026H,060H,040H,010H,039H,010H,026H,020H
00AB 39102610                
00AF 26604010                
00B3 39102620                
00B7 30203020         92     DB 030H,020H,030H,020H,039H,010H,026H,010H,026H,080H,026H,020H,02BH,010H,02BH,010H
00BB 39102610                
00BF 26802620                
00C3 2B102B10                
00C7 2B203010         93     DB 02BH,020H,030H,010H,039H,010H,026H,010H,02BH,010H,02BH,020H,02BH,040H,040H,020H
00CB 39102610                
00CF 2B102B20                
00D3 2B404020                
00D7 20102010         94     DB 020H,010H,020H,010H,02BH,010H,026H,030H,030H,080H,018H,020H,018H,020H,026H,020H
00DB 2B102630                
00DF 30801820                
00E3 18202620                
00E7 20202040         95     DB 020H,020H,020H,040H,026H,020H,02BH,020H,030H,020H,030H,020H,01CH,020H,020H,020H
00EB 26202B20                
00EF 30203020                
00F3 1C202020                
00F7 20801C20         96     DB 020H,080H,01CH,020H,01CH,020H,01CH,020H,030H,020H,030H,060H,039H,010H,030H,010H
00FB 1C201C20                
00FF 30203060                
0103 39103010                
0107 20202B10         97     DB 020H,020H,02BH,010H,026H,010H,02BH,010H,026H,010H,026H,010H,02BH,010H,02BH,080H
A51 MACRO ASSEMBLER  MUSIC                                                                06/23/2007 09:49:24 PAGE     3

010B 26102B10                
010F 26102610                
0113 2B102B80                
0117 18201820         98     DB 018H,020H,018H,020H,026H,020H,020H,020H,020H,060H,026H,010H,02BH,020H,030H,020H
011B 26202020                
011F 20602610                
0123 2B203020                
0127 30201C20         99     DB 030H,020H,01CH,020H,020H,020H,020H,080H,026H,020H,030H,010H,030H,010H,030H,020H
012B 20202080                
012F 26203010                
0133 30103020                
0137 39202610        100     DB 039H,020H,026H,010H,02BH,010H,02BH,020H,02BH,040H,040H,010H,040H,010H,020H,010H
013B 2B102B20                
013F 2B404010                
0143 40102010                
0147 20102B10        101     DB 020H,010H,02BH,010H,026H,030H,030H,080H,000H
014B 26303080                
014F 00                      
                     102     
                     103     END
A51 MACRO ASSEMBLER  MUSIC                                                                06/23/2007 09:49:24 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

B. . . . . . . . .  D ADDR   00F0H   A   
BUZZER_PIN . . . .  B ADDR   0080H.0 A   
DELAY. . . . . . .  C ADDR   006EH   A   
DELAY1 . . . . . .  C ADDR   0070H   A   
END0 . . . . . . .  C ADDR   0059H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
MAIN . . . . . . .  C ADDR   000EH   A   
MUSIC0 . . . . . .  C ADDR   001DH   A   
MUSIC1 . . . . . .  C ADDR   0026H   A   
MUSIC2 . . . . . .  C ADDR   0038H   A   
MUSIC3 . . . . . .  C ADDR   004AH   A   
MUSIC4 . . . . . .  C ADDR   004EH   A   
MUSIC5 . . . . . .  C ADDR   0030H   A   
MUSIC6 . . . . . .  C ADDR   005BH   A   
MUSIC_TABLE. . . .  C ADDR   0077H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
SP . . . . . . . .  D ADDR   0081H   A   
T0_INT . . . . . .  C ADDR   0065H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TIME_COUNT . . . .  D ADDR   0030H   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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