📄 rf51.lst
字号:
C51 COMPILER V7.50 RF51 05/07/2008 20:04:07 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RF51
OBJECT MODULE PLACED IN RF51.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RF51.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 unsigned long datacap;
7 uchar count,data_count;
8
9 sfr AUXR=0x8e;
10 sbit rfin=P2^7;
11 sbit led=P1^0;
12
13 void init();
14 bit sync();
15 bit getdata();
16
17 void main()
18 {
19 1 uchar m,n,t;
20 1 init();
21 1 while(1)
22 1 {
23 2 while(sync())
24 2 getdata();
25 2
26 2 if(datacap==0x98008501)
27 2 {
28 3 led=0;
29 3 for(m=255;m>0;m--)
30 3 for(n=255;n>0;n--);
31 3 led=1;
32 3 }
33 2 if(datacap==0x98008502)
34 2 {
35 3 for(t=2;t>0;t--)
36 3 { for(m=255;m>0;m--)
37 4 for(n=255;n>0;n--);
38 4 for(m=255;m>0;m--)
39 4 for(n=255;n>0;n--);
40 4 led=0;
41 4 for(m=255;m>0;m--)
42 4 for(n=255;n>0;n--);
43 4 led=1;
44 4 }
45 3 }
46 2 if(datacap==0x98008504)
47 2 {
48 3 for(t=3;t>0;t--)
49 3 { for(m=255;m>0;m--)
50 4 for(n=255;n>0;n--);
51 4 for(m=255;m>0;m--)
52 4 for(n=255;n>0;n--);
53 4 led=0;
54 4 for(m=255;m>0;m--)
55 4 for(n=255;n>0;n--);
C51 COMPILER V7.50 RF51 05/07/2008 20:04:07 PAGE 2
56 4 led=1;
57 4 }
58 3 }
59 2 datacap=0x00;
60 2 }
61 1
62 1 }
63
64 void init()
65 {
66 1 datacap=0x00;
67 1 count=0;
68 1 data_count=0;
69 1 AUXR=0x01;
70 1 P1=0xff;
71 1 P3=0xff;
72 1 //下面3行用于定义T0 工作于方式1(16位模式)
73 1 // TMOD=0x01;
74 1 // TH0=(65536-100)/256;
75 1 // TL0=(65536-100)%256;
76 1 //下面2行用于定义T0 工作于方式2(8位自动装入模式)
77 1 TMOD=0x02;
78 1 TH0=(65536-100)%256;
79 1 TL0=(65536-100)%256;
80 1 IE=0x82; //开总中断及时钟0中断
81 1 TR0=1; //定时器0计时开始
82 1 // IE=0x83; //开总中断及外部0和时钟0中断
83 1 // IT0=1; //外部中断0为边沿(下降沿)触发
84 1 }
85
86 bit sync()
87 {
88 1 count=0;
89 1 while(!rfin);
90 1 if((count<2)||(count>6))
91 1 {
92 2 return 0;//出错}
93 2
94 2 }
95 1 count=0;
96 1 while(rfin);
97 1 if((count<25)||(count>35))
98 1 {
99 2 return 0;//出错}
100 2 }
101 1 data_count=0;
102 1 datacap=0;
103 1 return 1;
104 1 }
105
106 bit getdata()
107 {
108 1 uchar Hlevel_bit,temp;
109 1 temp=0x00;
110 1 for(;data_count<32;data_count++)
111 1 {
112 2 count=0;
113 2 while(!rfin);
114 2 if((count<2)||(count>12))
115 2 return 0;//出错
116 2 if(count<6)
117 2 Hlevel_bit=0;//判断到0的高电平
C51 COMPILER V7.50 RF51 05/07/2008 20:04:07 PAGE 3
118 2 else //if(count<13)
119 2 Hlevel_bit=1;//判断到1的高电平
120 2 count=0;
121 2 while(rfin);
122 2 if((count<2)||(count>12))
123 2 return 0;//出错
124 2 if(!Hlevel_bit)
125 2 {
126 3 if(count>6)
127 3 datacap=datacap&0xfffffffe;//得到数据0
128 3 }
129 2 else
130 2 {
131 3 if(count<7)
132 3 datacap=datacap|0x01;//得到数据1
133 3 }
134 2
135 2 if(data_count<31)
136 2 datacap<<=1;
137 2 }
138 1
139 1 return 1;
140 1
141 1 }
142
143 void timer0() interrupt 1
144 {
145 1 // TH0=(65536-100)/256;
146 1 // TL0=(65536-100)%256;
147 1 count++;
148 1
149 1 }
150
151 /*
152 void ext0() interrupt 0 using 1
153 {
154 // uchar m,n;
155 EX0=0;
156 // led=0;
157 // for(m=255;m>0;m--)
158 // for(n=255;n>0;n--);
159 // while(sync())
160 // getdata();
161 // led=1;
162 // for(m=255;m>0;m--)
163 // for(n=255;n>0;n--);
164 EX0=1;
165 } */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 442 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 4
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 + -