📄 fmq.lst
字号:
A51 MACRO ASSEMBLER FMQ 06/03/2005 12:08:23 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\FMQ.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\FMQ.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
001B 1 ORG 001BH ;定时器T1的中断入口
001B 898D 2 MOV TH1,R1 ;重装定时初值
001D 888B 3 MOV TL1,R0 ;
001F B2B7 4 CPL P3.7 ;P1.0输出方波
0021 32 5 RETI ;中断返回
0100 6 ORG 100H ;主程序
0100 758901 7 START:MOV TMOD,#01H ;定时器T1工作方式1
0103 75A888 8 MOV IE,#88H ;允许T1中断
0106 90013C 9 MOV DPTR,#TAB ;表格首地址
0109 E4 10 LOOP:CLR A ;
010A 93 11 MOVC A,@A+DPTR ;查表
010B F9 12 MOV R1,A ;定时器高8为存R1
010C A3 13 INC DPTR ;
010D E4 14 CLR A ;
010E 93 15 MOVC A,@A+DPTR ;查表
010F F8 16 MOV R0,A ;定时器低8为存R0
0110 49 17 ORL A,R1 ;
0111 600F 18 JZ NEXT0 ;全0为休止符
0113 E8 19 MOV A,R0 ;
0114 59 20 ANL A,R1 ;
0115 B4FF02 21 CJNE A,#0FFH,NEXT ;全1表示乐曲结束
0118 80E6 22 SJMP START ;从头开始循环演奏
011A 898D 23 NEXT:MOV TH1,R1 ;装入定时值
011C 888B 24 MOV TL1,R0 ;
011E D28E 25 SETB TR1 ;启动定时器
0120 8002 26 SJMP NEXT1 ;
0122 C28E 27 NEXT0:CLR TR1 ;关闭定时器停止发音
0124 E4 28 NEXT1:CLR A ;
0125 A3 29 INC DPTR ;
0126 93 30 MOVC A,@A+DPTR ;查延迟常
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -