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

📄 remote.lst

📁 单片机无线遥控实例 功能:通过无线遥控实现对继电器的控制
💻 LST
字号:
A51 MACRO ASSEMBLER  REMOTE                                                               06/23/2007 10:58:55 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;----------------------------------
                       2     ;                   单片机无线遥控实例
                       3     ;          功能:通过无线遥控实现对继电器的控制
                       4     ;-----------------------------------
0000                   5     ORG 0000H
0000 020003            6     LJMP START
                       7     
0003                   8     START:
0003 758150            9         MOV SP,#50H               ; 将堆栈起点设为60H
0006 C290             10         CLR P1.0                  
0008 C291             11         CLR P1.1
000A C292             12         CLR P1.2
000C C293             13         CLR P1.3
000E 00               14         NOP
                      15     
000F E4               16         CLR A                     ; 将0-9的显示情况都走一遍
0010                  17     SHOW_LOOP:                       
0010 116B             18         CALL SHOW_SEG
0012 04               19         INC A
0013 B40AFA           20         CJNE A,#10,SHOW_LOOP
                      21         
0016 E4               22         CLR A
0017 116B             23         CALL SHOW_SEG              ; 清除显示
                      24     
0019                  25     MAIN:
0019 D2B2             26        SETB P3.2                   ; 等待信号来
001B 1200E9           27        LCALL RX                    ; 进入等待、接收子程序
001E 80F9             28        JMP MAIN
                      29     
0020                  30     OP_RELAY:
                      31     ;---------------------------
                      32     ; 操作函数,根据输入的值进行对应的操作,参数从r1输入
                      33     ;---------------------------
0020 E9               34         MOV A,R1
0021 5480             35         ANL A,#80H      ; 判断输入值是否80h
0023 700E             36         JNZ OP_NEXT1  
0025 7401             37         MOV A,#1        ; 显示1
0027 116B             38         CALL SHOW_SEG
0029 D293             39         SETB P1.3       ; 对应的LED亮  
002B 7DFF             40         MOV R5,#0FFH  
002D 11FC             41         CALL DELAY      ; 延时
002F C293             42         CLR P1.3        ; 对应的LED灭
0031 8037             43         JMP OP_OUT
0033                  44     OP_NEXT1:
0033 E9               45         MOV A,R1
0034 5420             46         ANL A,#20H      ; 判断输入值是否20h
0036 700E             47         JNZ OP_NEXT2
0038 7403             48         MOV A,#3        ; 显示3
003A 116B             49         CALL SHOW_SEG
003C D291             50         SETB P1.1       ; 对应的LED亮  
003E 7DFF             51         MOV R5,#0FFH
0040 11FC             52         CALL DELAY      ; 延时
0042 C291             53         CLR P1.1        ; 对应的LED灭
0044 8024             54         JMP OP_OUT
0046                  55     OP_NEXT2:
0046 E9               56         MOV A,R1
0047 5410             57         ANL A,#10H      ; 判断输入值是否10h
0049 700E             58         JNZ OP_NEXT3
A51 MACRO ASSEMBLER  REMOTE                                                               06/23/2007 10:58:55 PAGE     2

004B 7402             59         MOV A,#2        ; 显示2
004D 116B             60         CALL SHOW_SEG
004F D292             61         SETB P1.2       ; 对应的LED亮  
0051 7DFF             62         MOV R5,#0FFH
0053 11FC             63         CALL DELAY      ; 延时
0055 C292             64         CLR P1.2        ; 对应的LED灭
0057 8011             65         JMP OP_OUT
0059                  66     OP_NEXT3:
0059 E9               67         MOV A,R1
005A 5440             68         ANL A,#40H      ; 判断输入值是否40h
005C 700C             69         JNZ OP_OUT
005E 7404             70         MOV A,#4        ; 显示4
0060 116B             71         CALL SHOW_SEG
0062 D290             72         SETB P1.0       ; 对应的LED亮  
0064 7DFF             73         MOV R5,#0FFH
0066 11FC             74         CALL DELAY      ; 延时
0068 C290             75         CLR P1.0        ; 对应的LED灭
006A                  76     OP_OUT:
006A 22               77         RET
                      78     
006B                  79     SHOW_SEG:
                      80     ;--------------------------
                      81     ; 显示函数,参数从A输入
                      82     ;--------------------------
