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

📄 music.lst

📁 用单片机编写的一段歌曲
💻 LST
字号:
A51 MACRO ASSEMBLER  MUSIC                                                                02/13/2006 15:00:14 PAGE     1


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

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

00CF 2E02                    
00D1 2E02                    
00D3 2E02                    
00D5 2E06                    
00D7 2C02                    
00D9 2902            110             DW      2902H,2C02H,2D02H,2A02H,2908H           ;祈祷花开早
00DB 2C02                    
00DD 2D02                    
00DF 2A02                    
00E1 2908                    
00E3 2902            111             DW      2902H,2E02H,2E02H,2C02H,2906H,2702H     ;一日看三回
00E5 2E02                    
00E7 2E02                    
00E9 2C02                    
00EB 2906                    
00ED 2702                    
00EF 2502            112             DW      2502H,2702H,2502H,2402H,2206H,1D02H     ;看得花时过
00F1 2702                    
00F3 2502                    
00F5 2402                    
00F7 2206                    
00F9 1D02                    
00FB 1D02            113             DW      1D02H,2502H,2502H,2402H,2206H,2902H     ;兰花却依然
00FD 2502                    
00FF 2502                    
0101 2402                    
0103 2206                    
0105 2902                    
0107 2702            114             DW      2702H,2502H,2402H,2002H,2208H           ;苞也无一个
0109 2502                    
010B 2402                    
010D 2002                    
010F 2208                    
0111 0000            115             DW      0000H                                   ;
                     116             
                     117             END     
A51 MACRO ASSEMBLER  MUSIC                                                                02/13/2006 15:00:14 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   
P3 . . . . . . . .  D ADDR   00B0H   A   
REPEAT . . . . . .  C ADDR   001CH   A   
SDELAY . . . . . .  C ADDR   003BH   A   
SONG . . . . . . .  C ADDR   0015H   A   
SOUND. . . . . . .  C ADDR   0032H   A   
SPK. . . . . . . .  B ADDR   00B0H.3 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -