yaokongc.lst
来自「单片机红外解码及无线解码的应用」· LST 代码 · 共 307 行
LST
307 行
C51 COMPILER V7.01 YAOKONGC 10/30/2005 10:41:47 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE YAOKONGC
OBJECT MODULE PLACED IN YAOKONGC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE YAOKONGC.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //dvd
2
3 #include <reg51.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 sbit IR=P1^7;
7 //sbit JK1=P3^7;
8 //sbit JK2=P3^6;
9
10 //sbit JK0=P0^2;
11 sbit JK1=P1^6;
12 sbit JK2=P1^5;
13 sbit JK3=P1^4;
14 sbit JK4=P1^3;
15 sbit JK5=P1^2;
16 sbit JK6=P1^1;
17
18
19
20 uchar datacode[5];
21 uchar serior[4]={0xAA,0X55,0XA5,0X00};
22
23 void delay0(void)
24 {
25 1 uchar i=145;
26 1 while(i--);
27 1 }
28
29 void delay1(void)
30 {
31 1 uchar i=70;
32 1 while(i--);
33 1 }
34
35
36 void delay2(void)
37 {
38 1 uint i=4600;
39 1 while(i--);
40 1 }
41
42
43 void delay3(void)
44 {
45 1 uchar i=30;
46 1 while(i--);
47 1 }
48
49
50 void delay(void)
51 {
52 1 uchar j,k;
53 1 //for(i=0;i<1;i++)
54 1 for (j=0;j<50;j++)
55 1 for (k=0;k<50;k++);
C51 COMPILER V7.01 YAOKONGC 10/30/2005 10:41:47 PAGE 2
56 1 }
57
58 uchar yaokong (void)
59 {
60 1 uchar i,k;
61 1 uchar bdata j;
62 1 //uint a;
63 1 if (IR==1)
64 1 return(0);
65 1
66 1 for (i=0;i<20;i++)//882us 0
67 1 {
68 2 delay1();
69 2 if (IR==1)
70 2 return(0);
71 2 }
72 1
73 1 while(IR==0);
74 1
75 1
76 1 for (i=0;i<9;i++)//4700us 1
77 1 {
78 2 delay1();
79 2 if (IR==0)
80 2 return(0);
81 2 }
82 1
83 1 delay0();
84 1
85 1 for (i=0;i<4;i++)
86 1 {
87 2 for (k=0;k<8;k++)
88 2 {
89 3 while(IR==0);
90 3 delay0();
91 3 j>>=1;
92 3 if (IR==1)
93 3 {
94 4 j|=0x80;
95 4 while(IR==1);
96 4 }
97 3 else
98 3 {
99 4 j&=0x7f;
100 4 }
101 3
102 3 }
103 2 datacode[i]=j;
104 2 }
105 1 return(1);
106 1 }
107
108
109 uchar lianfa (void)
110 {
111 1 uchar i;
112 1
113 1
114 1 if (IR==1)
115 1 return(0);
116 1 else
117 1 while(IR==0);
C51 COMPILER V7.01 YAOKONGC 10/30/2005 10:41:47 PAGE 3
118 1
119 1 for (i=0;i<10;i++)//369us 1
120 1 {
121 2 delay3();
122 2 if (IR==0)
123 2 return(0);
124 2 }
125 1
126 1 delay1();
127 1 if (IR==1)
128 1 return(0);
129 1
130 1
131 1 delay3();
132 1 if (IR==1)
133 1 return(0);
134 1
135 1 if (IR==0)
136 1 while(IR==0);
137 1
138 1 for (i=0;i<107;i++)//15969us 1
139 1 {
140 2 delay0();
141 2 if (IR==0)
142 2 return(0);
143 2 }
144 1
145 1 delay0();
146 1 delay0();
147 1 if (IR==1)
148 1 return(0);
149 1
150 1 return(1);
151 1
152 1 }
153
154 void receive (void) interrupt 4
155 {
156 1
157 1 if (TI==1)
158 1 {
159 2 TI=0;
160 2 }
161 1 if (RI==1)
162 1
163 1 RI=0;
164 1
165 1 }
166
167 initial ()
168 {
169 1 SCON=0X50;
170 1 TMOD=0x20;
171 1 TH1=0xF3;//0xF3;2400
172 1 TL1=0xF3;
173 1 TR1=1;
174 1 EA=1;
175 1 ES=1;
176 1
177 1 }
178
179
C51 COMPILER V7.01 YAOKONGC 10/30/2005 10:41:47 PAGE 4
180 void sendstring (uchar *p ,uchar len)
181 {
182 1 uchar i;//,temp;
183 1 for (i=0;i<len;i++)
184 1 {
185 2 //temp= 0;
186 2 SBUF=*(p++);
187 2 delay();
188 2 }
189 1 }
190
191
192
193 void main(void)
194 {
195 1 uchar i;
196 1 initial();
197 1 for (i=0;i<20;i++)
198 1 datacode[i]=i;
199 1
200 1 while(1)
201 1 {
202 2 if (yaokong()==1)
203 2 {
204 3 switch (datacode[2])
205 3 {
206 4
207 4 case 0x18://12
208 4 JK1=!JK1;
209 4 delay2();
210 4 while(lianfa()==1);
211 4 break;
212 4
213 4 case 0x1F://1B
214 4 JK2=!JK2;
215 4 delay2();
216 4 while(lianfa()==1);
217 4 break;
218 4
219 4 case 0x1E:
220 4 JK3=!JK3;
221 4 delay2();
222 4 while(lianfa()==1);
223 4 break;
224 4
225 4 case 0x1B:
226 4 JK4=!JK4;
227 4 delay2();
228 4 while(lianfa()==1);
229 4 break;
230 4 case 0x14:
231 4 JK5=0;
232 4 delay2();
233 4 while(lianfa()==1);
234 4 JK5=1;
235 4 break;
236 4 case 0x15:
237 4 JK6=0;
238 4 delay2();
239 4 while(lianfa()==1);
240 4 JK6=1;
241 4 break;
C51 COMPILER V7.01 YAOKONGC 10/30/2005 10:41:47 PAGE 5
242 4
243 4 case 0x1D:
244 4 P1=0x80;
245 4 delay2();
246 4 while(lianfa()==1);
247 4 break;
248 4 case 0x1C:
249 4 P1=0xff;
250 4 delay2();
251 4 while(lianfa()==1);
252 4 break;
253 4 case 0x0F:
254 4 serior[3]=0x0F;//上
255 4 sendstring(serior,4);
256 4 break;
257 4 case 0x05:
258 4 serior[3]=0x05;//下
259 4 sendstring(serior,4);
260 4 break;
261 4
262 4 case 0x0A:
263 4 serior[3]=0x0A;//左
264 4 sendstring(serior,4);
265 4 break;
266 4 case 0x09:
267 4 serior[3]=0x09;//右
268 4 sendstring(serior,4);
269 4 break;
270 4 }
271 3 }
272 2 }
273 1 }
274
275
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 518 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?