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

📄 lcddriver.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
📖 第 1 页 / 共 4 页
字号:
 275   2         LCD_math(x,y,a,k);
 276   2         LCD_math(x+8,y,b,k);
 277   2         LCD_CAstr(x+16,y,".",k,0);
 278   2         LCD_math(x+24,y,c,k);
 279   2         LCD_CAstr(x+32,y,str,0,0);
 280   2         }
 281   1      }
 282          
 283          /****************************************************************************************/
 284          void LCD_ErrorItem(uint8 x,uint8 y,uint8 *error)
 285          {
 286   1         char a,b;
 287   1         
 288   1         a=error[0]/10;
 289   1         b=error[0]%10;
 290   1         LCD_math(x,y,a,0);
 291   1         LCD_math(x+8,y,b,0);
 292   1         LCD_Ascii(x+16,y,"/",0);
 293   1      
 294   1         a=error[1]/10;
 295   1         b=error[1]%10;
 296   1         LCD_math(x+24,y,a,0);
 297   1         LCD_math(x+32,y,b,0);
 298   1         LCD_Ascii(x+40,y,"/",0);
 299   1      
 300   1         a=error[2]/10;
 301   1         b=error[2]%10;
 302   1         LCD_math(x+48,y,a,0);
 303   1         LCD_math(x+56,y,b,0);
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 6   

 304   1      
 305   1         a=error[3]/10;
 306   1         b=error[3]%10;
 307   1         LCD_math(x+96,y,a,0);
 308   1         LCD_math(x+104,y,b,0);
 309   1         LCD_Ascii(x+112,y,":",0);
 310   1      
 311   1         a=error[4]/10;
 312   1         b=error[4]%10;
 313   1         LCD_math(x+120,y,a,0);
 314   1         LCD_math(x+128,y,b,0);
 315   1         LCD_Ascii(x+136,y,":",0);
 316   1      
 317   1         a=error[5]/10;
 318   1         b=error[5]%10;
 319   1         LCD_math(x+144,y,a,0);
 320   1         LCD_math(x+152,y,b,0);
 321   1      
 322   1         switch(error[6])
 323   1         {
 324   2         case 0:LCD_CAstr(128,y+2,"无        ",0,0);
 325   2                break;
 326   2         case 1:LCD_CAstr(128,y+2,"缺相A     ",0,0);
 327   2                break;
 328   2         case 2:LCD_CAstr(128,y+2,"缺相B     ",0,0);
 329   2                break;
 330   2         case 3:LCD_CAstr(128,y+2,"缺相C     ",0,0);
 331   2                break;
 332   2         case 4:LCD_CAstr(128,y+2,"投励失败  ",0,0);
 333   2                break;
 334   2         case 5:LCD_CAstr(128,y+2,"失控      ",0,0);
 335   2                break;
 336   2         case 6:LCD_CAstr(128,y+2,"失步      ",0,0);
 337   2                break;
 338   2         case 7:LCD_CAstr(128,y+2,"失步再整步",0,0);
 339   2                break;
 340   2         case 8:LCD_CAstr(128,y+2,"再整步失败",0,0);
 341   2                break;
 342   2         case 9:LCD_CAstr(128,y+2,"遥调失败  ",0,0);
 343   2                break;
 344   2         case 10:LCD_CAstr(128,y+2,"通信失败  ",0,0);
 345   2                break;
 346   2         case 11:LCD_CAstr(128,y+2,"PT断线    ",0,0);
 347   2                break;
 348   2         case 12:LCD_CAstr(128,y+2,"CT断线    ",0,0);
 349   2                break;
 350   2         case 13:LCD_CAstr(128,y+2,"切换失败  ",0,0);
 351   2                break;
 352   2         case 14:LCD_CAstr(128,y+2,"机柜很热  ",0,0);
 353   2                break;
 354   2         case 15:LCD_CAstr(128,y+2,"快熔熔断  ",0,0);
 355   2                break;
 356   2         case 16:LCD_CAstr(128,y+2,"KQ误开通  ",0,0);
 357   2                break;
 358   2         default:break;
 359   2         }
 360   1      }
 361          
 362          void LCD_Day(uint8 x,uint8 y,uint8 z,uint8 i,uint8 j,uint8 k,uint8 m)
 363          {
 364   1         uint8 a,b;
 365   1         bit sk;
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 7   

 366   1         a=x/10;
 367   1         b=x%10;
 368   1         if(m==1)sk=1;
 369   1         else sk=0;
 370   1         LCD_math(88,4,a,sk);
 371   1         LCD_math(96,4,b,sk);
 372   1      
 373   1         a=y/10;
 374   1         b=y%10;
 375   1         if(m==2)sk=1;
 376   1         else sk=0;
 377   1         LCD_math(112,4,a,sk);
 378   1         LCD_math(120,4,b,sk);
 379   1      
 380   1         a=z/10;
 381   1         b=z%10;
 382   1         if(m==3)sk=1;
 383   1         else sk=0;
 384   1         LCD_math(136,4,a,sk);
 385   1         LCD_math(144,4,b,sk);
 386   1      
 387   1         a=i/10;
 388   1         b=i%10;
 389   1         if(m==4)sk=1;
 390   1         else sk=0;
 391   1         LCD_math(168,4,a,sk);
 392   1         LCD_math(176,4,b,sk);
 393   1      
 394   1         a=j/10;
 395   1         b=j%10;
 396   1         if(m==5)sk=1;
 397   1         else sk=0;
 398   1         LCD_math(192,4,a,sk);
 399   1         LCD_math(200,4,b,sk);
 400   1      
 401   1         a=k/10;
 402   1         b=k%10;
 403   1         if(m==6)sk=1;
 404   1         else sk=0;
 405   1         LCD_math(216,4,a,sk);
 406   1         LCD_math(224,4,b,sk);
 407   1      } 
 408          
 409          
 410          void LCD_Clock(void)
 411          {
 412   1         uint8 a,b;
 413   1      
 414   1              RTC8563_Read();
 415   1         
 416   1         a=RTCData[2]/10;
 417   1         b=RTCData[2]%10;
 418   1              LCD_math(192,13,a,0);
 419   1         LCD_math(200,13,b,0);
 420   1      
 421   1         a=RTCData[1]/10;
 422   1         b=RTCData[1]%10;
 423   1         LCD_math(216,13,a,0);
 424   1         LCD_math(224,13,b,0);
 425   1      
 426   1                              if(AcctimeTemp != RTCData[2])
 427   1                              {
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 8   

 428   2                                              AcctimeTemp = RTCData[2];
 429   2                                              AccHour++;
 430   2                                              if(AccHour>23)
 431   2                                              {
 432   3                                                      AccDay++;
 433   3                                                      AccHour = 0;
 434   3                                              }
 435   2                                              Dyn_to_Flash();
 436   2                                              Flash_128_Write(0,Flash,128,0);
 437   2                              }
 438   1         
 439   1      }
 440          
 441          void LCD_Key(uint8 HK0,uint8 HK1,uint8 HK2,uint8 HK3,uint8 HK4,uint8 HK5)
 442          {
 443   1         LCD_math(176,12,HK0,0);
 444   1         LCD_math(184,12,HK1,0);
 445   1         LCD_math(192,12,HK2,0);
 446   1         LCD_math(200,12,HK3,0);
 447   1         LCD_math(208,12,HK4,0);
 448   1         LCD_math(216,12,HK5,0);   
 449   1         switch(hunt)
 450   1         {
 451   2         case 60:break;
 452   2         case 61:LCD_math(176,12,HK0,1);
 453   2                 break;
 454   2         case 62:LCD_math(184,12,HK1,1);
 455   2                 break;
 456   2         case 63:LCD_math(192,12,HK2,1);
 457   2                 break;
 458   2         case 64:LCD_math(200,12,HK3,1);
 459   2                 break;
 460   2         case 65:LCD_math(208,12,HK4,1);
 461   2                 break;
 462   2         case 66:LCD_math(216,12,HK5,1);
 463   2                 break;
 464   2         default:break;
 465   2         }
 466   1      }
 467          void LCD_PassWord(uint8 key)
 468          {
 469   1         switch(key)
 470   1         {
 471   2         case 1:if(hunt==60)
 472   2                {
 473   3                   if(seek==11)
 474   3                           {
 475   4                   CH2[0]=S1_Key1;
 476   4                           CH2[1]=S1_Key2;
 477   4                           CH2[2]=S1_Key3;
 478   4                           CH2[3]=S1_Key4;
 479   4                           CH2[4]=S1_Key5;
 480   4                           CH2[5]=S1_Key6;
 481   4                   }
 482   3                   else if(seek==12)
 483   3                   {
 484   4                   CH2[0]=S2_Key1;
 485   4                           CH2[1]=S2_Key2;
 486   4                           CH2[2]=S2_Key3;
 487   4                           CH2[3]=S2_Key4;
 488   4                           CH2[4]=S2_Key5;
 489   4                           CH2[5]=S2_Key6;
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 9   

 490   4                   }
 491   3                           hunt=61;
 492   3                           LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
 493   3                        }
 494   2                        else
 495   2                        {
 496   3                           hunt=60;
 497   3                   if(seek==11)
 498   3                   {
 499   4                   S1_Key1=CH2[0];
 500   4                           S1_Key2=CH2[1];
 501   4                           S1_Key3=CH2[2];
 502   4                           S1_Key4=CH2[3];
 503   4                           S1_Key5=CH2[4];
 504   4                           S1_Key6=CH2[5];
 505   4                           LCD_Key(S1_Key1,S1_Key2,S1_Key3,S1_Key4,S1_Key5,S1_Key6);
 506   4                   }
 507   3                   if(seek==12)
 508   3                   {
 509   4                   S2_Key1=CH2[0];
 510   4                           S2_Key2=CH2[1];
 511   4                           S2_Key3=CH2[2];
 512   4                           S2_Key4=CH2[3];
 513   4                           S2_Key5=CH2[4];
 514   4                           S2_Key6=CH2[5];
 515   4                           LCD_Key(S2_Key1,S2_Key2,S2_Key3,S2_Key4,S2_Key5,S2_Key6);
 516   4                   }
 517   3                }
 518   2                        break;
 519   2         case 2:hunt=60;
 520   2                if(seek==11)
 521   2                LCD_Key(S1_Key1,S1_Key2,S1_Key3,S1_Key4,S1_Key5,S1_Key6);
 522   2                else if(seek==12)
 523   2                LCD_Key(S2_Key1,S2_Key2,S2_Key3,S2_Key4,S2_Key5,S2_Key6);
 524   2                        break;
 525   2         case 3:CH2[hunt-61]=CH2[hunt-61]+1;
 526   2                        if(CH2[hunt-61]>9)
 527   2                        CH2[hunt-61]=0;
 528   2                        LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
 529   2                        break;
 530   2         case 4:CH2[hunt-61]=CH2[hunt-61]-1;
 531   2                        if(CH2[hunt-61]>9)
 532   2                        CH2[hunt-61]=9;
 533   2                        LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
 534   2                        break;
 535   2         case 5:hunt=hunt-1;
 536   2                if(hunt<61)
 537   2                        hunt=66;
 538   2                LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
 539   2                        break;
 540   2         case 6:hunt=hunt+1;
 541   2                if(hunt>66)
 542   2                        hunt=61;
 543   2                LCD_Key(CH2[0],CH2[1],CH2[2],CH2[3],CH2[4],CH2[5]);
 544   2                break;
 545   2         default:break;
 546   2         }
 547   1      }
 548          /********************************************************************************/
 549          void LCD_Coordinate(void)
 550          {
 551   1        uint8 i,j;
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 10  

 552   1        
 553   1        for(i=30;i<234;i++)
 554   1        LCD_WByte(i,2,0x03);
 555   1        for(i=30;i<234;i++)

⌨️ 快捷键说明

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