📄 textasm.lst
字号:
A51 MACRO ASSEMBLER TEXTASM 05/11/2008 20:00:13 PAGE 1
MACRO ASSEMBLER A51 V8.00d
OBJECT MODULE PLACED IN textasm.OBJ
ASSEMBLER INVOKED BY: E:\Program Files\Keil\C51\BIN\A51.EXE textasm.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ?PR?IR?DS18B20 SEGMENT CODE
2 PUBLIC IR
---- 3 RSEG ?PR?IR?DS18B20
4
5 ;以下为进入P2.2脚外部中断子程序,也就是解码程序
0000 6 IR:
0000 7E09 7 MOV R6,#9
0002 8 SB:
0002 1100 F 9 ACALL DELAY882 ;调用882微秒延时子程序
0004 20A234 10 JB P2.2,EXIT ;延时882微秒后判断P2.2脚是否出现高电平如果有就退出解码程序
0007 DEF9 11 DJNZ R6, SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
12 ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
0009 30A2FD 13 JNB P2.2, $ ;等待高电平避开9毫秒低电平引导脉冲
000C 1100 F 14 ACALL DELAY2400
000E 30A230 15 JNB P2.2,IR_Rp ;
0011 1100 F 16 ACALL DELAY2400 ;延时4.74毫秒避开4.5毫秒的结果码
0013 791A 17 MOV R1,#1AH ;设定1AH为起始RAM区
0015 7A04 18 MOV R2,#4
0017 19 PP:
0017 7B08 20 MOV R3,#8
0019 21 JJJJ:
0019 30A2FD 22 JNB P2.2,$ ;等待地址码第一位的高电平信号
001C 120000 F 23 LCALL DELAY882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
001F A2A2 24 MOV C,P2.2 ;将P2.2引脚此时的电平状态0或1存入C中
0021 5003 25 JNC UUU ;如果为0就跳转到UUU
0023 120000 F 26 LCALL DELAY1000
0026 27 UUU:
0026 E7 28 MOV A,@R1 ;将R1中地址的给A
0027 13 29 RRC A ;将C中的值0或1移入A中的最低位
0028 F7 30 MOV @R1,A ;将A中的数暂时存放在R1中
0029 DBEE 31 DJNZ R3,JJJJ ;接收地址码的高8位
002B 09 32 INC R1 ;对R1中的值加1,换下一个RAM
002C DAE9 33 DJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据,存放在1AH/1BH/1CH/1DH的RAM中
34
35
36
002E C2A3 37 CLR P2.3 ;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功
0030 120000 F 38 LCALL DELAY2400
0033 120000 F 39 LCALL DELAY2400
0036 120000 F 40 LCALL DELAY2400
0039 D2A3 41 SETB P2.3;蜂鸣器停止
42
003B 43 EXIT:
003B 7FFF 44 MOV R7,#0FFH
003D E51D 45 MOV A,1DH
003F FF 46 MOV R7,A
0040 22 47 ret ;退出解码子程序
48
0041 49 IR_Rp:
0041 020000 F 50 LJMP IR
51
52
53
54
55 ;=============================882
0044 56 DELAY882: ;1.085x ((202x4)+5)=882
0044 7FCA 57 MOV R7,#202
0046 58 DELAY882_A:
A51 MACRO ASSEMBLER TEXTASM 05/11/2008 20:00:13 PAGE 2
0046 00 59 NOP
0047 00 60 NOP
0048 DFFC 61 DJNZ R7,DELAY882_A
004A 22 62 RET
63 ;=============================1000
004B 64 DELAY1000: ;1.085x ((229x4)+5)=999.285
004B 7FE5 65 MOV R7,#229
004D 66 DELAY1000_A:
004D 00 67 NOP
004E 00 68 NOP
004F DFFC 69 DJNZ R7,DELAY1000_A
0051 22 70 RET
71 ;=============================2400
0052 72 DELAY2400: ;1.085x ((245x9)+5)=2397.85
0052 7FF5 73 MOV R7,#245
0054 74 DELAY2400_A:
0054 00 75 NOP
0055 00 76 NOP
0056 00 77 NOP
0057 00 78 NOP
0058 00 79 NOP
0059 00 80 NOP
005A 00 81 NOP
005B DFF7 82 DJNZ R7,DELAY2400_A
005D 22 83 RET
84 END
A51 MACRO ASSEMBLER TEXTASM 05/11/2008 20:00:13 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?PR?IR?DS18B20 . . C SEG 005EH REL=UNIT
DELAY1000. . . . . C ADDR 004BH R SEG=?PR?IR?DS18B20
DELAY1000_A. . . . C ADDR 004DH R SEG=?PR?IR?DS18B20
DELAY2400. . . . . C ADDR 0052H R SEG=?PR?IR?DS18B20
DELAY2400_A. . . . C ADDR 0054H R SEG=?PR?IR?DS18B20
DELAY882 . . . . . C ADDR 0044H R SEG=?PR?IR?DS18B20
DELAY882_A . . . . C ADDR 0046H R SEG=?PR?IR?DS18B20
EXIT . . . . . . . C ADDR 003BH R SEG=?PR?IR?DS18B20
IR . . . . . . . . C ADDR 0000H R SEG=?PR?IR?DS18B20
IR_RP. . . . . . . C ADDR 0041H R SEG=?PR?IR?DS18B20
JJJJ . . . . . . . C ADDR 0019H R SEG=?PR?IR?DS18B20
P2 . . . . . . . . D ADDR 00A0H A
PP . . . . . . . . C ADDR 0017H R SEG=?PR?IR?DS18B20
SB . . . . . . . . C ADDR 0002H R SEG=?PR?IR?DS18B20
UUU. . . . . . . . C ADDR 0026H R SEG=?PR?IR?DS18B20
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -