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

📄 music.lst

📁 用汇编语言实现的可以播放歌曲的是程序
💻 LST
字号:
A51 MACRO ASSEMBLER  MUSIC                                                                03/21/2008 00:24:31 PAGE     1


MACRO ASSEMBLER A51 V7.07
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     ;All rights Reserved
                       3     ;voice.asm
                       4     ;单片机发声程序,播放梁祝歌曲
                       5     ;用定时器中断产生音调,用程序延时来产生节拍
                       6     ;***************************************************************
  0090                 7     SoundOut bit    P1.0    ;定义输出引脚
                       8     
0000                   9             ORG     0000H
0000 020020           10             LJMP    START
001B                  11             ORG     001BH
001B 0161             12             AJMP    TIME1        ;中断服务,中断计数器加1
0020                  13             ORG     20H
                      14     
0020 758910           15     START:  MOV     TMOD,#10H       ;用定时器1,方式1
0023 758150           16             MOV     SP,#50H
0026 D2AF             17             SETB    EA
0028 D2AB             18             SETB    ET1
                      19     
002A 900068           20             MOV     DPTR,#TAB
                      21             ;判断合适的数据,进行定时器初始值设置
002D E4               22     LOOP:   CLR     A
002E 93               23             MOVC    A,@A+DPTR
002F F9               24             MOV     R1,A            ;保存第一个值
0030 A3               25             INC     DPTR
0031 E4               26             CLR     A
0032 93               27             MOVC    A,@A+DPTR
0033 F8               28             MOV     R0,A            ;保存第二个值
                      29     
0034 49               30             ORL     A,R1            ;看相邻两个值是否相等
0035 600F             31             JZ      XZF             ;若acc等于0则跳转
                      32     
0037 E8               33             MOV     A,R0
0038 59               34             ANL     A,R1            ;两个数是否都为ff是否为最后一个
0039 B4FF02           35             CJNE    A,#0FFH,NEXT
003C 80E2             36             SJMP    START
                      37     
003E 898D             38     NEXT:   MOV     TH1,R1
0040 888B             39             MOV     TL1,R0
0042 D28E             40             SETB    TR1
0044 8002             41             SJMP    NEXT1
                      42     
0046 C28E             43     XZF:    CLR     TR1             ;关闭定时器
                      44     
0048 E4               45     NEXT1:  CLR     A
0049 A3               46             INC     DPTR
004A 93               47             MOVC    A,@A+DPTR
                      48     
004B FA               49             MOV     R2,A
004C D28E             50             SETB    TR1
                      51     
004E 120056           52     LOOP1:  LCALL   D130    ;取节拍
0051 DAFB             53             DJNZ    R2,LOOP1
0053 A3               54             INC     DPTR
0054 012D             55             AJMP    LOOP
                      56     
0056 7DA0             57     D130:   MOV     R5,#160
0058 7CC8             58     D2:     MOV     R4,#200
A51 MACRO ASSEMBLER  MUSIC                                                                03/21/2008 00:24:31 PAGE     2

005A 00               59     D1:     NOP
005B 00               60             NOP
005C DCFC             61             DJNZ    R4,D1
005E DDF8             62             DJNZ    R5,D2
0060 22               63             RET 
                      64             ;定时中断服务程序
0061 898D             65     TIME1:  MOV     TH1,R1
0063 888B             66             MOV     TL1,R0
0065 B290             67             CPL     SoundOut        
0067 32               68             RETI
                      69     
0068 FA1508           70     TAB:    DB 0FAH,15H,08H
006B FB0506           71             DB 0FBH,05H,06H
006E FB8C02           72             DB 0FBH,8CH,02H
0071 FC4404           73             DB 0FCH,44H,04H
0074 FCAC02           74             DB 0FCH,0ACH,02H
0077 FB8C02           75             DB 0FBH,8CH,02H
007A FC4402           76             DB 0FCH,44H,02H
007D FB0504           77             DB 0FBH,05H,04H
0080 FD8204           78             DB 0FDH,82H,04H
0083 FE2204           79             DB 0FEH,22H,04H
0086 FDC802           80             DB 0FDH,0C8H,02H
0089 FD8202           81             DB 0FDH,82H,02H
008C FD0902           82             DB 0FDH,09H,02H
008F FD8202           83             DB 0FDH,82H,02H
0092 FCAC10           84             DB 0FCH,0ACH,10H
0095 FB8C01           85             DB 0FBH,8CH,01H
0098 FCAC06           86             DB 0FCH,0ACH,06H
009B FD0902           87             DB 0FDH,09H,02H
009E FC0C04           88             DB 0FCH,0CH,04H
00A1 FB8C04           89             DB 0FBH,08CH,04H
00A4 FB0504           90             DB 0FBH,05H,04H
00A7 FC8C02           91             DB 0FCH,8CH,02H
00AA FC4404           92             DB 0FCH,44H,04H
00AD FCAC04           93             DB 0FCH,0ACH,04H
00B0 FA1504           94             DB 0FAH,15H,04H
00B3 FC4404           95             DB 0FCH,44H,04H
00B6 FB8C02           96             DB 0FBH,8CH,02H
00B9 FB0502           97             DB 0FBH,05H,02H
00BC FB8C02           98             DB 0FBH,8CH,02H
00BF FC4402           99             DB 0FCH,44H,02H
00C2 FB0510          100             DB 0FBH,05H,10H
00C5 FFFF            101             DB 0FFH,0FFH
                     102             END
                             
                                                     
                                             
A51 MACRO ASSEMBLER  MUSIC                                                                03/21/2008 00:24:31 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

D1 . . . . . . . .  C ADDR   005AH   A   
D130 . . . . . . .  C ADDR   0056H   A   
D2 . . . . . . . .  C ADDR   0058H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET1. . . . . . . .  B ADDR   00A8H.3 A   
LOOP . . . . . . .  C ADDR   002DH   A   
LOOP1. . . . . . .  C ADDR   004EH   A   
NEXT . . . . . . .  C ADDR   003EH   A   
NEXT1. . . . . . .  C ADDR   0048H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
SOUNDOUT . . . . .  B ADDR   0090H.0 A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0020H   A   
TAB. . . . . . . .  C ADDR   0068H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIME1. . . . . . .  C ADDR   0061H   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
XZF. . . . . . . .  C ADDR   0046H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -