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 + -
显示快捷键?