⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mylib.lst

📁 红外抄表系统的源代码。利用非电信号传送控制信息和数据信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
 296          /* f_time is the trouble time to display          */
 297          /* hour and minute <=255(FFH)                     */
 298          /* designed by xl.zhang                           */
 299          /* Date 2007-3-28                                 */
 300          /**************************************************/
 301          void DispIC1(uchar Sx,struct fault_time f_time)  //
 302          {
 303   1          uchar B_D;
C51 COMPILER V6.00i MYLIB                                                                  08/21/2007 12:22:11 PAGE 6   

 304   1          int j;
 305   1          B_D = 0x0;
 306   1          j = f_time.hour / 1000;
 307   1          if(Sx == 0)     //trouble in S1
 308   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 309   1          else
 310   1              LCD_WD1(B_D,*(IC1_TB+j));
 311   1          B_D += 2;
 312   1          j = (f_time.hour  % 1000)/100;
 313   1          if(Sx == 1)      //trouble in S2
 314   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 315   1          else
 316   1              LCD_WD1(B_D,*(IC1_TB+j));
 317   1          B_D += 2;
 318   1          j = (f_time.hour  % 100)/10;
 319   1          if(Sx == 2)      //trouble in S3
 320   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 321   1          else
 322   1              LCD_WD1(B_D,*(IC1_TB+j));
 323   1          B_D += 2;
 324   1          j = f_time.hour  % 10;
 325   1          if(Sx == 3)      //trouble in S4
 326   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 327   1          else
 328   1              LCD_WD1(B_D,*(IC1_TB+j));
 329   1          B_D += 2;
 330   1          j = f_time.min / 10;
 331   1          if(Sx == 4)      //trouble in S5
 332   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 333   1          else
 334   1              LCD_WD1(B_D,*(IC1_TB+j));
 335   1          B_D += 2;
 336   1          j = f_time.min % 10;
 337   1          if(Sx == 5)      //trouble in S6
 338   1              LCD_WD1(B_D,*(IC1_TB+j)|0x10);
 339   1          else
 340   1              LCD_WD1(B_D,*(IC1_TB+j));
 341   1          KickDog();
 342   1      }
 343          /*************************************************/
 344          /*                                               */
 345          /* The function select the phrase A,B,C for the  */
 346          /* system,where Sx is the phrase to select       */
 347          /* Designed by xr.li                             */
 348          /* Date 2007-3-22                                */
 349          /*************************************************/
 350          void Phase_select(uchar Phase)
 351          {
 352   1      	switch(Phase)
 353   1      	{
 354   2      		case Phase_A:
 355   2      			LCD_WD2(26,0x09);
 356   2      			break;
 357   2      		case Phase_B:
 358   2      			LCD_WD2(26,0x0A);
 359   2      			break;
 360   2      		case Phase_C:
 361   2      			LCD_WD2(26,0x0C);
 362   2      			break;
 363   2      		default:
 364   2      			break;
 365   2      	}
C51 COMPILER V6.00i MYLIB                                                                  08/21/2007 12:22:11 PAGE 7   

 366   1      }
 367          /*************************************************/
 368          /*                                               */
 369          /* The function initial the unchangable item in  */
 370          /* IC2 region                                    */
 371          /* Designed by xr.li ,modified by xl.zhang       */
 372          /* Date 2007-3-22                                */
 373          /*************************************************/
 374          void Init_IC2(void)
 375          {
 376   1      	LCD_WD2(0,0xFD);       //display s15 and d8 = 0
 377   1      	LCD_WD2(2,0x80);       //display s14
 378   1      	LCD_WD2(4,0x80);       //display s13
 379   1      	LCD_WD2(6,0x80);       //display s12
 380   1      	LCD_WD2(22,0x80);      //display s17
 381   1      	LCD_WD2(24,0x80);      //display s16
 382   1              LCD_WD2(26,0x0F);      //display s8,s9,s10 and s11
 383   1      }
 384          /*************************************************/
 385          /*                                               */
 386          /* The function initial the unchangable item in  */
 387          /* IC1 region                                    */
 388          /* Designed by xl.zhang                          */
 389          /* Date 2007-3-28                                */
 390          /*************************************************/
 391          void Init_IC1(void)
 392          {
 393   1      	LCD_WD1(0,0xEB);       //display d1 = 0
 394   1      	LCD_WD1(2,0xEB);       //display d2 = 0
 395   1      	LCD_WD1(4,0xEB);       //display d3 = 0
 396   1      	LCD_WD1(6,0xEB);       //display d4 = 0
 397   1      	LCD_WD1(8,0xEB);       //display d5 = 0
 398   1      	LCD_WD1(10,0xEB);      //display d6 = 0
 399   1              LCD_WD1(12,0x01);      //display s7
 400   1      }
 401          
 402          /*************************************************/
 403          /*                                               */
 404          /* The function display the total number of      */
 405          /* trouble in D8                                 */
 406          /* Designed by xl.zhang                          */
 407          /* Date 2007-3-26                                */
 408          /*************************************************/
 409          void TotalNumOfTrb(uchar Total_Num)
 410          {
 411   1          LCD_WD2(0,*(IC2_TB+Total_Num)|0x80); //同时显示S15
 412   1      }
 413          /*************************************************/
 414          /*                                               */
 415          /* The function lighting the different bits      */
 416          /* in D8                                         */
 417          /* Designed by Dr. Kat                           */
 418          /* Date 2007-4-15                                */
 419          /*                                               */
 420          /*************************************************/
 421          void LightingBits(uchar *time, uchar mask)
 422          {
 423   1          uchar i, j, val, k=2, msk;
 424   1          msk = 0x40;
 425   1          i = 20;
 426   1          while(i>6)
 427   1          {
C51 COMPILER V6.00i MYLIB                                                                  08/21/2007 12:22:11 PAGE 8   

 428   2              j = *(time+k)/10;
 429   2              if(mask&msk) val = *(IC2_TB+j)|0x80;
 430   2              else         val = *(IC2_TB+j);
 431   2              LCD_WD2(i, val);
 432   2              j = *(time+k)%10;
 433   2              msk>>=1;
 434   2              i -= 2;
 435   2              if(mask&msk) val = *(IC2_TB+j)|0x80;
 436   2              else         val = *(IC2_TB+j);
 437   2              LCD_WD2(i, val);
 438   2              k++;
 439   2              i -= 2;
 440   2              msk>>=1;
 441   2          }
 442   1          KickDog();
 443   1      }
 444          /*************************************************/
 445          /*                                               */
 446          /* The function display each fault number        */
 447          /* in D8                                         */
 448          /* Designed by xl.zhang                          */
 449          /* Date 2007-4-12                                */
 450          /*                                               */
 451          /*************************************************/
 452          /*void Disp_fault_num(uchar num,uchar *time)
 453          {
 454          //         uint j;
 455                   switch(num)
 456              	 {
 457                          case 0:
 458                               LightingBits(time, 0x7B); //0111 1011
 459                               break;
 460                          case 1:
 461                               LightingBits(time, 0x0A); //0000 1010
 462                               break;
 463                          case 2:
 464                               LightingBits(time, 0x37); //0011 0111
 465                               break;
 466                          case 3:
 467                               LightingBits(time, 0x1F); //0001 1111
 468                               break;
 469                          case 4:
 470                               LightingBits(time, 0x4E); //0100 1110
 471                               break;
 472                          case 5:
 473                               LightingBits(time, 0x5D); //0101 1101
 474                          break;
 475                          case 6:
 476                               LightingBits(time, 0x7D); //0111 1101
 477                               break;
 478                          case 7:
 479                               LightingBits(time, 0x0F); //0000 1111
 480                               break;
 481                          case 8:
 482                               LightingBits(time, 0x7F); //0111 1111
 483                               break;
 484                          case 9:
 485                               LightingBits(time, 0x5F); //0101 1111
 486                               break;
 487                          default:
 488                          break;
 489              	 }
C51 COMPILER V6.00i MYLIB                                                                  08/21/2007 12:22:11 PAGE 9   

 490          }*/
 491          /************************************************/
 492          /* The function display year ,month ,date ,hour,*/
 493          /* minute,second ,Sx represents start(S12)      */
 494          /* current(S13) ,stop(S14)                      */
 495          /* Designed by xl.zhang                         */
 496          /* Date 2007-3-28                               */
 497          /************************************************/
 498          void DispIC2_time(uchar Sx,uchar *time)
 499          {
 500   1          uint j;
 501   1          //display year
 502   1          j = *time/10;
 503   1          LCD_WD2(24,*(IC2_TB+j)|0x80);     //display S16
 504   1          j = *time%10;
 505   1          LCD_WD2(22,*(IC2_TB+j)|0x80);     //display S17
 506   1      
 507   1      if(!ResetNum)
 508   1      {
 509   2          switch(IdNum)
 510   2          {
 511   3               case 0:
 512   3                    LightingBits(time, 0x7B); //0111 1011
 513   3               break;
 514   3               case 1:
 515   3                    LightingBits(time, 0x0A); //0000 1010
 516   3               break;
 517   3               case 2:
 518   3                    LightingBits(time, 0x37); //0011 0111
 519   3               break;
 520   3               case 3:
 521   3                    LightingBits(time, 0x1F); //0001 1111
 522   3               break;
 523   3               case 4:
 524   3                    LightingBits(time, 0x4E); //0100 1110
 525   3               break;
 526   3               case 5:
 527   3                    LightingBits(time, 0x5D); //0101 1101
 528   3               break;
 529   3               case 6:
 530   3                    LightingBits(time, 0x7D); //0111 1101
 531   3               break;
 532   3               case 7:
 533   3                    LightingBits(time, 0x0B); //0000 1011
 534   3               break;
 535   3               case 8:
 536   3                    LightingBits(time, 0x7F); //0111 1111
 537   3               break;
 538   3               case 9:
 539   3                    LightingBits(time, 0x5F); //0101 1111
 540   3               break;
 541   3               default:
 542   3               break;
 543   3          }
 544   2      }
 545   1      else
 546   1      	{
 547   2      		 LightingBits(time, 0x7B); //0111 1011
 548   2      	}
 549   1      
 550   1      /*    if(DisUaNumFlag)
 551   1          {
C51 COMPILER V6.00i MYLIB                                                                  08/21/2007 12:22:11 PAGE 10  

 552   1               Disp_fault_num(disnum[1],time);
 553   1          }
 554   1          else if(DisUbNumFlag)
 555   1          {
 556   1               Disp_fault_num(disnum[2],time);
 557   1          }
 558   1          else if(DisUcNumFlag)
 559   1          {
 560   1               Disp_fault_num(disnum[3],time);
 561   1          }
 562   1          else if(DisIaNumFlag)
 563   1          {
 564   1               Disp_fault_num(disnum[4],time);
 565   1          }
 566   1          else if(DisIcNumFlag)
 567   1          {
 568   1               Disp_fault_num(disnum[6],time);
 569   1          }
 570   1          else if(DisIpNumFlag)
 571   1          {
 572   1               Disp_fault_num(disnum[7],time);
 573   1          }
 574   1      
 575   1          else
 576   1          {
 577   1               //display month
 578   1               LightingBits(time, 0x7B); //0111 1011
 579   1          }*/
 580   1      
 581   1      
 582   1          j = *(time+5)%10;
 583   1          if(Sx == S12)
 584   1              LCD_WD2(6,*(IC2_TB+j)|0x80);     //display S12
 585   1          else
 586   1              LCD_WD2(6,*(IC2_TB+j));          //not display S12
 587   1      
 588   1          //display second
 589   1          j = *(time+6)/10;
 590   1          if(Sx == S13)
 591   1              LCD_WD2(4,*(IC2_TB+j)|0x80);     //display S13
 592   1          else
 593   1              LCD_WD2(4,*(IC2_TB+j));          //not display S13
 594   1          j = *(time+6)%10;
 595   1          if(Sx == S14)
 596   1              LCD_WD2(2,*(IC2_TB+j)|0x80);     //display S14
 597   1          else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -