📄 rf315mhz.lst
字号:
C51 COMPILER V7.06 RF315MHZ 03/03/2006 15:27:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE RF315MHZ
OBJECT MODULE PLACED IN RF315MHz.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RF315MHz.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
stmt level source
1 /******************************************************
2 DESIGN FOR RF315MHz USE
3 Designer: BH Zhang
4 Date:2006-1-11
5 Ver:1.0
6 Modify Mark:NONE
7 MCU IO="0" SEND MODOL="1" REC MODOL="0"
8 MCU IO="1" SEND MODOL="0" REC MODOL="1"
9 IO=1 SEND MODOL NOT WORK.
10 IO=0 SEND MODOL WORKING.
11 *******************************************************/
12 #include <at89x51.h>
13 #include "rf315mhz.h"
14 #include "timer.h"
15 //------------------------------------------------------
16 #define RFADDRESS 0x55
17 #define THIS 0x01 //send:hi target:low
18 //------------------------------------------------------
19 unsigned char RFBuf[RFSENDLEN]; //data buf
20 unsigned char nCodeLen; //record length per bit
21 //------------------------------------------------------
22 #define SW 3 //stop(wait) len
23 #define SWMIN (SW-2)
24 #define SWMAX (SW+SW)
25 #define S0 3 //0bit len
26 #define S0MIN (S0-2)
27 #define S0MAX (S0+2)
28 #define S1 9 //1bit len
29 #define S1MIN (S1-3)
30 #define S1MAX (S1+3)
31 #define ST 18 //start bit len
32 #define STMIN (ST-2)
33 #define STMAX (ST+2)
34 //------------------------------------------------------
35 //------------------------------------------------------
36 void SendSignal(unsigned char i){
37 1 RFTX=0;
38 1 TH0=T1OverFlow;
39 1 nCodeLen=0;
40 1 TR1=1;
41 1 while(nCodeLen<i);
42 1 RFTX=1;
43 1 i=SW;
44 1 TH0=T1OverFlow;
45 1 nCodeLen=0;
46 1 while(nCodeLen<i);
47 1 TR1=0;
48 1 }
49 //------------------------------------------------------
50 void RFSendStr(){
51 1 unsigned char i,j,tmp;
52 1
53 1 RFBuf[0]=RFADDRESS;
54 1 RFBuf[1]=THIS<<4;
55 1 RFBuf[RFSENDLEN-1]=0;
C51 COMPILER V7.06 RF315MHZ 03/03/2006 15:27:36 PAGE 2
56 1 for(i=0;i<19;i++)RFBuf[RFSENDLEN-1]-=RFBuf[i];
57 1
58 1 SendSignal(S0);
59 1 SendSignal(ST);
60 1
61 1 for(i=0;i<RFSENDLEN;i++){
62 2 tmp=RFBuf[i];
63 2 for(j=0;j<8;j++){
64 3 if(tmp&0x01)SendSignal(S1);
65 3 else SendSignal(S0);
66 3 tmp>>=1;
67 3 }
68 2 }
69 1 }
70 //------------------------------------------------------
C51 COMPILER V7.06 RF315MHZ 03/03/2006 15:27:36 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _SendSignal (BEGIN)
; SOURCE LINE # 36
;---- Variable 'i' assigned to Register 'R7' ----
; SOURCE LINE # 37
0000 C2B7 CLR RFTX
; SOURCE LINE # 38
0002 758C48 MOV TH0,#048H
; SOURCE LINE # 39
0005 E4 CLR A
0006 F500 R MOV nCodeLen,A
; SOURCE LINE # 40
0008 D28E SETB TR1
000A ?C0001:
; SOURCE LINE # 41
000A E500 R MOV A,nCodeLen
000C C3 CLR C
000D 9F SUBB A,R7
000E 40FA JC ?C0001
0010 ?C0002:
; SOURCE LINE # 42
0010 D2B7 SETB RFTX
; SOURCE LINE # 43
0012 7F03 MOV R7,#03H
; SOURCE LINE # 44
0014 758C48 MOV TH0,#048H
; SOURCE LINE # 45
0017 E4 CLR A
0018 F500 R MOV nCodeLen,A
001A ?C0003:
; SOURCE LINE # 46
001A E500 R MOV A,nCodeLen
001C C3 CLR C
001D 9F SUBB A,R7
001E 40FA JC ?C0003
0020 ?C0004:
; SOURCE LINE # 47
0020 C28E CLR TR1
; SOURCE LINE # 48
0022 22 RET
; FUNCTION _SendSignal (END)
; FUNCTION RFSendStr (BEGIN)
; SOURCE LINE # 50
; SOURCE LINE # 53
0000 750055 R MOV RFBuf,#055H
; SOURCE LINE # 54
0003 750010 R MOV RFBuf+01H,#010H
; SOURCE LINE # 55
0006 E4 CLR A
0007 F500 R MOV RFBuf+013H,A
; SOURCE LINE # 56
;---- Variable 'i' assigned to Register 'R6' ----
0009 FE MOV R6,A
000A ?C0006:
000A 7400 R MOV A,#LOW RFBuf
000C 2E ADD A,R6
000D F8 MOV R0,A
000E E6 MOV A,@R0
000F FF MOV R7,A
C51 COMPILER V7.06 RF315MHZ 03/03/2006 15:27:36 PAGE 4
0010 C3 CLR C
0011 E500 R MOV A,RFBuf+013H
0013 9F SUBB A,R7
0014 F500 R MOV RFBuf+013H,A
0016 0E INC R6
0017 BE13F0 CJNE R6,#013H,?C0006
001A ?C0007:
; SOURCE LINE # 58
001A 7F03 MOV R7,#03H
001C 120000 R LCALL _SendSignal
; SOURCE LINE # 59
001F 7F12 MOV R7,#012H
0021 120000 R LCALL _SendSignal
; SOURCE LINE # 61
0024 E4 CLR A
0025 FE MOV R6,A
0026 ?C0009:
; SOURCE LINE # 62
0026 7400 R MOV A,#LOW RFBuf
0028 2E ADD A,R6
0029 F8 MOV R0,A
002A E6 MOV A,@R0
;---- Variable 'tmp' assigned to Register 'R5' ----
002B FD MOV R5,A
; SOURCE LINE # 63
;---- Variable 'j' assigned to Register 'R4' ----
002C E4 CLR A
002D FC MOV R4,A
002E ?C0012:
; SOURCE LINE # 64
002E ED MOV A,R5
002F 30E004 JNB ACC.0,?C0015
0032 7F09 MOV R7,#09H
0034 8002 SJMP ?C0018
0036 ?C0015:
; SOURCE LINE # 65
0036 7F03 MOV R7,#03H
0038 ?C0018:
0038 120000 R LCALL _SendSignal
003B ?C0016:
; SOURCE LINE # 66
003B ED MOV A,R5
003C C3 CLR C
003D 13 RRC A
003E FD MOV R5,A
; SOURCE LINE # 67
003F 0C INC R4
0040 BC08EB CJNE R4,#08H,?C0012
; SOURCE LINE # 68
0043 ?C0011:
0043 0E INC R6
0044 BE14DF CJNE R6,#014H,?C0009
; SOURCE LINE # 69
0047 ?C0017:
0047 22 RET
; FUNCTION RFSendStr (END)
C51 COMPILER V7.06 RF315MHZ 03/03/2006 15:27:36 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
nCodeLen . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
RFBuf. . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0001H 20
RFTX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
_SendSignal. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
RFSendStr. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
j. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
tmp. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 107 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -