📄 wl003.lst
字号:
A51 MACRO ASSEMBLER WL003 02/04/2005 14:23:49 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN wl003.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE wl003.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ;* *
3 ;* File : wl003.asm *
4 ;* Date : 2004-1-5 *
5 ;* Version : 1.0 *
6 ;* *
7 ;* Author : Freeman freeman@willar.com *
8 ;* Company : Willar www.willar.com *
9 ;* *
10 ;********************************************************************************
11 ;* Descriptoon: *
12 ;* 单片机播放音乐 *
13 ;* *
14 ;* *
15 ;* *
16 ;********************************************************************************
17
00B7 18 SPK EQU P3.7 ; 蜂鸣器所在端口
19
0000 20 ORG 0000H
0000 8000 21 JMP START
22
0002 23 START:
0002 7B00 24 MOV R3,#00H
0004 25 NEXT:
0004 EB 26 MOV A,R3
0005 9000B7 27 MOV DPTR,#TABLE
0008 93 28 MOVC A,@A+DPTR
0009 60F7 29 JZ START
000B FF 30 MOV R7,A
000C 0B 31 INC R3
000D EB 32 MOV A,R3
000E 93 33 MOVC A,@A+DPTR
000F FA 34 MOV R2,A
0010 1115 35 ACALL SONG
0012 0B 36 INC R3
0013 80EF 37 SJMP NEXT
38
39
40 ;===============================================================================
41 ;=== 歌曲播放子程序 ===
0015 42 SONG:
0015 EA 43 MOV A,R2 ; 取出节拍
0016 23 44 RL A
0017 7002 45 JNZ KEEP
0019 7401 46 MOV A,#01H
001B 47 KEEP:
001B FA 48 MOV R2,A
001C 49 REPEAT:
001C 1121 50 ACALL EIGHTH
001E DAFC 51 DJNZ R2,REPEAT
0020 22 52 RET
53
54 ;===============================================================================
55 ;=== 产生1/8拍延时子程序 ===
0021 56 EIGHTH:
0021 EF 57 MOV A,R7 ; 查表取出廷时参数,保存到R4
0022 90007E 58 MOV DPTR,#DELAY_T
A51 MACRO ASSEMBLER WL003 02/04/2005 14:23:49 PAGE 2
0025 93 59 MOVC A,@A+DPTR
0026 FC 60 MOV R4,A
0027 EF 61 MOV A,R7 ; 查表取出1/8拍周期数,保存到R5
0028 900045 62 MOV DPTR,#S_PARA
002B 93 63 MOVC A,@A+DPTR
002C FD 64 MOV R5,A
002D 65 NEXTCYC:
002D 1132 66 ACALL SOUND
002F DDFC 67 DJNZ R5,NEXTCYC
0031 22 68 RET
69
70 ;===============================================================================
71 ;=== 发声子程序 ===
0032 72 SOUND:
0032 D2B7 73 SETB SPK
0034 113B 74 ACALL SDELAY
0036 C2B7 75 CLR SPK
0038 113B 76 ACALL SDELAY
003A 22 77 RET
78
79 ;===============================================================================
80 ;=== 延时子程序 ===
003B 81 SDELAY:
003B EC 82 MOV A,R4 ; 廷时值在R4内
003C F8 83 MOV R0,A
003D 84 XL2:
003D 7903 85 MOV R1,#03H
003F 86 DL1:
003F 00 87 NOP
0040 D9FD 88 DJNZ R1,DL1
0042 D8F9 89 DJNZ R0,XL2
0044 22 90 RET
91 ;===============================================================================
92 ;=== 1/8拍周期表 ===
0045 93 S_PARA:
0045 94 DS 1DH
0062 151600 95 DB 15H,16H,00
0065 19001C00 96 DB 19H,00H,1CH,00H,1FH,21H,00H,25H
0069 1F210025
006D 00292C00 97 DB 00H,29H,2CH,00H,31H,34H,37H,00H
0071 31343700
0075 3E410049 98 DB 3EH,41H,00H,49H,00H,52H,57H,00H
0079 00525700
007D 62 99 DB 62H
100
101 ;===============================================================================
102 ;=== 延时参数表 ===
007E 103 DELAY_T:
007E 104 DS 1DH
009B 7E7700 105 DB 7EH,77H,00H
009E 6A005E00 106 DB 6AH,00H,5EH,00H,54H,4FH,00H,46H
00A2 544F0046
00A6 003F3B00 107 DB 00H,3FH,3BH,00H,35H,32H,2FH,00H
00AA 35322F00
00AE 2A270023 108 DB 2AH,27H,00H,23H,00H,1FH,1DH,0C0H
00B2 001F1DC0
00B6 1A 109 DB 1AH
110
111 ;===============================================================================
112 ;=== 歌曲表 ===
00B7 113 TABLE:
00B7 2202 114 DW 2202H,2902H,2902H,2902H,2906H,2702H ;我从山中来
00B9 2902
00BB 2902
00BD 2902
00BF 2906
A51 MACRO ASSEMBLER WL003 02/04/2005 14:23:49 PAGE 3
00C1 2702
00C3 2502 115 DW 2502H,2702H,2502H,2402H,2208H ;带着兰花草
00C5 2702
00C7 2502
00C9 2402
00CB 2208
00CD 2E02 116 DW 2E02H,2E02H,2E02H,2E02H,2E06H,2C02H ;种在小园中
00CF 2E02
00D1 2E02
00D3 2E02
00D5 2E06
00D7 2C02
00D9 2902 117 DW 2902H,2C02H,2D02H,2A02H,2908H ;祈祷花开早
00DB 2C02
00DD 2D02
00DF 2A02
00E1 2908
00E3 2902 118 DW 2902H,2E02H,2E02H,2C02H,2906H,2702H ;一日看三回
00E5 2E02
00E7 2E02
00E9 2C02
00EB 2906
00ED 2702
00EF 2502 119 DW 2502H,2702H,2502H,2402H,2206H,1D02H ;看得花时过
00F1 2702
00F3 2502
00F5 2402
00F7 2206
00F9 1D02
00FB 1D02 120 DW 1D02H,2502H,2502H,2402H,2206H,2902H ;兰花却依然
00FD 2502
00FF 2502
0101 2402
0103 2206
0105 2902
0107 2702 121 DW 2702H,2502H,2402H,2002H,2208H ;苞也无一个
0109 2502
010B 2402
010D 2002
010F 2208
0111 0000 122 DW 0000H ;
123
124 END
A51 MACRO ASSEMBLER WL003 02/04/2005 14:23:49 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.7 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 + -