test1.lst
来自「校园打铃系统」· LST 代码 · 共 538 行 · 第 1/2 页
LST
538 行
252 2 minite_l=minite%10;
253 2 send(0x03,minite_h);//显示分钟
254 2 send(0x04,minite_l);
255 2 delay1(450);
256 2 send(0x01,0x0f);//显示小时灭
257 2 send(0x02,0x0f);
258 2 delay1(450);
259 2 if(s3==0)
260 2 {set_minite();
261 3 break;
262 3 }
263 2 else
264 2 if(s1==0)
265 2 {
266 3 hour=add_hour(hour);//时间加一
267 3 set_rtc_code[2]=hour; //
268 3 Set_RTC();
269 3 }
270 2 else
271 2 if(s2==0)
272 2 {
273 3 hour=minus_hour(hour);//时间减一
274 3 set_rtc_code[2]=hour;
275 3 Set_RTC();
276 3 }
277 2
278 2 }
279 1
280 1 }
281 uchar add_hour(uchar hour)
282 {hour++;
283 1 if(hour>23)
284 1 hour=0;
285 1 hour=time_data[hour];
286 1 return (hour);
287 1 }
288
289
290 uchar add_minite(uchar minite)
291 { minite++;
292 1 if(minite>59)
293 1 minite=0;
294 1 minite=time_data[minite];
295 1 return (minite);
296 1 }
297
298
299 uchar minus_hour(uchar hour)
300 {if(hour==0)
301 1 hour=23;
302 1 else
C51 COMPILER V7.06 TEST1 06/01/2007 16:49:13 PAGE 6
303 1 hour--;
304 1 hour=time_data[hour];
305 1 return(hour);
306 1 }
307
308
309 uchar minus_minite(uchar minite)
310 {
311 1 if(minite==0)
312 1 minite=59;
313 1 else
314 1 minite--;
315 1 minite=time_data[minite];
316 1 return(minite);
317 1 }
318
319 /**************************************************/
320 /********************************
321 //延时//
322 ********************************/
323 void delay1(uchar time)
324 {uchar i,j;
325 1 for(i=0;i<time; i++)
326 1 for(j=0;j<time;j++)
327 1 ;
328 1 }
329
330
331 void set_time()
332 {
333 1 bit a;
334 1 //DS1302_WP_ENABLE;
335 1 if(s3==0)
336 1 {P3=0x0ff;
337 2 // Set_RTC();
338 2 a=~a;
339 2 if(a==0)
340 2 set_hour();
341 2 else
342 2 set_minite();
343 2 }
344 1
345 1 }
346
347 /**************************************************/
348 /**************************************************/
349 /***************时间设置完*************************/
350
351
352
353
354
355
356
357 code long class[]={80000,//1
358 84500,
359 85500,//2
360 94000,
361 100000,//3
362 104500,
363 105500,//4
364 114000,
C51 COMPILER V7.06 TEST1 06/01/2007 16:49:13 PAGE 7
365 115000,//5
366 123500,
367 133000,//6
368 141500,
369 142500,//7
370 151000,
371 152000,//8
372 161500
373 };
374 sbit ds=P2^0;
375 /***************************ds18b20*************************/
376 /********************************
377 //延时//
378 ********************************/
379 void delay(uchar time)
380 /*{t=t/8;
381 {while(t)//一个while耗时8 us
382 {t--;}
383 }
384 }*/
385 {time=time-10;
386 1 time=time/6;
387 1 while(time!=0)time--;
388 1
389 1 }
390
391
392 /********************************
393 //复位//
394 ********************************/
395 void ds_reset(void)
396 {ds=0;
397 1 delay(520);//
398 1 ds=1;
399 1 delay(16);
400 1 while(ds);
401 1 delay(240);
402 1 ds=1;
403 1 }
404
405
406 /*********************************
407 //写一位
408 *********************************/
409 void ds_write_1(uchar b)
410 {_nop_();
411 1 _nop_();
412 1 _nop_();
413 1 ds=0;
414 1 _nop_();
415 1 _nop_();
416 1 _nop_();
417 1 _nop_();
418 1 ds=b;
419 1 delay(56);
420 1 ds=1;
421 1 _nop_();
422 1 _nop_();
423 1 }
424
425
426 /********************************
C51 COMPILER V7.06 TEST1 06/01/2007 16:49:13 PAGE 8
427 //读一位
428 ********************************/
429 bit ds_read_1(void)
430 {bit r;
431 1 ds=0;
432 1 _nop_();
433 1 _nop_();
434 1 _nop_();
435 1 _nop_();
436 1 ds=1;
437 1 _nop_();
438 1 _nop_();
439 1 r=ds;
440 1 delay(64);
441 1 ds=1;
442 1 return(r);
443 1 }
444
445
446
447
448 /**********************************
449 //写一字节
450 **********************************/
451 void ds_write_byte(uchar b)
452 { uchar i;
453 1 uchar temp;
454 1
455 1
456 1 for (i=0;i<8;i++)
457 1 {
458 2 temp=b>>i;
459 2 temp&=0x01;
460 2 ds_write_1(temp); //调写位函数
461 2
462 2 }
463 1
464 1 }
465
466
467
468 /*********************************
469 //读一字节
470 **********************************/
471 int ds_read_byte(void)
472 {
473 1 uchar i;
474 1 uchar j;
475 1 int value=0;
476 1
477 1
478 1 for (i=0;i<8;i++)
479 1 {
480 2 j=ds_read_1(); //调读位函数
481 2
482 2 if (j) //如果是 1 置1
483 2 {
484 3 value|=(0x0001<<i); //先读低位,再读高位
485 3 delay(8);
486 3 }
487 2 } //否则置 0
488 1 return(value);
C51 COMPILER V7.06 TEST1 06/01/2007 16:49:13 PAGE 9
489 1 }
490
491 /***************************************************************/
492 /*****************************************************************/
493 void scan_time(void);
494 void class_start(void);
495 void class_end(void);
496 void vs_time(void);
497 void v_temperature(void);
498
499
500 sbit fm=P2^2;
501 unsigned long time_change;
502 /******************************************************************/
503 /****************************判断是上课的时间还是下课的时间段*****/
504 /******************************************************************/
505 void scan_time()
506 {
507 1 Read_RTC();
508 1 time_change=10000.0*read_rtc_code[2]+100.0*read_rtc_code[1]+read_rtc_code[0];
509 1 if(class[0]<=time_change && time_change<class[1] || class[2]<=time_change && time_change<class[3] ||
510 1 class[4]<=time_change && time_change<class[5] || class[6]<=time_change && time_change<class[7] ||
511 1 class[8]<=time_change && time_change<class[9] || class[10]<=time_change&& time_change<class[11] ||
512 1 class[12]<=time_change&& time_change<class[13] || class[14]<=time_change&& time_change<class[15] )//上
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?