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

📄 fs03.lst

📁 51单片机开发入门与典型实例
💻 LST
字号:
A51 MACRO ASSEMBLER  FS03                                                                 01/07/2007 16:33:04 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN FS03.OBJ
ASSEMBLER INVOKED BY: C:\KEIL7.06\C51\BIN\A51.EXE FS03.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;文件名:FS03.ASM
                       2     ;程序功能:歌曲演奏        
                       3             
0000                   4              ORG   00H         ; 主程序起始地址
0000 800B              5              JMP   START       ; 跳至主程序
000B                   6              ORG   0BH         ; 定时器 T0中断入口
000B 8031              7              JMP   EXT0        ; 跳至T0中断子程序    
000D 758901            8       START: MOV   TMOD,#00000001B; 设T0方式1
0010 75A882            9              MOV   IE,#10000010B;允许T0中断          
0013 900052           10              MOV   DPTR,#TABLE ; 存表首地址           
0016 E4               11       LOOP:  CLR   A           ; 清零
0017 93               12              MOVC  A,@A+DPTR   ; 查表                
0018 F9               13              MOV   R1,A        ; 定时器高8位存R1     
0019 A3               14              INC   DPTR        ; 指针加1
001A E4               15              CLR   A           ; 清零
001B 93               16              MOVC  A,@A+DPTR   ; 查表                
001C F8               17              MOV   R0,A        ; 定时器低8位存R0             
001D 49               18              ORL   A,R1        ; 进行"或"运算
001E 6011             19              JZ    NEXT0       ; 全0为休止符
0020 E8               20              MOV   A, R0       ; 
0021 59               21              ANL   A, R1       ; 进行"与"运算
0022 B4FF02           22              CJNE  A,#0FFH,NEXT; 全1表示乐曲结束
0025 80E6             23              JMP  START       ; 从头开始循环演奏     
0027 898C             24       NEXT:  MOV   TH0,R1      ; 装入高位定时值
0029 888A             25              MOV   TL0,R0      ; 装入低位定时值       
002B D28C             26              SETB  TR0         ; 启动定时器T0 
002D D28D             27              setb  tf0         ;启动定时器工作
002F 8002             28              JMP  NEXT1        ; 转移NEXT1处
0031 C28C             29       NEXT0: CLR   TR0         ; 关闭定时器停止发音    
0033 E4               30       NEXT1: CLR   A           ; 清零
0034 A3               31              INC   DPTR        ; 指针加1
0035 93               32              MOVC  A,@A+DPTR   ; 查延时常数
0036 FA               33              MOV   R2, A       ; 延时常数存入R2       
0037 1145             34       LOOP1: ACALL   DELAY     ; 调延时子程序
0039 DAFC             35              DJNZ  R2, LOOP1   ; 控制延时次数          
003B A3               36              INC   DPTR        ; 指针加1
003C 80D8             37              JMP  LOOP         ; 转移LOOP处          
003E 898C             38       EXT0:  MOV   TH0,R1      ; 重装定时值
0040 888A             39              MOV   TL0,R0      ;
0042 B2B4             40              CPL   P3.4        ; 反相输出
0044 32               41              RETI              ; 中断返回              
0045 7F02             42       DELAY: MOV   R7,#02      ; 延时187ms
0047 7EBB             43       D2:    MOV   R6,#187     ; 
0049 7DF8             44       D3:    MOV   R5,#248     ;
004B DDFE             45              DJNZ  R5,$        ;
004D DEFA             46              DJNZ  R6,D3       ;
004F DFF6             47              DJNZ  R7,D2       ;
0051 22               48              RET               ;                        
0052 FD8003FD         49       TABLE: DB  0FDH,80H,03H,  0FDH,80H,01H ;
0056 8001                    
0058 FDC604FD         50              DB  0FDH,0C6H,04H, 0FDH,80H,04H ;
005C 8004                    
005E FE2A04FE         51              DB  0FEH,2AH,04H,  0FEH,02H,04H ;
0062 0204                    
0064 000004           52              DB  00H,00H,04H                 ;
0067 FD8003FD         53              DB  0FDH,80H,03H,  0FDH,80H,01H ;
006B 8001                    
006D FDC604FD         54              DB  0FDH,0C6H,04H, 0FDH,80H,04H ;
A51 MACRO ASSEMBLER  FS03                                                                 01/07/2007 16:33:04 PAGE     2

0071 8004                    
0073 FE5C04FE         55              DB  0FEH,5CH,04H, 0FEH,2AH,04H  ;
0077 2A04                    
0079 000004           56              DB  00H,00H,04H                 ;
007C FD8003FD         57              DB  0FDH,80H,03H,  0FDH,80H,01H ;
0080 8001                    
0082 FEC004FE         58              DB  0FEH,0C0H,04H, 0FEH,84H,04H ;
0086 8404                    
0088 FE2A04FE         59              DB  0FEH,2AH,04H, 0FEH,02H,04H  ;
008C 0204                    
008E FDC604           60              DB  0FDH,0C6H,04H               ;
0091 FE9803FE         61              DB  0FEH,98H,03H, 0FEH,98H,01H  ;
0095 9801                    
0097 FE8404FE         62              DB  0FEH,84H,04H, 0FEH,2AH,04H  ;
009B 2A04                    
009D FE5C04FE         63              DB  0FEH,5CH,04H, 0FEH,2AH,04H  ;
00A1 2A04                    
00A3 000004           64              DB  00H,00H,04H                 ;
00A6 FFFF             65              DB    0FFH,0FFH           ; 结束码        编码表
                      66              END                       ;               程序结束
                             
                             
A51 MACRO ASSEMBLER  FS03                                                                 01/07/2007 16:33:04 PAGE     3

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


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

D2 . . . . . . . .  C ADDR   0047H   A   
D3 . . . . . . . .  C ADDR   0049H   A   
DELAY. . . . . . .  C ADDR   0045H   A   
EXT0 . . . . . . .  C ADDR   003EH   A   
IE . . . . . . . .  D ADDR   00A8H   A   
LOOP . . . . . . .  C ADDR   0016H   A   
LOOP1. . . . . . .  C ADDR   0037H   A   
NEXT . . . . . . .  C ADDR   0027H   A   
NEXT0. . . . . . .  C ADDR   0031H   A   
NEXT1. . . . . . .  C ADDR   0033H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
START. . . . . . .  C ADDR   000DH   A   
TABLE. . . . . . .  C ADDR   0052H   A   
TF0. . . . . . . .  B ADDR   0088H.5 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 + -