006B B4000A           83         CJNE A,#0,SHOW_1 ; 接收到0的显示  
006E C2B5             84         CLR P3.5
0070 C2B4             85         CLR P3.4
0072 C2B3             86         CLR P3.3
0074 C2B7             87         CLR P3.7
0076 8070             88         JMP SHOW_OUT
0078                  89     SHOW_1:            ; 接收到1的显示  
0078 B4000A           90         CJNE A,#0,SHOW_2  
007B C2B5             91         CLR P3.5
007D C2B4             92         CLR P3.4
007F C2B3             93         CLR P3.3
0081 D2B7             94         SETB P3.7
0083 8063             95         JMP SHOW_OUT
0085                  96     SHOW_2:              ; 接收到2的显示                
0085 B4000A           97         CJNE A,#0,SHOW_3
0088 C2B5             98         CLR P3.5
008A C2B4             99         CLR P3.4
008C D2B3            100         SETB P3.3
008E C2B7            101         CLR P3.7
0090 8056            102         JMP SHOW_OUT
0092                 103     SHOW_3:            ; 接收到3的显示  
0092 B4000A          104         CJNE A,#0,SHOW_4
0095 C2B5            105         CLR P3.5
0097 C2B4            106         CLR P3.4
0099 D2B3            107         SETB P3.3
009B D2B7            108         SETB P3.7
009D 8049            109         JMP SHOW_OUT
009F                 110     SHOW_4:            ; 接收到4的显示  
009F B4000A          111         CJNE A,#0,SHOW_5
00A2 C2B5            112         CLR P3.5
00A4 D2B4            113         SETB P3.4
00A6 C2B3            114         CLR P3.3
00A8 C2B7            115         CLR P3.7
00AA 803C            116         JMP SHOW_OUT
00AC                 117     SHOW_5:            ; 接收到5的显示  
00AC B4000A          118         CJNE A,#0,SHOW_6
00AF C2B5            119         CLR P3.5
00B1 D2B4            120         SETB P3.4
00B3 C2B3            121         CLR P3.3
00B5 D2B7            122         SETB P3.7
00B7 802F            123         JMP SHOW_OUT
00B9                 124     SHOW_6:            ; 接收到6的显示  
A51 MACRO ASSEMBLER  REMOTE                                                               06/23/2007 10:58:55 PAGE     3

00B9 B4000A          125         CJNE A,#0,SHOW_7
00BC C2B5            126         CLR P3.5
00BE D2B4            127         SETB P3.4
00C0 D2B3            128         SETB P3.3
00C2 C2B7            129         CLR P3.7
00C4 8022            130         JMP SHOW_OUT
00C6                 131     SHOW_7:            ; 接收到7的显示  
00C6 B4000A          132         CJNE A,#0,SHOW_8
00C9 C2B5            133         CLR P3.5
00CB D2B4            134         SETB P3.4
00CD D2B3            135         SETB P3.3
00CF D2B7            136         SETB P3.7
00D1 8015            137         JMP SHOW_OUT
00D3                 138     SHOW_8:            ; 接收到8的显示  
00D3 B4000A          139         CJNE A,#0,SHOW_9
00D6 D2B5            140         SETB P3.5
00D8 C2B4            141         CLR P3.4
00DA C2B3            142         CLR P3.3
00DC C2B7            143         CLR P3.7
00DE 8008            144         JMP SHOW_OUT
00E0                 145     SHOW_9:            ; 接收到9的显示  
00E0 D2B5            146         SETB P3.5
00E2 C2B4            147         CLR P3.4
00E4 C2B3            148         CLR P3.3
00E6 D2B7            149         SETB P3.7
00E8                 150     SHOW_OUT:
00E8 22              151         RET
                     152     
00E9                 153     RX:
                     154     ;---------------------------
                     155     ; 接收操作函数,读入无线模块接收的数据
                     156     ;---------------------------
00E9 E5B0            157         MOV A,P3
00EB 5404            158         ANL A,#04H        ; 判断是否有信号来
00ED 700C            159         JNZ RX_OUT
00EF E590            160         MOV A,P1
00F1 F9              161         MOV R1,A          ; 接收数据
00F2                 162     RX_WAIT:
00F2 E5B0            163         MOV A,P3
00F4 5404            164         ANL A,#04H        
00F6 B404F9          165         CJNE A,#04,RX_WAIT   ; 判断是否完成
00F9 1120            166         CALL OP_RELAY 
00FB                 167     RX_OUT:
00FB 22              168         RET
                     169     
00FC                 170     DELAY:
                     171     ;------------------
                     172     ; 延时函数,参数从R5输入
                     173     ;-------------------
00FC 7C0A            174        MOV R4,#10
00FE                 175     DELAY_LOOP:
00FE DCFE            176        DJNZ R4,DELAY_LOOP
0100 DDFA            177        DJNZ R5,DELAY
0102 22              178        RET
                     179      
                     180        END
A51 MACRO ASSEMBLER  REMOTE                                                               06/23/2007 10:58:55 PAGE     4

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


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

DELAY. . . . . . .  C ADDR   00FCH   A   
DELAY_LOOP . . . .  C ADDR   00FEH   A   
MAIN . . . . . . .  C ADDR   0019H   A   
OP_NEXT1 . . . . .  C ADDR   0033H   A   
OP_NEXT2 . . . . .  C ADDR   0046H   A   
OP_NEXT3 . . . . .  C ADDR   0059H   A   
OP_OUT . . . . . .  C ADDR   006AH   A   
OP_RELAY . . . . .  C ADDR   0020H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RX . . . . . . . .  C ADDR   00E9H   A   
RX_OUT . . . . . .  C ADDR   00FBH   A   
RX_WAIT. . . . . .  C ADDR   00F2H   A   
SHOW_1 . . . . . .  C ADDR   0078H   A   
SHOW_2 . . . . . .  C ADDR   0085H   A   
SHOW_3 . . . . . .  C ADDR   0092H   A   
SHOW_4 . . . . . .  C ADDR   009FH   A   
SHOW_5 . . . . . .  C ADDR   00ACH   A   
SHOW_6 . . . . . .  C ADDR   00B9H   A   
SHOW_7 . . . . . .  C ADDR   00C6H   A   
SHOW_8 . . . . . .  C ADDR   00D3H   A   
SHOW_9 . . . . . .  C ADDR   00E0H   A   
SHOW_LOOP. . . . .  C ADDR   0010H   A   
SHOW_OUT . . . . .  C ADDR   00E8H   A   
SHOW_SEG . . . . .  C ADDR   006BH   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0003H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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