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

📄 sound.lst

📁 51单片机用汇编实例 包括ad
💻 LST
字号:
A51 MACRO ASSEMBLER  SOUND                                                                12/31/2005 09:56:08 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;========================================================================
                       2     ; 文件名称: Sound.ASM
                       3     ; 功能描述: 电子发声实验. 利用定时器/计数器演奏音乐.
                       4     ;     乐曲: 友谊天长地久  B调  四分之二拍
                       5     ;========================================================================
                       6     
  0031                 7     VALH    DATA 31H
  0030                 8     VALL    DATA 30H
                       9     
  0032                10     FCOUNT  DATA 32H
  0033                11     TCOUNT  DATA 33H
                      12     
0000                  13             ORG 0000H
0000 020100           14             LJMP START
000B                  15             ORG 000BH
000B 020158           16             LJMP T0ISR
0100                  17             ORG 0100H
0100 758901           18     START:  MOV TMOD, #01H          ;初始化定时器T0
0103 75A882           19             MOV IE, #82H
0106 D28C             20             SETB TR0                ;启动定时器T0
0108 753200           21     MLP1:   MOV FCOUNT, #00H        ;演奏顺序
010B 753300           22             MOV TCOUNT, #00H
010E 90019D           23     MLP2:   MOV DPTR, #FREQ         ;频率表首地址
0111 E532             24             MOV A, FCOUNT
0113 93               25             MOVC A, @A+DPTR         ;查表
0114 FE               26             MOV R6, A               ;除数高位
0115 BE000B           27             CJNE R6, #00H, MLP3     ;判0, 0表示一遍演奏结束
0118 0532             28             INC FCOUNT
011A E532             29             MOV A, FCOUNT
011C 93               30             MOVC A, @A+DPTR
011D FF               31             MOV R7, A
011E BF0008           32             CJNE R7, #00H, MLP4
0121 2108             33             AJMP MLP1               ;R6R7=0 结束一遍演奏
0123 0532             34     MLP3:   INC FCOUNT
0125 E532             35             MOV A, FCOUNT
0127 93               36             MOVC A, @A+DPTR
0128 FF               37             MOV R7, A               ;R6R7中不为0, 作为除数
0129 7A00             38     MLP4:   MOV R2, #00H            ;被除数(CLK)
012B 7B07             39             MOV R3, #07H
012D 7C00             40             MOV R4, #00H
012F 7D00             41             MOV R5, #00H
0131 120161           42             LCALL DIV42             ;调用除法程序
0134 C3               43             CLR C
0135 74FF             44             MOV A, #0FFH
0137 9B               45             SUBB A, R3
0138 F530             46             MOV VALL, A             ;计数初值低位
013A 74FF             47             MOV A, #0FFH
013C 9A               48             SUBB A, R2
013D F531             49             MOV VALH, A             ;计数初值高位
013F 85318C           50             MOV TH0, VALH           ;装入计数初值
0142 85308A           51             MOV TL0, VALL
                      52             
0145 E533             53             MOV A, TCOUNT
0147 900211           54             MOV DPTR, #TIME         ;得到时间表
014A 93               55             MOVC A, @A+DPTR
014B FC               56             MOV R4, A               ;[R4]次延时
014C 120194           57     MLP5:   LCALL DELAY
014F DCFB             58             DJNZ R4, MLP5
A51 MACRO ASSEMBLER  SOUND                                                                12/31/2005 09:56:08 PAGE     2

0151 0532             59             INC FCOUNT
0153 0533             60             INC TCOUNT
0155 02010E           61             LJMP MLP2               ;继续下一音符的演奏
                      62     ;定时器0中断程序
0158 B280             63     T0ISR:  CPL P0.0                
015A 85318C           64             MOV TH0, VALH           ;重装计数初值
015D 85308A           65             MOV TL0, VALL
0160 32               66             RETI
                      67     ;(R2R3R4R5)/(R6R7)--(R2R3)
                      68     ;影响资源: PSW, A, B, R1~R7
0161 C3               69     DIV42:  CLR C           ;比较被除数和除数
0162 EB               70             MOV A,R3 
0163 9F               71             SUBB A,R7
0164 EA               72             MOV A,R2
0165 9E               73             SUBB A,R6
0166 4003             74             JC DVD1
0168 D2D2             75             SETB OV         ;溢出
016A 22               76             RET
016B 75F010           77     DVD1:   MOV B,#10H      ;计算双字节商
016E C3               78     DVD2:   CLR C           ;部分商和余数同时左移一位
016F ED               79             MOV A,R5
0170 33               80             RLC A
0171 FD               81             MOV R5,A
0172 EC               82             MOV A,R4
0173 33               83             RLC A
0174 FC               84             MOV R4,A
0175 EB               85             MOV A,R3
0176 33               86             RLC A
0177 FB               87             MOV R3,A
0178 CA               88             XCH A,R2
0179 33               89             RLC A
017A CA               90             XCH A,R2
017B 92D5             91             MOV F0,C        ;保存溢出位
017D C3               92             CLR C
017E 9F               93             SUBB A,R7       ;计算(R2R3-R6R7)
017F F9               94             MOV R1,A
0180 EA               95             MOV A,R2
0181 9E               96             SUBB A,R6
0182 B0D5             97             ANL C,/F0       ;结果判断
0184 4004             98             JC DVD3
0186 FA               99             MOV R2,A        ;够减,存放新的余数
0187 E9              100             MOV A,R1
0188 FB              101             MOV R3,A
0189 0D              102             INC R5          ;商的低位置一
018A D5F0E1          103     DVD3:   DJNZ B,DVD2     ;计算完十六位商(R4R5)
018D EC              104             MOV A,R4        ;将商移到R2R3中
018E FA              105             MOV R2,A
018F ED              106             MOV A,R5
0190 FB              107             MOV R3,A
0191 C2D2            108             CLR OV          ;设立成功标志
0193 22              109             RET
                     110     ;单位延时
