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

📄 ir-led.lst

📁 买板子时赠的实验例子
💻 LST
字号:
A51 MACRO ASSEMBLER  IR_LED                                                               03/29/2005 16:30:18 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************
                       2     ;*  标题:  伟纳电子ME300B单片机开发系统演示程序 - 遥控键值解码-LED显示          *
                       3     ;*  文件:  IR-LED.asm                                                           *
                       4     ;*  日期:  2005-3-20                                                            *
                       5     ;*  版本:  1.0                                                                  *
                       6     ;*  作者:  gguoqing                                                             *
                       7     ;*  邮箱:  gguoqing@willar.com                                                  *
                       8     ;*  网站: http://www.willar.com                                                *
                       9     ;********************************************************************************
                      10     ;*  描述:                                                                       *
                      11     ;*          ME300B 遥控键值读取器                                               *
                      12     ;*         LED 显示, P0口为LED的数据口                                          *
                      13     ;*         上电后,将8个LED全部点亮                                             *
                      14     ;*         K17键按下,继电器吸合。K19键按下,继电器关闭。                       *
                      15     ;*                                                                              *
                      16     ;********************************************************************************
                      17     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
                      18     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      19     ;********************************************************************************
                      20     
                      21     ;-----------------------------------------------
  0020                22            IRCOM  EQU  20H       ;20H-23H IR使用
                      23     
  00B2                24            IRIN   EQU  P3.2
  00B7                25            BEEP   EQU  P3.7
  0093                26            RELAY  EQU  P1.3
                      27     ;------------------------------------------------
0000                  28              ORG 0000H
0000 8000             29              JMP  MAIN
                      30     ;------------------------------------------------
0002                  31     MAIN:
0002 758160           32               MOV   SP,#60H
0005 7400             33               MOV   A,#00H
0007 7820             34               MOV   R0,#20H
0009 F6               35     LOOP0:    MOV   @R0,A          ;20H-24H清零
000A 08               36               INC   R0
000B B825FB           37               CJNE  R0,#25H,LOOP0
000E D2B2             38               SETB  IRIN
0010 D2B7             39               SETB  BEEP
0012 D293             40               SETB  RELAY
0014 7522FF           41               MOV  22H,#0FFH
0017 116E             42               CALL  IR_SHOW       ;8个LED全部亮
0019                  43     LOOP1:
0019 1128             44               CALL  IR_IN
001B F4               45               CPL   A
001C B44002           46               CJNE  A,#40H,LOOP2    ;K17键按下
001F C293             47               CLR   RELAY           ;继电器吸合
0021 B40402           48     LOOP2:    CJNE  A,#04H,LOOP3    ;K19键按下
0024 D293             49               SETB  RELAY           ;继电器关闭
                      50     
0026 80F1             51     LOOP3:    JMP   LOOP1
                      52     
                      53     ;---------------------------------------------------
                      54     ; IR 译码子程序
                      55     ;---------------------------------------------------
0028                  56     IR_IN:
0028 7820             57               MOV   R0,#IRCOM
002A 30B202           58      I1:      JNB  IRIN,I2       ;等待 IR 信号出现
A51 MACRO ASSEMBLER  IR_LED                                                               03/29/2005 16:30:18 PAGE     2

002D 80FB             59               JMP  I1
002F 7C14             60      I2:      MOV  R4,#20
0031 1197             61      I20:     CALL  DEL
0033 DCFC             62               DJNZ  R4,I20
0035 20B2F2           63               JB  IRIN,I1        ;确认IR信号出现
0038 20B204           64      I21:     JB  IRIN,I3        ;等 IR 变为高电平
003B 1197             65               CALL  DEL
003D 80F9             66               JMP  I21
003F 7B00             67      I3:      MOV  R3,#0         ;8位数清为0
0041 30B204           68      LL:      JNB  IRIN,I4       ;等 IR 变为低电平
0044 1197             69               CALL  DEL
0046 80F9             70               JMP  LL
0048 20B204           71      I4:      JB  IRIN,I5        ;等 IR 变为高电平
004B 1197             72               CALL  DEL
004D 80F9             73               JMP  I4
004F 7A00             74      I5:      MOV  R2,#0         ;0.14ms 计数
0051 1197             75      L1:      CALL  DEL
0053 20B213           76               JB  IRIN, N1       ;等 IR 变为高电平
                      77                                  ;IR=0,检查R2中的计数值
0056 7408             78               MOV  A,#8
0058 C3               79               CLR  C
0059 9A               80               SUBB  A,R2         ;判断高低位
                      81                                  ;IF C=0  BIT=0
005A E6               82               MOV  A,@R0
005B 13               83               RRC  A
005C F6               84               MOV  @R0,A         ;处理完一位
005D 0B               85               INC  R3
005E BB08E0           86               CJNE  R3,#8,LL     ;需处理完8位
0061 7B00             87               MOV  R3,#0
0063 08               88               INC  R0
0064 B824DA           89               CJNE  R0,#24H,LL   ;收集到4字节了
0067 8005             90               JMP  IR_SHOW
0069 0A               91      N1:      INC  R2
006A BA1EE4           92               CJNE  R2,#30,L1    ;0.14ms 计数过长则时间到自动离开
006D 22               93               RET
                      94     ;---------------------------------------------------------------
                      95     ;键值显示
                      96     ;22H存入用户编码,23H存入用户编码的反码
                      97     ;---------------------------------------------------------------
