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

📄 textasm.lst

📁 红外遥控+1602LCD显示的源代码
💻 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 + -