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

📄 yaokong.lst

📁 单片机红外解码及无线解码的应用
💻 LST
字号:
A51 MACRO ASSEMBLER  YAOKONG                                                              10/29/2005 22:18:21 PAGE     1


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

LOC  OBJ            LINE     SOURCE

  0096                 1     JK1 EQU P1.6;
  0095                 2     JK2 EQU P1.5;
  0094                 3     JK3 EQU P1.4;
  0093                 4     JK4 EQU P1.3;
  0092                 5     JK5 EQU P1.2;
  0091                 6     JK6 EQU P1.1;
  0097                 7     IR EQU P1.7;
  001A                 8     BUFF EQU 1AH;
  0020                 9     SERIOR EQU 20H;
                      10     
0000                  11     ORG 0000H
                      12     
0000 0150             13     AJMP MAIN
                      14     
0023                  15     ORG 0023H
0023 C299             16     CLR TI;
0025 C298             17     CLR RI;
0027 32               18     RETI;
                      19      
                      20     
0050                  21     ORG 0050H 
0050                  22     MAIN:
0050 759850           23     MOV SCON,#50H;
0053 758920           24     MOV TMOD,#20H;
0056 758DF3           25     MOV TH1,#0F3H;//0xF3;2400
0059 758BF3           26     MOV TL1,#0F3H;
                      27     ;MOV SP,#7FH
005C D28E             28     SETB TR1;
                      29     ;SETB EA;
                      30     ;SETB ES;
                      31     
005E                  32     START:
005E 2097FD           33     JB IR,$;等待遥控信号出现
0061 7E0A             34     MOV R6,#10
0063 311A             35     SB: ACALL YS1;调用882微秒延时子程序
0065 2097F6           36     JB IR,START;延时882微秒后判断IR脚是否出现高电平如果有就退出解码程序
0068 DEF9             37     DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
                      38     ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
                      39     ;JB IR,START;///////////////// 
006A 3097FD           40     JNB IR, $ ;等待高电平避开9毫秒低电平引导脉冲
006D 3123             41     ACALL YS2 ;延时4.74毫秒避开4.5毫秒的结果码
006F 791A             42     MOV R1,#BUFF ;设定1AH为起始RAM区
0071 7A04             43     MOV R2,#4 
0073 7B08             44     PP: MOV R3,#8
0075                  45     JJJJ:
0075 2097E6           46     JB IR,START;///////////////// 
0078 3097FD           47     JNB IR,$;等待地址码第一位的高电平信号
007B 12011A           48     LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
007E A297             49     MOV C,IR;将IR引脚此时的电平状态0或1存入C中
0080 5006             50     JNC UUU;如果为0就跳转到UUU
0082 3097D9           51     JNB IR,START;/////////////////
0085 2097FD           52     JB IR,$;如果为1就等待高电平信号结束
0088 E7               53     UUU: MOV A,@R1;将R1中地址的给A
0089 13               54     RRC A;将C中的值0或1移入A中的最低位
008A F7               55     MOV @R1,A;将A中的数暂时存放在R1中
008B DBE8             56     DJNZ R3,JJJJ;接收地址码的高8位
008D 09               57     INC R1;对R1中的值加1,换成下一个RAM
008E DAE3             58     DJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中
A51 MACRO ASSEMBLER  YAOKONG                                                              10/29/2005 22:18:21 PAGE     2

                      59     ;以下对代码是否正确和定义进行识别
                      60     
                      61     
                      62     ;MOV A,1AH;比较高8位地址码
                      63     ;XRL A,#00H ;判断1AH的值是否等于00000002,相等的话A为0
                      64     ;JNZ START;如果不相等说明解码失败退出解码程序//JNZ
                      65     ;MOV A,1BH;比较低8位地址
                      66     ;XRL A,#0FFH ;再判断高8位地址是否正确
                      67     ;JNZ START;如果不相等说明解码失败退出解码程序
0090 E51C             68     MOV A,1CH;比较数据码和数据反码是否正确?
0092 F4               69     CPL A
0093 651D             70     XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确
0095 70C7             71     JNZ START;如果不相等说明解码失败退出解码程序
                      72     ;CLR P1.6;解码成功发光二极管点亮指示!
                      73     
0097 E51C             74     MOV A,1CH
0099 B41802           75     CJNE A,#18H,T12
009C B296             76     CPL JK1
009E                  77     T12:
009E B41F02           78     CJNE A,#1FH,T13
00A1 B295             79     CPL JK2
                      80     
00A3                  81     T13:
00A3 B41E02           82     CJNE A,#1EH,T14
00A6 B294             83     CPL JK3
                      84     
00A8                  85     T14:
00A8 B41B02           86     CJNE A,#1BH,T15
00AB B293             87     CPL JK4
                      88     
00AD                  89     T15:
00AD B41402           90     CJNE A,#14H,T16
00B0 B292             91     CPL JK5
                      92     
00B2                  93     T16:
00B2 B41502           94     CJNE A,#15H,T17
00B5 B291             95     CPL JK6
                      96     ;//////////////////////////////////////////////////////////////////
00B7                  97     T17:
00B7 B40F05           98     CJNE A,#0FH,T18;上
00BA 75200F           99     MOV SERIOR,#0FH
00BD 11E5            100     ACALL SEND
                     101     
00BF                 102     T18:
00BF B40505          103     CJNE A,#05H,T19;下
00C2 752005          104     MOV SERIOR,#05H
00C5 11E5            105     ACALL SEND
                     106     
00C7                 107     T19:
00C7 B40A05          108     CJNE A,#0AH,T20;左
00CA 75200A          109     MOV SERIOR,#0AH
00CD 11E5            110     ACALL SEND
                     111     