006E                  98     IR_SHOW:
006E E522             99               MOV A,22H
0070 F4              100               CPL A                ;将22H取反后和23H比较
0071 B52304          101               CJNE A,23H,IR_SHOW1  ;如果不等表示接收数据发生错误,放弃。
0074 F580            102               MOV  P0,A
0076 1179            103               CALL  BEEP_BL        ;蜂鸣器鸣响表示解码成功
0078 22              104     IR_SHOW1: RET
                     105     
                     106     ;--------------------------------------------------------
                     107     ;蜂鸣器响一声子程序
                     108     ;--------------------------------------------------------
0079                 109     BEEP_BL:
0079 7E64            110              MOV  R6,#100
007B 1186            111       BL1:   CALL  DEX1
007D B2B7            112              CPL  BEEP
007F DEFA            113              DJNZ  R6,BL1
0081 7D14            114              MOV  R5,#20
0083 118C            115              CALL  DELAY
0085 22              116              RET
0086 7FB4            117      DEX1:   MOV  R7,#180
0088 00              118      DEX2:   NOP
0089 DFFD            119              DJNZ  R7,DEX2
008B 22              120              RET
008C                 121      DELAY:                    ;延时R5×10MS
008C 7E32            122              MOV  R6,#50
008E 7F64            123       D1:    MOV  R7,#100
0090 DFFE            124              DJNZ  R7,$
A51 MACRO ASSEMBLER  IR_LED                                                               03/29/2005 16:30:18 PAGE     3

0092 DEFA            125              DJNZ  R6,D1
0094 DDF6            126              DJNZ  R5,DELAY
0096 22              127              RET
                     128     ;------------------------------------------------
                     129     ; DELAY  R5*0.14MS
0097                 130     DEL:
0097 7D01            131               MOV  R5,#1       ;IR解码使用
0099 7E02            132     DEL0:     MOV  R6,#2
009B 7F20            133     DEL1:     MOV  R7,#32
009D DFFE            134     DEL2:     DJNZ  R7,DEL2
009F DEFA            135               DJNZ  R6,DEL1
00A1 DDF6            136               DJNZ  R5,DEL0
00A3 22              137               RET
                     138     
00A4                 139     DELAY1:                    ;延时5MS
00A4 7E19            140              MOV  R6,#25
00A6 7F64            141       DL2:   MOV  R7,#100
00A8 DFFE            142              DJNZ  R7,$
00AA DEFA            143              DJNZ  R6,DL2
00AC 22              144              RET
                     145     ;---------------------------------
                     146             END               ;结束
                             
                             ;================================
                             ;DT9122D 遥控器(伟纳电子)
                             
                             ;******  红外遥控器键值表  ******
                             
                             ;  10     03      01      06
                             ;  09     1D      1F      0D
                             ;  19     1B      11      15
                             ;  17     12      16      4C
                             ;  40     48      04      00
                             ;  02     05      54      4D
                             ;  0A     1E      0E      1A
                             ;  1C     14      0F      0C
                             ;================================
                             
A51 MACRO ASSEMBLER  IR_LED                                                               03/29/2005 16:30:18 PAGE     4

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


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

BEEP . . . . . . .  B ADDR   00B0H.7 A   
BEEP_BL. . . . . .  C ADDR   0079H   A   
BL1. . . . . . . .  C ADDR   007BH   A   
D1 . . . . . . . .  C ADDR   008EH   A   
DEL. . . . . . . .  C ADDR   0097H   A   
DEL0 . . . . . . .  C ADDR   0099H   A   
DEL1 . . . . . . .  C ADDR   009BH   A   
DEL2 . . . . . . .  C ADDR   009DH   A   
DELAY. . . . . . .  C ADDR   008CH   A   
DELAY1 . . . . . .  C ADDR   00A4H   A   
DEX1 . . . . . . .  C ADDR   0086H   A   
DEX2 . . . . . . .  C ADDR   0088H   A   
DL2. . . . . . . .  C ADDR   00A6H   A   
I1 . . . . . . . .  C ADDR   002AH   A   
I2 . . . . . . . .  C ADDR   002FH   A   
I20. . . . . . . .  C ADDR   0031H   A   
I21. . . . . . . .  C ADDR   0038H   A   
I3 . . . . . . . .  C ADDR   003FH   A   
I4 . . . . . . . .  C ADDR   0048H   A   
I5 . . . . . . . .  C ADDR   004FH   A   
IRCOM. . . . . . .  N NUMB   0020H   A   
IRIN . . . . . . .  B ADDR   00B0H.2 A   
IR_IN. . . . . . .  C ADDR   0028H   A   
IR_SHOW. . . . . .  C ADDR   006EH   A   
IR_SHOW1 . . . . .  C ADDR   0078H   A   
L1 . . . . . . . .  C ADDR   0051H   A   
LL . . . . . . . .  C ADDR   0041H   A   
LOOP0. . . . . . .  C ADDR   0009H   A   
LOOP1. . . . . . .  C ADDR   0019H   A   
LOOP2. . . . . . .  C ADDR   0021H   A   
LOOP3. . . . . . .  C ADDR   0026H   A   
MAIN . . . . . . .  C ADDR   0002H   A   
N1 . . . . . . . .  C ADDR   0069H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RELAY. . . . . . .  B ADDR   0090H.3 A   
SP . . . . . . . .  D ADDR   0081H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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