music.lst

来自「该程序是个蜂鸣器的调试程序」· LST 代码 · 共 198 行

LST
198
字号
A51 MACRO ASSEMBLER  MUSIC                                                                05/28/2007 21:00:26 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Music.OBJ
ASSEMBLER INVOKED BY: D:\mcu\keil\C51\BIN\A51.EXE Music.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;copyright:-----维斯特开发天地-----
                       2     
                       3     ;===============================================================================
  00E8                 4     P4      EQU     0E8H                    ; P4口扩展
  00E8                 5     SPK     EQU     P4.0                    ; 蜂鸣器所在端口
                       6            
0000                   7             ORG     0000H
0000 8000              8             JMP     START
                       9             
0002                  10     START:
0002 7B00             11             MOV     R3,#00H
0004                  12     NEXT:
0004 EB               13             MOV     A,R3
0005 9000B7           14             MOV     DPTR,#TABLE
0008 93               15             MOVC    A,@A+DPTR
0009 60F7             16             JZ      START
000B FF               17             MOV     R7,A
000C 0B               18             INC     R3
000D EB               19             MOV     A,R3
000E 93               20             MOVC    A,@A+DPTR
000F FA               21             MOV     R2,A
0010 1115             22             ACALL   SONG
0012 0B               23             INC     R3
0013 80EF             24             SJMP    NEXT
                      25     
                      26     
                      27     ;===============================================================================        
                      28     ;===  歌曲播放子程序 ===
0015                  29     SONG:
0015 EA               30             MOV     A,R2                                    ; 取出节拍
0016 23               31             RL      A
0017 7002             32             JNZ     KEEP
0019 7401             33             MOV     A,#01H
001B                  34     KEEP:
001B FA               35             MOV     R2,A
001C                  36     REPEAT:
001C 1121             37             ACALL   EIGHTH
001E DAFC             38             DJNZ    R2,REPEAT
0020 22               39             RET
                      40             
                      41     ;===============================================================================        
                      42     ;===  产生1/8拍延时子程序  ===          
0021                  43     EIGHTH:
0021 EF               44             MOV     A,R7                                    ; 查表取出廷时参数,保存到R4
0022 90007E           45             MOV     DPTR,#DELAY_T
0025 93               46             MOVC    A,@A+DPTR
0026 FC               47             MOV     R4,A
0027 EF               48             MOV     A,R7                                    ; 查表取出1/8拍周期数,保存到R5
0028 900045           49             MOV     DPTR,#S_PARA
002B 93               50             MOVC    A,@A+DPTR
002C FD               51             MOV     R5,A
002D                  52     NEXTCYC:
002D 1132             53             ACALL   SOUND
002F DDFC             54             DJNZ    R5,NEXTCYC
0031 22               55             RET
                      56             
                      57     ;===============================================================================        
                      58     ;===  发声子程序 ===    
A51 MACRO ASSEMBLER  MUSIC                                                                05/28/2007 21:00:26 PAGE     2

0032                  59     SOUND:
0032 D2E8             60             SETB    SPK
0034 113B             61             ACALL   SDELAY
0036 C2E8             62             CLR     SPK
0038 113B             63             ACALL   SDELAY
003A 22               64             RET
                      65             
                      66     ;===============================================================================        
                      67     ;===  延时子程序  ===
003B                  68     SDELAY:
003B EC               69             MOV     A,R4                                    ; 廷时值在R4内
003C F8               70             MOV     R0,A
003D                  71     XL2:
003D 7902             72             MOV     R1,#2H
003F                  73     DL1:
003F 00               74             NOP
0040 D9FD             75             DJNZ    R1,DL1
0042 D8F9             76             DJNZ    R0,XL2
0044 22               77             RET
                      78     ;===============================================================================        
                      79     ;===  1/8拍周期表  ===
