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

📄 hongwai.lst

📁 C52万用红外遥控器实验程序,重新整理,供参考学习用
💻 LST
字号:
A51 MACRO ASSEMBLER  HONGWAI                                                              12/11/2006 11:28:08 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN hongwai.OBJ
ASSEMBLER INVOKED BY: e:\Keil\C51\BIN\A51.EXE hongwai.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     
0000                   3          ORG 0000H
0000                   4         MAIN:
0000 30B203            5             JNB P3.2,IR ;遥控扫描
0003 020000            6             LJMP  MAIN  ;主循环
0006                   7         IR: ;解码开始
0006 7E0A              8             MOV R6,#10
0008                   9         IR_SB:
0008 1153             10             ACALL  DELAY882;延时882微秒
000A 20B22B           11             JB  P3.2,IR_ERROR;数据错误退出解码
000D DEF9             12             DJNZ R6,IR_SB;重复10次检测
                      13             ;识别连发码
000F 30B2FD           14             JNB P3.2,$;等待高电平避开9MS低电平引导脉冲
0012 1161             15             ACALL DELAY2400
0014 30B21F           16             JNB P3.2,IR_RP;这里为低电平,认为是连发码
0017 1161             17             ACALL DELAY2400 ;延时4.74MS避开4.5MS的结果码
                      18             ;读取32位数据码
0019 791A             19             MOV R1,#1AH;存放数据的起始地址
001B 7A04             20             MOV R2,#4
001D                  21         IR_4BYTE:
001D 7B08             22             MOV R3,#8
001F                  23         IR_8BIT:  
001F 30B2FD           24             JNB P3.2,$;等待地址码第一位的高电平信号
0022 120053           25             LCALL  DELAY882;高电平来后开始延时882uS
0025 A2B2             26             MOV   C,P3.2
0027 5003             27             JNC IR_8BIT_0;延时后为为低电平则跳到IR_8BIT_0
0029 12005A           28             LCALL DELAY1000
002C                  29         IR_8BIT_0:
002C E7               30             MOV A,@R1;将R1中的地址给累加器A
002D 13               31             RRC A;将C移入A的最低位
002E F7               32             MOV @R1,A;保存A中的值到RAM中
002F DBEE             33             DJNZ R3,IR_8BIT;接收地址码的高8位
0031 09               34             INC  R1;下一地址
0032 DAE9             35             DJNZ  R2,IR_4BYTE;接收完成8位数据,8位数据码和16位地址码
0034 8005             36             JMP  IR_GOTO ;解码结束
0036                  37          IR_RP:
0036 8003             38             JMP  IR_GOTO
0038                  39          IR_ERROR:
0038 020000           40             LJMP MAIN
003B                  41          IR_GOTO:    ;执行部分
003B E51C             42             MOV  A,1CH
003D F4               43             CPL  A
003E B51DF7           44             CJNE A,1DH,IR_ERROR
0041 851D90           45             MOV  P1,1DH    ;接收到的数据显示到P1口
0044 751A00           46             MOV 1AH,#00H   ;接收区清0
0047 751B00           47             MOV 1BH,#00H
004A 751C00           48             MOV 1CH,#00H
004D 751D00           49             MOV 1DH,#00H
0050 020000           50             LJMP MAIN;回到主循环
0053                  51          DELAY882:  ;延时函数
0053 7FCA             52             MOV R7,#202
0055                  53          DELAY882_A:;882us延时
0055 00               54             NOP
0056 00               55             NOP
0057 DFFC             56             DJNZ R7,DELAY882_A
0059 22               57          RET
005A                  58          DELAY1000:
A51 MACRO ASSEMBLER  HONGWAI                                                              12/11/2006 11:28:08 PAGE     2

005A 7FE5             59             MOV R7,#229
005C                  60          DELAY1000_A:
005C 00               61             NOP
005D 00               62             NOP
005E DFFC             63             DJNZ  R7,DELAY1000_A
0060 22               64          RET
0061                  65          DELAY2400:
0061 7FF5             66             MOV R7,#245
0063                  67          DELAY2400_A:
0063 00               68             NOP
0064 00               69             NOP
0065 00               70             NOP
0066 00               71             NOP
0067 00               72             NOP
0068 00               73             NOP
0069 00               74             NOP
006A DFF7             75             DJNZ  R7,DELAY2400_A
006C 22               76           RET
                      77           END
                                   
                             
A51 MACRO ASSEMBLER  HONGWAI                                                              12/11/2006 11:28:08 PAGE     3

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


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

DELAY1000. . . . .  C ADDR   005AH   A   
DELAY1000_A. . . .  C ADDR   005CH   A   
DELAY2400. . . . .  C ADDR   0061H   A   
DELAY2400_A. . . .  C ADDR   0063H   A   
DELAY882 . . . . .  C ADDR   0053H   A   
DELAY882_A . . . .  C ADDR   0055H   A   
IR . . . . . . . .  C ADDR   0006H   A   
IR_4BYTE . . . . .  C ADDR   001DH   A   
IR_8BIT. . . . . .  C ADDR   001FH   A   
IR_8BIT_0. . . . .  C ADDR   002CH   A   
IR_ERROR . . . . .  C ADDR   0038H   A   
IR_GOTO. . . . . .  C ADDR   003BH   A   
IR_RP. . . . . . .  C ADDR   0036H   A   
IR_SB. . . . . . .  C ADDR   0008H   A   
MAIN . . . . . . .  C ADDR   0000H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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