📄 voice1.lst
字号:
A51 MACRO ASSEMBLER VOICE1 05/28/2007 21:03:53 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Voice1.OBJ
ASSEMBLER INVOKED BY: D:\mcu\keil\C51\BIN\A51.EXE Voice1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;标题 '八月桂花香'发声程序
2 ;摘要 详见'无线电'92年3期
3 ;作者 周振安
0000 4 ORG 0000H
00E8 5 P4 EQU 0E8H
0000 020014 6 LJMP START
000B 7 ORG 000BH
000B 0520 8 INC 20H ;中断服务,中断计数器加1
000D 758CD8 9 MOV TH0,#0D8H
0010 758AEF 10 MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
0013 32 11 RETI
0014 12 START:
0014 758150 13 MOV SP,#50H
0017 758CD8 14 MOV TH0,#0D8H
001A 758AEF 15 MOV TL0,#0EFH
001D 758901 16 MOV TMOD,#01H
0020 75A882 17 MOV IE,#82H
0023 18 MUSIC0:
0023 00 19 NOP
0024 90007D 20 MOV DPTR,#DAT ;表头地址送DPTR
0027 752000 21 MOV 20H,#00H ;中断计数器清0
002A 75F000 22 MOV B,#00H ;表序号清0
002D 23 MUSIC1:
002D 00 24 NOP
002E E4 25 CLR A
002F 93 26 MOVC A,@A+DPTR ;查表取代码
0030 6033 27 JZ END0 ;是00H,则结束
0032 B4FF03 28 CJNE A,#0FFH,MUSIC5
0035 020054 29 LJMP MUSIC3
0038 30 MUSIC5:
0038 00 31 NOP
0039 FE 32 MOV R6,A
003A A3 33 INC DPTR
003B E5F0 34 MOV A,B
003D 93 35 MOVC A,@A+DPTR ;取节拍代码送R7
003E FF 36 MOV R7,A
003F D28C 37 SETB TR0 ;启动计数
0041 38 MUSIC2:
0041 00 39 NOP
0042 B2E8 40 CPL P4.0
0044 EE 41 MOV A,R6
0045 FB 42 MOV R3,A
0046 120072 43 LCALL DEL
0049 EF 44 MOV A,R7
004A B520F4 45 CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
46 ;不等,则继续循环
004D 752000 47 MOV 20H,#00H ;等于,则取下一代码
0050 A3 48 INC DPTR
49 ; INC B
0051 02002D 50 LJMP MUSIC1
0054 51 MUSIC3:
0054 00 52 NOP
0055 C28C 53 CLR TR0 ;休止100毫秒
0057 7A0D 54 MOV R2,#0DH
0059 55 MUSIC4:
0059 00 56 NOP
005A 7BFF 57 MOV R3,#0FFH
005C 120072 58 LCALL DEL
A51 MACRO ASSEMBLER VOICE1 05/28/2007 21:03:53 PAGE 2
005F DAF8 59 DJNZ R2,MUSIC4
0061 A3 60 INC DPTR
0062 02002D 61 LJMP MUSIC1
0065 62 END0:
0065 00 63 NOP
0066 7A64 64 MOV R2,#64H ;歌曲结束,延时1秒后继续
0068 65 MUSIC6:
0068 7B00 66 MOV R3,#00H
006A 120072 67 LCALL DEL
006D DAF9 68 DJNZ R2,MUSIC6
006F 020023 69 LJMP MUSIC0
0072 70 DEL:
0072 00 71 NOP
0073 72 DEL3:
0073 7C02 73 MOV R4,#2H
0075 74 DEL4:
0075 00 75 NOP
0076 DCFD 76 DJNZ R4,DEL4
0078 00 77 NOP
0079 DBF8 78 DJNZ R3,DEL3
007B 22 79 RET
007C 00 80 NOP
007D 81 DAT:
007D 18301C10 82 DB 18H, 30H, 1CH, 10H
0081 20401C10 83 DB 20H, 40H, 1CH, 10H
0085 18102010 84 DB 18H, 10H, 20H, 10H
0089 1C101840 85 DB 1CH, 10H, 18H, 40H
008D 1C202020 86 DB 1CH, 20H, 20H, 20H
0091 1C201820 87 DB 1CH, 20H, 18H, 20H
0095 2080FF20 88 DB 20H, 80H, 0FFH, 20H
0099 301C1018 89 DB 30H, 1CH, 10H , 18H
009D 2015201C 90 DB 20H, 15H, 20H , 1CH
00A1 20202026 91 DB 20H, 20H, 20H , 26H
00A5 4020202B 92 DB 40H, 20H , 20H , 2BH
00A9 20262020 93 DB 20H, 26H, 20H , 20H
00AD 203080FF 94 DB 20H, 30H , 80H , 0FFH
00B1 20201C10 95 DB 20H, 20H, 1CH , 10H
00B5 18102020 96 DB 18H, 10H, 20H , 20H
00B9 26202B20 97 DB 26H, 20H , 2BH , 20H
00BD 30202B40 98 DB 30H, 20H , 2BH , 40H
00C1 20201C10 99 DB 20H, 20H , 1CH , 10H
00C5 18102020 100 DB 18H, 10H, 20H, 20H
00C9 26202B20 101 DB 26H, 20H , 2BH, 20H
00CD 30202B40 102 DB 30H, 20H, 2BH , 40H
00D1 20301C10 103 DB 20H, 30H, 1CH , 10H
00D5 18201520 104 DB 18H, 20H , 15H , 20H
00D9 1C202020 105 DB 1CH, 20H , 20H , 20H
00DD 26402020 106 DB 26H, 40H, 20H , 20H
00E1 2B202620 107 DB 2BH, 20H, 26H , 20H
00E5 20203080 108 DB 20H, 20H, 30H , 80H
00E9 20301C10 109 DB 20H, 30H, 1CH , 10H
00ED 20101C10 110 DB 20H, 10H, 1CH , 10H
00F1 20202620 111 DB 20H, 20H, 26H , 20H
00F5 2B203020 112 DB 2BH, 20H, 30H , 20H
00F9 2B402015 113 DB 2BH, 40H, 20H , 15H
00FD 1F052010 114 DB 1FH, 05H, 20H , 10H
0101 1C102020 115 DB 1CH, 10H, 20H , 20H
0105 26202B20 116 DB 26H, 20H, 2BH , 20H
0109 30202B40 117 DB 30H, 20H, 2BH , 40H
010D 20301C10 118 DB 20H, 30H, 1CH , 10H
0111 18201520 119 DB 18H, 20H , 15H , 20H
0115 1C202020 120 DB 1CH, 20H , 20H , 20H
0119 26402020 121 DB 26H, 40H, 20H , 20H
011D 2B202620 122 DB 2BH, 20H, 26H , 20H
0121 20203030 123 DB 20H, 20H, 30H, 30H
0125 20301C10 124 DB 20H, 30H, 1CH, 10H
A51 MACRO ASSEMBLER VOICE1 05/28/2007 21:03:53 PAGE 3
0129 18401C20 125 DB 18H, 40H, 1CH, 20H
012D 20202640 126 DB 20H, 20H, 26H, 40H
0131 13601820 127 DB 13H, 60H, 18H , 20H
0135 15401340 128 DB 15H, 40H, 13H , 40H
0139 188000 129 DB 18H, 80H, 00H
130 end
A51 MACRO ASSEMBLER VOICE1 05/28/2007 21:03:53 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
DAT. . . . . . . . C ADDR 007DH A
DEL. . . . . . . . C ADDR 0072H A
DEL3 . . . . . . . C ADDR 0073H A
DEL4 . . . . . . . C ADDR 0075H A
END0 . . . . . . . C ADDR 0065H A
IE . . . . . . . . D ADDR 00A8H A
MUSIC0 . . . . . . C ADDR 0023H A
MUSIC1 . . . . . . C ADDR 002DH A
MUSIC2 . . . . . . C ADDR 0041H A
MUSIC3 . . . . . . C ADDR 0054H A
MUSIC4 . . . . . . C ADDR 0059H A
MUSIC5 . . . . . . C ADDR 0038H A
MUSIC6 . . . . . . C ADDR 0068H A
P4 . . . . . . . . N NUMB 00E8H A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 0014H A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -