📄 main.lst
字号:
183 3 l_sys_mode=MODE0;
184 3 l_flg_recgood=0;
185 3 TR1=0;
186 3 }
187 2 if((RTCCON&0x80)==0x80)
188 2 {
189 3 RTCCON&=0x63;
190 3 if(time==l_ledsep)
191 3 {
192 4 l_flg_timeok=1;
193 4 time=0;
194 4 }
195 3 else
196 3 time++;
197 3 sleep_cout++;
198 3 if(sleep_cout==2000)
199 3 {
200 4 P0=0XFF;
201 4 PCON=PCON|0X03;
202 4 }
203 3 }
204 2 if((l_flg_timeok==1)&&(led_all_light==1))
205 2 {
206 3 switch(l_ledsta&0x03)
207 3 {
208 4 case 2 :
209 4 if(flash!=0)
210 4 flash=flash<<1;
211 4 else
212 4 flash=0x01;
213 4 break;
214 4 case 3 :
215 4 if(flash!=0)
216 4 flash=flash>>1;
217 4 else
218 4 flash=0x80;
219 4 break;
220 4 default :
221 4 break;
222 4 }
223 3 l_flg_timeok=0;
224 3 P0=flash^0xff;
225 3 }
226 2 }
227 1 }
228 void delay()
229 {
230 1 unsigned char i,j;
231 1 for(i=0;i<110;i++)
232 1 for(j=0;j<110;j++);
233 1
234 1 }
235 void delayNS(unsigned int k)
236 {
237 1 unsigned char i,j;
238 1 for(;k>0;k--)
239 1 for(i=0;i<110;i++)
240 1 for(j=0;j<110;j++);
241 1
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 5
242 1 }
243 uint8 checksum8(uint8 *chk8,uint8 num)
244 {
245 1 uint8 temp=0;
246 1 for( ;num>0;num--)
247 1 {
248 2 temp=temp+*chk8;
249 2 if(temp<*chk8)
250 2 temp++;
251 2 chk8++;
252 2 }
253 1 return(0xff-temp);
254 1 }
255 bit l_rce_data(void)
256 {
257 1 uint8 ii;
258 1 TH0=0;
259 1 TL0=0;//可以增加选项
260 1 TR0=1;
261 1 while(RI==0&&TF0==0);
262 1 TR0=0;
263 1 if(TF0==0)
264 1 {
265 2 RI=0;
266 2 l_rec_data[1]=SBUF;
267 2 for(ii=2;ii<=3;ii++)
268 2 {
269 3 TH0=0;
270 3 TR0=1;
271 3 while(RI==0&&TF0==0);
272 3 TR0=0;
273 3 if(TF0==0)
274 3 {
275 4 RI=0;
276 4 l_rec_data[ii]=SBUF;
277 4 }
278 3 else
279 3 {
280 4 TF0=0;
281 4 break;
282 4 }
283 3 }
284 2 if(l_rec_data[3]==checksum8(&l_rec_data[1],2))
285 2 {
286 3 l_rec_data[3]=0;//清除校验和
287 3 return 1;
288 3 }
289 2 l_rec_data[3]=0;//清除校验和
290 2 return 0;
291 2 }
292 1 else
293 1 {
294 2 TF0=0;
295 2 return(0);
296 2 }
297 1 }
298 void l_send_back(uint8 * data_ptr,uint8 num)
299 {
300 1 uint8 temp;
301 1 EX1=0;
302 1 SCON=0X40;
303 1 for(temp=0;temp<num;temp++)
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 6
304 1 {
305 2 SBUF=*data_ptr;
306 2 while(TI==0);
307 2 TI=0;
308 2 data_ptr++;
309 2 }
310 1 data_ptr=data_ptr-num;
311 1 SBUF=checksum8(data_ptr,num);
312 1 while(TI==0);
313 1 TI=0;
314 1 SCON=0X50;
315 1 IE1=0;
316 1 EX1=1;
317 1 }
318 void l_cmd_handle()
319 {
320 1 if(l_rec_data[1]==5)
321 1 {
322 2 l_rec_data[1]++;
323 2 l_send_back(&l_rec_data[1],2);
324 2 }
325 1 else
326 1 {
327 2 l_ledsta=l_rec_data[1];
328 2 l_ledsep=l_rec_data[2]&0x0f;
329 2 if(l_ledsep==0)
330 2 {
331 3 led_all_light=0;
332 3 P0=0;
333 3 }
334 2 else
335 2 led_all_light=1;
336 2 flash=0;
337 2 time=0;
338 2 }
339 1 //l_rec_data[0]=0;
340 1 }
341 void l_sta_handle()
342 {
343 1 l_rec_data[1]=l_ledsta;
344 1 l_rec_data[2]=l_ledsep;
345 1 l_send_back(&l_rec_data[1],2);
346 1 }
347 void l_rtc_init()
348 {
349 1
350 1 RTCH=0x3;
351 1 RTCL=0Xff;
352 1 RTCCON=0X63;//??
353 1 PWDRT=0;
354 1 //EWDRT=1;
355 1 }
356
357
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 777 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 2
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 7
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -