?? music.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 + -