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