0045                  80     S_PARA:
0045                  81             DS      1DH
0062 151600           82             DB      15H,16H,00
0065 19001C00         83             DB      19H,00H,1CH,00H,1FH,21H,00H,25H
0069 1F210025                
006D 00292C00         84             DB      00H,29H,2CH,00H,31H,34H,37H,00H
0071 31343700                
0075 3E410049         85             DB      3EH,41H,00H,49H,00H,52H,57H,00H
0079 00525700                
007D 62               86             DB      62H
                      87             
                      88     ;===============================================================================        
                      89     ;===  延时参数表  ===
007E                  90     DELAY_T:
007E                  91             DS      1DH
009B 7E7700           92             DB      7EH,77H,00H
009E 6A005E00         93             DB      6AH,00H,5EH,00H,54H,4FH,00H,46H
00A2 544F0046                
00A6 003F3B00         94             DB      00H,3FH,3BH,00H,35H,32H,2FH,00H
00AA 35322F00                
00AE 2A270023         95             DB      2AH,27H,00H,23H,00H,1FH,1DH,0C0H
00B2 001F1DC0                
00B6 1A               96             DB      1AH
                      97             
                      98     ;===============================================================================        
                      99     ;===  歌曲表  ===
00B7                 100     TABLE:
00B7 2202            101             DW      2202H,2902H,2902H,2902H,2906H,2702H     ;我从山中来
00B9 2902                    
00BB 2902                    
00BD 2902                    
00BF 2906                    
00C1 2702                    
00C3 2502            102             DW      2502H,2702H,2502H,2402H,2208H           ;带着兰花草
00C5 2702                    
00C7 2502                    
00C9 2402                    
00CB 2208                    
00CD 2E02            103             DW      2E02H,2E02H,2E02H,2E02H,2E06H,2C02H     ;种在小园中
00CF 2E02                    
00D1 2E02                    
00D3 2E02                    
00D5 2E06                    
00D7 2C02                    
00D9 2902            104             DW      2902H,2C02H,2D02H,2A02H,2908H           ;祈祷花开早
A51 MACRO ASSEMBLER  MUSIC                                                                05/28/2007 21:00:26 PAGE     3

00DB 2C02                    
00DD 2D02                    
00DF 2A02                    
00E1 2908                    
00E3 2902            105             DW      2902H,2E02H,2E02H,2C02H,2906H,2702H     ;一日看三回
00E5 2E02                    
00E7 2E02                    
00E9 2C02                    
00EB 2906                    
00ED 2702                    
00EF 2502            106             DW      2502H,2702H,2502H,2402H,2206H,1D02H     ;看得花时过
00F1 2702                    
00F3 2502                    
00F5 2402                    
00F7 2206                    
00F9 1D02                    
00FB 1D02            107             DW      1D02H,2502H,2502H,2402H,2206H,2902H     ;兰花却依然
00FD 2502                    
00FF 2502                    
0101 2402                    
0103 2206                    
0105 2902                    
0107 2702            108             DW      2702H,2502H,2402H,2002H,2208H           ;苞也无一个
0109 2502                    
010B 2402                    
010D 2002                    
010F 2208                    
0111 0000            109             DW      0000H                                   ;
                     110             
                     111             END     
A51 MACRO ASSEMBLER  MUSIC                                                                05/28/2007 21:00:26 PAGE     4

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


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

DELAY_T. . . . . .  C ADDR   007EH   A   
DL1. . . . . . . .  C ADDR   003FH   A   
EIGHTH . . . . . .  C ADDR   0021H   A   
KEEP . . . . . . .  C ADDR   001BH   A   
NEXT . . . . . . .  C ADDR   0004H   A   
NEXTCYC. . . . . .  C ADDR   002DH   A   
P4 . . . . . . . .  N NUMB   00E8H   A   
REPEAT . . . . . .  C ADDR   001CH   A   
SDELAY . . . . . .  C ADDR   003BH   A   
SONG . . . . . . .  C ADDR   0015H   A   
SOUND. . . . . . .  C ADDR   0032H   A   
SPK. . . . . . . .  B ADDR   00E8H.0 A   
START. . . . . . .  C ADDR   0002H   A   
S_PARA . . . . . .  C ADDR   0045H   A   
TABLE. . . . . . .  C ADDR   00B7H   A   
XL2. . . . . . . .  C ADDR   003DH   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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