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

📄 单片机唱歌.lst

📁 基于Proteus的51系列单片机设计与仿真
💻 LST
字号:
A51 MACRO ASSEMBLER  礯芲籣砡竉                                                           05/04/2008 21:20:49 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 单片机唱歌.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 单片机唱歌.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1            ORG  0000H
0000 02001E            2            LJMP START
001B                   3            ORG  001BH
001B 020067            4            LJMP TIME1
001E 758910            5     START: MOV  TMOD,#10H       ;T1工作在方式1
0021 75A888            6            MOV  IE,#88H          ;中断使能
0024 754000            7     MAIN:  MOV  40H,#00H        ;设简谱码指针初始值
0027 E540              8     NEXT:  MOV  A,40H            ;简谱码指针暂存累加器A
0029 900099            9            MOV  DPTR,#TABLE     ;取简谱码
002C 93               10            MOVC A,@A+DPTR
002D B40003           11            CJNE A,#00H,PLAY     ;取到的简谱码不是结束码,转
0030 020062           12            LJMP STOP             ;是结束码,退出
0033 F9               13      PLAY: MOV  R1,A              ;R1暂存简谱码
0034 540F             14            ANL  A,#0FH           ;取节拍码
0036 FA               15            MOV  R2,A              ;节拍码暂存R2
0037 E9               16            MOV  A,R1
0038 54F0             17            ANL  A,#0F0H          ;取音符码
003A B40005           18            CJNE A,#00H,MUSIC    ;音符码为不为0,调发音子程序
003D C28E             19            CLR  TR1               ;音符码为0,不发音
003F 02005A           20            LJMP DEL
0042 C4               21      MUSIC:SWAP A
0043 14               22            DEC  A
0044 F522             23            MOV  22H,A
0046 2522             24            ADD  A,22H
0048 FB               25            MOV  R3,A
0049 900087           26            MOV  DPTR,#TABLE1     ;取相应计数值
004C 93               27            MOVC A,@A+DPTR
004D F58D             28            MOV  TH1,A             ;暂存高位字节
004F F521             29            MOV  21H,A 
0051 EB               30            MOV  A,R3
0052 04               31            INC  A
0053 93               32            MOVC A,@A+DPTR        ;取相应计数值的低位字节
0054 F58B             33            MOV  TL1,A             ;暂存低位字节
0056 F520             34            MOV  20H,A
0058 D28E             35            SETB TR1               ;启动定时器
005A 120078           36      DEL:  LCALL DELAY
005D 0540             37            INC  40H               ;指向下一个简谱码
005F 020027           38            LJMP NEXT
0062 C28E             39      STOP: CLR  TR1                ;停止定时器
0064 020024           40            LJMP MAIN
0067 C0E0             41       TIME1:PUSH ACC               ;现场保护
0069 C0D0             42            PUSH PSW
006B B297             43            CPL  P1.7              ;P1.7反相输出,演奏音乐
006D 85208B           44            MOV  TL1,20H           ;重设计数值
0070 85218D           45            MOV  TH1,21H
0073 D0D0             46            POP  PSW
0075 D0E0             47            POP  ACC
0077 32               48            RETI
0078 7F02             49      DELAY:MOV  R7,#02H           ;4/4曲调,延时125ms子程序
007A 7E7D             50      DELA1:MOV  R6,#125
007C 7DF8             51      DELA2:MOV  R5,#248
007E DDFE             52            DJNZ R5,$
0080 DEFA             53            DJNZ R6,DELA2
0082 DFF6             54            DJNZ R7,DELA1
0084 DAF2             55            DJNZ R2,DELAY
0086 22               56            RET
0087 FC0C             57     TABLE1:DW 64524,64580,64684,64777        ;简码值: ,1,2,3
0089 FC44                    
A51 MACRO ASSEMBLER  礯芲籣砡竉                                                           05/04/2008 21:20:49 PAGE     2

008B FCAC                    
008D FD09                    
008F FD34             58            DW 64820,64898,64968,65030,65058 ;简码值:4,5,6,7, 
0091 FD82                    
0093 FDC8                    
0095 FE06                    
0097 FE22                    
0099                  59     TABLE:;第1行曲子
0099 64426298         60            DB 64H,42H,62H,98H
009D 74927268         61            DB 74H,92H,72H,68H
00A1 64223244         62            DB 64H,22H,32H,44H,32H,22H
00A5 3222                    
00A7 3C               63            DB 3CH
                      64            ;第2行曲子
00A8 64426294         65            DB 64H,42H,62H,94H,04H,82H
00AC 0482                    
00AE 749468           66            DB 74H,94H,68H
00B1 64324254         67            DB 64H,32H,42H,54H,04H,12H
00B5 0412                    
00B7 2C               68            DB 2CH
                      69            ;第3行曲子
00B8 749498           70            DB 74H,94H,98H
00BB 84728298         71            DB 84H,72H,82H,98H
00BF 72829272         72            DB 72H,82H,92H,72H,72H,62H,42H,22H
00C3 72624222                
00C7 3C               73            DB 3CH
                      74            ;第4行曲子
00C8 64426294         75            DB 64H,42H,62H,94H,04H,82H
00CC 0482                    
00CE 749468           76            DB 74H,94H,68H
00D1 64324254         77            DB 64H,32H,42H,54H,04H,12H
00D5 0412                    
00D7 2C               78            DB 2CH
                      79            ;结束码
00D8 00               80            DB 00H
                      81            END
                             
A51 MACRO ASSEMBLER  礯芲籣砡竉                                                           05/04/2008 21:20:49 PAGE     3

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
DEL. . . . . . . .  C ADDR   005AH   A   
DELA1. . . . . . .  C ADDR   007AH   A   
DELA2. . . . . . .  C ADDR   007CH   A   
DELAY. . . . . . .  C ADDR   0078H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
MAIN . . . . . . .  C ADDR   0024H   A   
MUSIC. . . . . . .  C ADDR   0042H   A   
NEXT . . . . . . .  C ADDR   0027H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PLAY . . . . . . .  C ADDR   0033H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
START. . . . . . .  C ADDR   001EH   A   
STOP . . . . . . .  C ADDR   0062H   A   
TABLE. . . . . . .  C ADDR   0099H   A   
TABLE1 . . . . . .  C ADDR   0087H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIME1. . . . . . .  C ADDR   0067H   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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