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

📄 music_hb.lst

📁 利用蜂鸣器播放音乐. 这是刚学51单片机时制作的一个小程序
💻 LST
字号:
A51 MACRO ASSEMBLER  MUSIC_HB                                                             11/27/2007 21:50:59 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN music_hb.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE music_hb.a51 SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1             org 0000h
0000 0130              2             ajmp main
000B                   3             org 000bh
000B 8063              4             jmp tim0
0030                   5             org 0030h
0030                   6       main: ;主程序
0030 758901            7             mov tmod,#01h ;设定时方式
0033 75A882            8             mov ie,#82h ;开中断
0036                   9      start0:
0036 753000           10             mov 30h,#00h ;
0039 E530             11       next: mov a,30h
003B 9000AE           12             mov dptr,#table
003E 93               13             movc a,@a+dptr ;查表取音调和节拍
003F FA               14             mov r2,a
0040 602A             15             jz end0 ;为零,不进行处理.
0042 540F             16             anl a,#0fh
0044 FD               17             mov r5,a ;将节拍存入R5
0045 EA               18             mov a,r2
0046 C4               19             swap a
0047 540F             20             anl a,#0fh
0049 7004             21             jnz sing ;根据音调决定是否演奏.
004B C28C             22             clr tr0
004D 8017             23             jmp d1
004F 14               24       sing: dec a
0050 F522             25             mov 22h,a ;将音调存入22H.
0052 23               26             rl a
0053 900090           27             mov dptr,#table1
0056 93               28             movc a,@a+dptr ;根据音调决定定时器初值.
0057 F58C             29             mov th0,a ;放入TH0
0059 F521             30             mov 21h,a
005B E522             31             mov a,22h
005D 23               32             rl a
005E 04               33             inc a
005F 93               34             movc a,@a+dptr
0060 F58A             35             mov tl0,a ;放入TL0
0062 F520             36             mov 20h,a
0064 D28C             37             setb tr0 ;启动定时
0066 1181             38         d1: call delay
0068 0530             39             inc 30h
006A 80CD             40             jmp next
006C C28C             41       end0: clr tr0
006E 80C6             42             jmp start0
                      43     
0070                  44     tim0: ;定时器中断服务程序
0070 C0E0             45             push acc
0072 C0D0             46             push psw
0074 85208A           47             mov tl0,20h ;重赋初值.
0077 85218C           48             mov th0,21h
007A B2A4             49             cpl p2.4 
007C D0D0             50             pop psw
007E D0E0             51             pop acc
0080 32               52             reti
                      53     
0081 7F02             54      delay: mov r7,#02h ;延时子程序
0083 7CBB             55         d2: mov r4,#187
0085 7BF8             56         d3: mov r3,#248
0087 DBFE             57             djnz r3,$
0089 DCFA             58             djnz r4,d3
A51 MACRO ASSEMBLER  MUSIC_HB                                                             11/27/2007 21:50:59 PAGE     2

008B DFF6             59             djnz r7,d2
008D DDF2             60             djnz r5,delay
008F 22               61             ret
                      62     
0090                  63     table1: ;决定音调的定时初值.
0090 FB04             64         dw 64260,64400,64524,64580
0092 FB90                    
0094 FC0C                    
0096 FC44                    
0098 FCAC             65         dw 64684,64777,64820,64898
009A FD09                    
009C FD34                    
009E FD82                    
00A0 FDC8             66         dw 64968,65030,65058,65110
00A2 FE06                    
00A4 FE22                    
00A6 FE56                    
00A8 FE85             67         dw 65157,65178,65217
00AA FE9A                    
00AC FEC1                    
                      68     
00AE                  69     table: ;决定音调和节拍的表格,不同的歌曲只是此表不同
                      70     ;1
00AE 82018194         71     db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h
00B2 84B4A404                
00B6 82018194                
00BA 84C4B404                
                      72     ;2
00BE 820181F4         73     db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h
00C2 D4B4A494                
00C6 E201E1D4                
00CA B4C4B404                
                      74     ;3
00CE 82018194         75     db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h
00D2 84B4A404                
00D6 82018194                
00DA 84C4B404                
                      76     ;4
00DE 820181F4         77     db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00
00E2 D4B4A494                
00E6 E201E1D4                
00EA B4C4B404                
00EE 00                      
                      78     end 
A51 MACRO ASSEMBLER  MUSIC_HB                                                             11/27/2007 21:50:59 PAGE     3

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
D1 . . . . . . . .  C ADDR   0066H   A   
D2 . . . . . . . .  C ADDR   0083H   A   
D3 . . . . . . . .  C ADDR   0085H   A   
DELAY. . . . . . .  C ADDR   0081H   A   
END0 . . . . . . .  C ADDR   006CH   A   
IE . . . . . . . .  D ADDR   00A8H   A   
MAIN . . . . . . .  C ADDR   0030H   A   
NEXT . . . . . . .  C ADDR   0039H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
SING . . . . . . .  C ADDR   004FH   A   
START0 . . . . . .  C ADDR   0036H   A   
TABLE. . . . . . .  C ADDR   00AEH   A   
TABLE1 . . . . . .  C ADDR   0090H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TIM0 . . . . . . .  C ADDR   0070H   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 + -