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

📄 yinyue.lst

📁 包插说明书,PCB,SCH图,及N多源代码例子,网上卖的很火的一款
💻 LST
字号:
A51 MACRO ASSEMBLER  YINYUE                                                               04/18/2006 22:52:24 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN yinyue.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE yinyue.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                       2     ;;;;;;;;;生日快乐歌汇编源程序《摘自8051单片机实践与应用》(吴金戌著);;;;;;;;;;;;
                       3     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;简谱见光盘;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                       4     
0000                   5         ORG 00H              ;主程序起始地址
0000 800B              6         JMP START            ;跳至主程序
000B                   7         ORG 0BH              ;Timer0中断起始地址
000B 8040              8         JMP TIM0             ;跳至Timer0中断子程序
000D                   9     START:                   ;主程序
000D 758901           10         MOV TMOD,#01H        ;设置Timer0工作在MODE1
0010 75A882           11         MOV IE,#82H          ;Timer0中断使能
0013                  12     START0:
0013 753000           13         MOV 30H,#00H         ;取简谱码指针,30H为寄存器
0016                  14     NEXT:
0016 E530             15         MOV A,30H            ;简谱码指针载入累加器A
0018 90008B           16         MOV DPTR,#TABLE      ;去TABLE取简谱码
001B 93               17         MOVC A,@A+DPTR       
001C FA               18         MOV R2,A             ;取到的简谱码暂存于R2
001D 602A             19         JZ END0              ;是否取到00(结束码)?
001F 540F             20         ANL A,#0FH           ;不是,则取低四位(节拍码)
0021 FD               21         MOV R5,A             ;将节拍码存入R5
0022 EA               22         MOV A,R2             ;将取到的简谱码再载入A
0023 C4               23         SWAP A               ;高低4位交换
0024 540F             24         ANL A,#0FH           ;取低4位(音符码)
0026 7004             25         JNZ SING             ;取到的音符码是否为0?
0028 C28C             26         CLR TR0              ;是则不发音
002A 8017             27         JMP D1               ;跳至D1
002C                  28     SING:                    ;演奏子程序
002C 14               29         DEC A                ;取到的音符码减1(不含0)
002D F522             30         MOV 22H,A            ;存入22H(寄存器)
002F 23               31         RL A                 ;乘2
0030 90006D           32         MOV DPTR,#TABLE1     ;至TABLE1取相对高位字节计手

⌨️ 快捷键说明

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