0194 7FE0            111     DELAY:  MOV R7, #0E0H
0196 7EF0            112     DLP1:   MOV R6, #0F0H
0198 DEFE            113     DLP2:   DJNZ R6, DLP2
019A DFFA            114             DJNZ R7, DLP1
019C 22              115             RET
                     116     ;频率表
019D 0173            117     FREQ:   DW 371,495,495,495,624,556,495,556,624
019F 01EF                    
01A1 01EF                    
01A3 01EF                    
01A5 0270                    
01A7 022C                    
01A9 01EF                    
01AB 022C                    
A51 MACRO ASSEMBLER  SOUND                                                                12/31/2005 09:56:08 PAGE     3

01AD 0270                    
01AF 01EF            118             DW 495,495,624,742,833,833,833,742,624
01B1 01EF                    
01B3 0270                    
01B5 02E6                    
01B7 0341                    
01B9 0341                    
01BB 0341                    
01BD 02E6                    
01BF 0270                    
01C1 0270            119             DW 624,495,556,495,556,624,495,416,416
01C3 01EF                    
01C5 022C                    
01C7 01EF                    
01C9 022C                    
01CB 0270                    
01CD 01EF                    
01CF 01A0                    
01D1 01A0                    
01D3 0173            120             DW 371,495,833,742,624,624,495,556,495
01D5 01EF                    
01D7 0341                    
01D9 02E6                    
01DB 0270                    
01DD 0270                    
01DF 01EF                    
01E1 022C                    
01E3 01EF                    
01E5 022C            121             DW 556,833,742,624,624,742,833,990,742
01E7 0341                    
01E9 02E6                    
01EB 0270                    
01ED 0270                    
01EF 02E6                    
01F1 0341                    
01F3 03DE                    
01F5 02E6                    
01F7 0270            122             DW 624,624,495,556,495,556,624,495,416
01F9 0270                    
01FB 01EF                    
01FD 022C                    
01FF 01EF                    
0201 022C                    
0203 0270                    
0205 01EF                    
0207 01A0                    
0209 01A0            123             DW 416,371,495,0
020B 0173                    
020D 01EF                    
020F 0000                    
                     124     ;时间表
0211 04060204        125     TIME:   DB 4, 6, 2, 4, 4, 6, 2, 4, 4, 6
0215 04060204                
0219 0406                    
021B 0204040C        126             DB 2, 4, 4,12, 1, 3, 6, 2, 4, 4
021F 01030602                
0223 0404                    
0225 06020404        127             DB 6, 2, 4, 4, 6, 2, 4, 4,12, 4
0229 06020404                
022D 0C04                    
022F 06020404        128             DB 6, 2, 4, 4, 6, 2, 4, 4, 6, 2
0233 06020404                
0237 0602                    
0239 04040C04        129             DB 4, 4,12, 4, 6, 2, 4, 4, 6, 2
023D 06020404                
0241 0602                    
A51 MACRO ASSEMBLER  SOUND                                                                12/31/2005 09:56:08 PAGE     4

0243 04040602        130             DB 4, 4, 6, 2, 4, 4,12
0247 04040C                  
                     131     
                     132             END
A51 MACRO ASSEMBLER  SOUND                                                                12/31/2005 09:56:08 PAGE     5

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


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

B. . . . . . . . .  D ADDR   00F0H   A   
DELAY. . . . . . .  C ADDR   0194H   A   
DIV42. . . . . . .  C ADDR   0161H   A   
DLP1 . . . . . . .  C ADDR   0196H   A   
DLP2 . . . . . . .  C ADDR   0198H   A   
DVD1 . . . . . . .  C ADDR   016BH   A   
DVD2 . . . . . . .  C ADDR   016EH   A   
DVD3 . . . . . . .  C ADDR   018AH   A   
F0 . . . . . . . .  B ADDR   00D0H.5 A   
FCOUNT . . . . . .  D ADDR   0032H   A   
FREQ . . . . . . .  C ADDR   019DH   A   
IE . . . . . . . .  D ADDR   00A8H   A   
MLP1 . . . . . . .  C ADDR   0108H   A   
MLP2 . . . . . . .  C ADDR   010EH   A   
MLP3 . . . . . . .  C ADDR   0123H   A   
MLP4 . . . . . . .  C ADDR   0129H   A   
MLP5 . . . . . . .  C ADDR   014CH   A   
OV . . . . . . . .  B ADDR   00D0H.2 A   
P0 . . . . . . . .  D ADDR   0080H   A   
START. . . . . . .  C ADDR   0100H   A   
T0ISR. . . . . . .  C ADDR   0158H   A   
TCOUNT . . . . . .  D ADDR   0033H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TIME . . . . . . .  C ADDR   0211H   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
VALH . . . . . . .  D ADDR   0031H   A   
VALL . . . . . . .  D ADDR   0030H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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