00CF                 112     T20:
00CF B40905          113     CJNE A,#09H,T21;右
00D2 752009          114     MOV SERIOR,#09H
00D5 11E5            115     ACALL SEND
                     116     
                     117     
00D7                 118     T21:
00D7 B41D03          119     CJNE A,#1DH,T22
00DA 759080          120     MOV P1,#80H
                     121     
                     122     
00DD                 123     T22:
00DD B41C03          124     CJNE A,#1CH,T23
A51 MACRO ASSEMBLER  YAOKONG                                                              10/29/2005 22:18:21 PAGE     3

00E0 7590FF          125     MOV P1,#0FFH
                     126     
00E3                 127     T23:
                     128     
00E3 015E            129     AJMP START
                     130     
                     131     ;判断在118毫秒内是否有连发码
                     132     ;AA:MOV R1,#25
                     133     ;XX:ACALL YS2
                     134     ;JNB IR,HH;跳转到判断连发代码是否正确的程序段
                     135     ;DJNZ R1,XX
                     136     
                     137     ;连发码判断程序段-----------
                     138     ;HH:MOV R6,#4
                     139     ;S: ACALL YS1;调用882微秒延时子程序
                     140     ;JB IR,EXIT;延时882微秒后判断IR脚是否出现高电平如果有就退出解码程序
                     141     ;DJNZ R6, S;重复4次,目的是确认连发码的低电平信号波形
                     142     ;JNB IR, $ ;等待高电平
00E5                 143     SEND:
00E5 74AA            144     MOV A,#0AAH
00E7 F599            145     MOV SBUF,A
00E9 3099FD          146     JNB TI,$    ;等待发送结束
00EC C299            147     CLR TI 
00EE 7D70            148     MOV R5,#70H
00F0 DDFE            149     DJNZ R5,$
                     150     
00F2 7455            151     MOV A,#55H
00F4 F599            152     MOV SBUF,A
00F6 3099FD          153     JNB TI,$    ;等待发送结束
00F9 C299            154     CLR TI
00FB 7D70            155     MOV R5,#70H
00FD DDFE            156     DJNZ R5,$
                     157     
00FF 74A5            158     MOV A,#0A5H
0101 F599            159     MOV SBUF,A
0103 3099FD          160     JNB TI,$    ;等待发送结束
0106 C299            161     CLR TI
0108 7D70            162     MOV R5,#70H
010A DDFE            163     DJNZ R5,$
                     164     
010C E520            165     MOV A,SERIOR
010E F599            166     MOV SBUF,A
0110 3099FD          167     JNB TI,$    ;等待发送结束
0113 C299            168     CLR TI
0115 7D70            169     MOV R5,#70H
0117 DDFE            170     DJNZ R5,$
                     171     
0119 22              172     RET
                     173     
                     174     
                     175     
                     176     
011A 7C14            177     YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒
011C 7D14            178     D1: MOV R5,#20
011E DDFE            179     DJNZ R5,$
0120 DCFA            180     DJNZ R4,D1 
0122 22              181     RET
                     182     
0123 7C0A            183     YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒
0125 7DEB            184     D2: MOV R5,#235
0127 DDFE            185     DJNZ R5,$
0129 DCFA            186     DJNZ R4,D2 
012B 22              187     RET
                     188     END
                             
A51 MACRO ASSEMBLER  YAOKONG                                                              10/29/2005 22:18:21 PAGE     4

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


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

BUFF . . . . . . .  N NUMB   001AH   A   
D1 . . . . . . . .  C ADDR   011CH   A   
D2 . . . . . . . .  C ADDR   0125H   A   
IR . . . . . . . .  B ADDR   0090H.7 A   
JJJJ . . . . . . .  C ADDR   0075H   A   
JK1. . . . . . . .  B ADDR   0090H.6 A   
JK2. . . . . . . .  B ADDR   0090H.5 A   
JK3. . . . . . . .  B ADDR   0090H.4 A   
JK4. . . . . . . .  B ADDR   0090H.3 A   
JK5. . . . . . . .  B ADDR   0090H.2 A   
JK6. . . . . . . .  B ADDR   0090H.1 A   
MAIN . . . . . . .  C ADDR   0050H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PP . . . . . . . .  C ADDR   0073H   A   
RI . . . . . . . .  B ADDR   0098H.0 A   
SB . . . . . . . .  C ADDR   0063H   A   
SBUF . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SEND . . . . . . .  C ADDR   00E5H   A   
SERIOR . . . . . .  N NUMB   0020H   A   
START. . . . . . .  C ADDR   005EH   A   
T12. . . . . . . .  C ADDR   009EH   A   
T13. . . . . . . .  C ADDR   00A3H   A   
T14. . . . . . . .  C ADDR   00A8H   A   
T15. . . . . . . .  C ADDR   00ADH   A   
T16. . . . . . . .  C ADDR   00B2H   A   
T17. . . . . . . .  C ADDR   00B7H   A   
T18. . . . . . . .  C ADDR   00BFH   A   
T19. . . . . . . .  C ADDR   00C7H   A   
T20. . . . . . . .  C ADDR   00CFH   A   
T21. . . . . . . .  C ADDR   00D7H   A   
T22. . . . . . . .  C ADDR   00DDH   A   
T23. . . . . . . .  C ADDR   00E3H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TI . . . . . . . .  B ADDR   0098H.1 A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
UUU. . . . . . . .  C ADDR   0088H   A   
YS1. . . . . . . .  C ADDR   011AH   A   
YS2. . . . . . . .  C ADDR   0123H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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