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

📄 lcddriver.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
📖 第 1 页 / 共 4 页
字号:
 556   1        LCD_WByte(i,15,0xc0);
 557   1      
 558   1        for(j=2;j<16;j++)
 559   1        {
 560   2        LCD_WByte(30,j,0xff);
 561   2        LCD_WByte(31,j,0xff);
 562   2        }
 563   1        for(j=2;j<16;j++)
 564   1        {
 565   2        LCD_WByte(232,j,0xff);
 566   2        LCD_WByte(233,j,0xff);
 567   2        }
 568   1      
 569   1              if(EN_ch1<=4&&EN_ch2<=4)
 570   1              {
 571   2                      temp=1;
 572   2                      LCD_CAstr(4,5,"CH1",0,0);
 573   2                      LCD_CAstr(4,11,"CH2",0,0);
 574   2              }
 575   1              else if(EN_ch1<=4&&EN_ch2>4)
 576   1              {
 577   2                      temp=1;
 578   2                      LCD_CAstr(4,8,"CH1",0,0);
 579   2              }
 580   1              else if(EN_ch1>4&&EN_ch2<=4)
 581   1              {
 582   2                      temp=2;
 583   2                      LCD_CAstr(4,8,"CH2",0,0);
 584   2              }
 585   1              else if(EN_ch1>4&&EN_ch2>4)
 586   1              {
 587   2                      temp=5;
 588   2                      LCD_CAstr(4,8,"N",0,0);
 589   2              }
 590   1         LCD_WaveData(temp,1);
 591   1         LCD_CAstr(178,0,"暂停 X0",0,0);
 592   1      
 593   1              EM_k1=1;
 594   1              EM_k2=1;
 595   1              EM_b1=70;
 596   1              EM_b2=110;
 597   1              EM_speed=4;
 598   1      
 599   1              Em_PtData=0;
 600   1              ExSramWrRdAdr=0;
 601   1              ExSramTempAdr=0;
 602   1      }
 603          void LCD_Draw(uint8 i,uint8 y)
 604          {
 605   1              uint8 t;
 606   1              if(y<24&&y>17)
 607   1              {
 608   2                 switch(y)
 609   2                         {
 610   3                         case 18:t=7;break;
 611   3                 case 19:t=11;break;
 612   3                         case 20:t=19;break;
 613   3                         case 21:t=35;break;
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 11  

 614   3                         case 22:t=67;break;
 615   3                         case 23:t=131;break;
 616   3                         default:break;
 617   3                         }
 618   2                         LCD_WByte(i+32,2,t);
 619   2                      }
 620   1                      else if(y<18)
 621   1                         LCD_WByte(i+32,2,0x07);
 622   1                      else if(y>119&&y<126)
 623   1                      {
 624   2                         switch(y)
 625   2                         {
 626   3                         case 120:t=0xc1;break;
 627   3                         case 121:t=0xc2;break;
 628   3                         case 122:t=0xc4;break;
 629   3                         case 123:t=0xc8;break;
 630   3                         case 124:t=0xd0;break;
 631   3                         case 125:t=0xe0;break;
 632   3                         default:break;
 633   3                         }
 634   2                         LCD_WByte(i+32,15,t);
 635   2                      }
 636   1                      else if(y>125)
 637   1                         LCD_WByte(i+32,15,0xe0);
 638   1                      else
 639   1                         LCD_WPoint(i+32,y,1);
 640   1      }
 641          void LCD_ShowWave(void)
 642          {
 643   1        uint8 i,j,y;
 644   1      
 645   1        for(j=3;j<15;j++)
 646   1        for(i=32;i<232;i++)LCD_WByte(i,j,0x00);
 647   1        for(i=32;i<232;i++)LCD_WByte(i,2,0x03);
 648   1        for(i=32;i<232;i++)LCD_WByte(i,15,0xc0);
 649   1      
 650   1              for(i=0;i<200;i++)
 651   1              {
 652   2                      if(EN_ch1<5)
 653   2                      {
 654   3                              y=EM_b1-(unsigned char)(EM_k1*CH1[199-i]);
 655   3                              LCD_Draw(i,y);
 656   3            }
 657   2            if(EN_ch2<5)
 658   2                      {
 659   3                              y=EM_b2-(unsigned char)(EM_k2*CH2[199-i]);
 660   3                              LCD_Draw(i,y);
 661   3            }
 662   2         }
 663   1      }
 664          void LCD_Wave(void)
 665          {  
 666   1                      switch(EN_ch1)
 667   1                      {
 668   2                      case 1:CH1[Em_PtData]=AD_DataBuff[2];
 669   2                            break;
 670   2                      case 2:CH1[Em_PtData]=AD_DataBuff[3];
 671   2                            break;
 672   2                      case 3:CH1[Em_PtData]=AD_DataBuff[0];
 673   2                            break;
 674   2                      case 4:CH1[Em_PtData]=AD_DataBuff[1];
 675   2                            break;
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 12  

 676   2                      case 5:break;
 677   2                      default:break;
 678   2                      }
 679   1                      switch(EN_ch2)
 680   1                      {
 681   2                      case 1:CH2[Em_PtData]=AD_DataBuff[2];
 682   2                            break;
 683   2                      case 2:CH2[Em_PtData]=AD_DataBuff[3];
 684   2                            break;
 685   2                      case 3:CH2[Em_PtData]=AD_DataBuff[0];
 686   2                            break;
 687   2                      case 4:CH2[Em_PtData]=AD_DataBuff[1];
 688   2                            break;
 689   2                      case 5:break;
 690   2                      default:break;
 691   2                      }
 692   1      
 693   1              Em_PtData++;
 694   1                      if(Em_PtData>199)
 695   1                      {
 696   2                                      Em_PtData=0;
 697   2                                      LCD_ShowWave();
 698   2                                      
 699   2                                      if(EM_speed<4)
 700   2                                      {
 701   3                                          if(ExSramTempAdr > 199)
 702   3                                          {
 703   4                                                  ExSramTempAdr -= 200;
 704   4                          }
 705   3                                              else
 706   3                                              {
 707   4                                                      ExSramTempAdr=65531;
 708   4                                                      ExSramWrRdPag--;
 709   4                                              }
 710   3                      }
 711   2                                      else if(EM_speed>3)
 712   2                                      {
 713   3                                          if(ExSramTempAdr < 65332)
 714   3                                              {
 715   4                                              ExSramTempAdr += 200;
 716   4                          }
 717   3                                              else
 718   3                                              {
 719   4                                                      ExSramTempAdr=0;
 720   4                                                      ExSramWrRdPag++;
 721   4                                              }
 722   3                      }
 723   2                      
 724   2      
 725   2                                      ExSramWrRdAdr = ExSramTempAdr;
 726   2                                      if(ExSramWrRdPag>ExSramEndPag||ExSramWrRdPag<ExSramStarPag)
 727   2                                      {
 728   3                                              ExSramWrRdPag=ExSramStarPag;
 729   3                                              ExSramWrRdAdr=0;
 730   3                                              LCD_ClearAll();
 731   3                                              LCD_Coordinate();
 732   3                                              hunt=72;
 733   3                                      }  
 734   2            }
 735   1            DisWave_En=1;
 736   1      
 737   1      }
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 13  

 738          /******************************************************************************************/
 739          
 740          void LCD_RunError(void)
 741          {
 742   1         uint8 i=4;
 743   1      
 744   1         
 745   1         if(ErrorRege&0x0001)
 746   1         {
 747   2            LCD_CAstr(16,i,"缺相A",0,0);
 748   2                 i=i+2;
 749   2                 HisFlash(1);
 750   2                 if(EN_ErrorRec == 1 && Star_EN == 1)
 751   2                 RecType=3;
 752   2         }
 753   1         if(ErrorRege&0x0002)
 754   1         {
 755   2            LCD_CAstr(16,i,"缺相B",0,0);
 756   2                i=i+2;
 757   2                HisFlash(2);
 758   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 759   2                RecType=3;
 760   2         }
 761   1         if(ErrorRege&0x0004)
 762   1         {
 763   2            LCD_CAstr(16,i,"缺相C",0,0);
 764   2                i=i+2;
 765   2                HisFlash(3);
 766   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 767   2                RecType=3;
 768   2         }
 769   1         if(ErrorRege&0x0008)
 770   1         {
 771   2            LCD_CAstr(16,i,"投励失败",0,0);
 772   2                i=i+2;
 773   2                HisFlash(4);
 774   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 775   2                RecType=4;
 776   2         }
 777   1         if(ErrorRege&0x0010)
 778   1         {
 779   2            LCD_CAstr(16,i,"失控",0,0);
 780   2                i=i+2;
 781   2                HisFlash(5);
 782   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 783   2                RecType=5;
 784   2         }
 785   1         if(ErrorRege&0x0020)
 786   1         {
 787   2            LCD_CAstr(16,i,"失步",0,0);
 788   2                i=i+2;
 789   2                HisFlash(6);
 790   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 791   2                RecType=6;
 792   2         }
 793   1         if(ErrorRege&0x0040)
 794   1         {
 795   2            LCD_CAstr(16,i,"失步再整步",0,0);
 796   2                i=i+2;
 797   2                HisFlash(7);
 798   2         }
 799   1         if(ErrorRege&0x0080)
C51 COMPILER V7.20   LCDDRIVER                                                             01/31/2007 10:20:44 PAGE 14  

 800   1         {
 801   2            LCD_CAstr(16,i,"再整步失败",0,0);
 802   2                i=i+2;
 803   2                HisFlash(8);
 804   2         }
 805   1         if(ErrorRege&0x0100)
 806   1         {
 807   2            LCD_CAstr(16,i,"遥调失败",0,0);
 808   2                i=i+2;
 809   2                HisFlash(9);
 810   2         }
 811   1         if(ErrorRege&0x0200)
 812   1         {
 813   2            LCD_CAstr(16,i,"通信失败",0,0);
 814   2                i=i+2;
 815   2                HisFlash(10);
 816   2         }
 817   1         if(ErrorRege&0x0400)
 818   1         {
 819   2            LCD_CAstr(16,i,"PT断线",0,0);
 820   2                i=i+2;
 821   2                HisFlash(11);
 822   2                if(EN_ErrorRec == 1 && Star_EN == 1)
 823   2                RecType=7;
 824   2         }
 825   1         if(ErrorRege&0x0800)
 826   1         {
 827   2            LCD_CAstr(16,i,"CT断线",0,0);
 828   2                i=i+2;
 829   2                HisFlash(12);
 830   2         }
 831   1         if(ErrorRege&0x1000)
 832   1         {
 833   2            LCD_CAstr(16,i,"切换失败",0,0);
 834   2                      i=i+2;
 835   2                HisFlash(13);
 836   2         }
 837   1              if(ErrorRege&0x2000)
 838   1         {

⌨️ 快捷键说明

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