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

📄 disp.lst

📁 用于测试步进电机
💻 LST
📖 第 1 页 / 共 5 页
字号:
 474   1              for(i=9;i>0;i--)
 475   1              {  if(i==dotdata) break;
 476   2                      if(tt[i]==0) tt[i]=0x0f;   //去前导零
 477   2                      else break;
 478   2      
 479   2              }
 480   1              if(dotdata!=1)
 481   1              {
 482   2                      for(i=0;i<4;i++)
 483   2                      {
 484   3                              dispmem[i]=tt[i];
 485   3                      }
 486   2                      for(i=4;i<10;i++)
 487   2                      {
 488   3                              dispmem[i+6]=tt[i];
 489   3                      }
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 9   

 490   2              }
 491   1              else  //因不能显示1位小数点,全左移1位,最后一位的位置空
 492   1              {
 493   2                      for(i=0;i<3;i++)
 494   2                      {
 495   3                              dispmem[i+1]=tt[i];
 496   3                      }
 497   2                      for(i=3;i<9;i++)
 498   2                      {
 499   3                              dispmem[i+7]=tt[i];
 500   3                      }
 501   2                      dispmem[4]=tt[9];
 502   2                      dispmem[0]=0x0f;  //最后一位的位置空
 503   2              }
 504   1              ptr=&dispmem;
 505   1              disp_updata_lcd(LCDBADD,ptr);
 506   1              
 507   1              
 508   1      }
 509          /**********************************************************
 510          *  功能:查询及菜单返回的显示界面a
 511          **********************************************************/
 512          void  disp_return_a(void)
 513          {  
 514   1              disp_key_clear_a();
 515   1              //disp_lcd1(0,0x04);    
 516   1              //disp_lcd1(0,0x0a);  //公升
 517   1              //disp_lcd1(price_a,0x0);
 518   1              //disp_dot1(decimal_a);   //LCD1小数点
 519   1              //if(!cease_power)disp_lcd1(price_a,0x0);
 520   1              state1=0;
 521   1              updatea=1;
 522   1      }
 523          /**********************************************************
 524          *  功能:查询及菜单返回的显示界面b
 525          **********************************************************/
 526          void  disp_return_b(void)
 527          {  
 528   1              disp_key_clear_b();
 529   1              //disp_lcd2(0,0x04);    
 530   1              //disp_lcd2(0,0x0a);  //公升
 531   1              //disp_lcd2(price_b,0x0);
 532   1              //disp_dot2(decimal_b);   //LCD2小数点
 533   1              if(!cease_power)disp_lcd2(price_b,0x0);
 534   1              state2=0;
 535   1              updateb=1;
 536   1      }
 537          /***********************************************************************
 538          *  功能:显示更新显示数据LCD1/LCD2
 539          ************************************************************************/
 540          void  disp_updata_lcd(uint addab,uchar *ptr)
 541          {       uchar  i,j,temp;        
 542   1              bit   bymem;
 543   1              AUXR |=0x02;
 544   1              for(i=0;i<16;i++)
 545   1              {   ACC=0x38;
 546   2                      XBYTE[addab]=ACC;   //ST
 547   2                      bbyte=*(ptr+i); 
 548   2                      temp=bbyte*16+i;   //+lcdadd-1;
 549   2                      for(j=8;j>0;j--)
 550   2                      {  bbyte=temp;
 551   3                         bymem=(bit)(bbyte&0x80);
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 10  

 552   3                              temp<<=1;
 553   3                              bbyte=0x38;
 554   3                              a1= bymem;   //DS-->DATA
 555   3                              XBYTE[addab]=bbyte; 
 556   3                              ACC|=0x01;  
 557   3                              XBYTE[addab]=ACC;   //CP-->CLK ↑
 558   3                              ACC&=0xfe;
 559   3                              XBYTE[addab]=ACC;   //CP-->CLK ↓ 
 560   3                      } 
 561   2                      ACC=0x3c;
 562   2                      XBYTE[addab]=ACC;   //ST-->INH
 563   2                 
 564   2              }
 565   1              
 566   1         AUXR &=0xfd;
 567   1      }
 568          /************************************************************
 569          *  功能:显示枪1/2历史加油记录
 570          *************************************************************/
 571          void disp_eeprom_history(uchar gunid,uchar sequence)
 572          {       void  *pt;
 573   1              union{
 574   1                      uchar c[4];
 575   1                      ulong x;
 576   1                      uint  y;
 577   1         }temp;
 578   1              uint add;
 579   1              char dypass;
 580   1         pt=&temp.c[0];
 581   1         if(gunid==0)
 582   1              {
 583   2                      keya_num[0]=keynumdata[sequence];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[0];keya_num[3]=keynum
             -data[1];
 584   2                      keya_num[4]=0x02;
 585   2              }
 586   1              else
 587   1              {
 588   2                      keyb_num[0]=keynumdata[sequence];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[0];keyb_num[3]=keynum
             -data[1];
 589   2                      keyb_num[4]=0x02;
 590   2              }
 591   1              dypass=readbyte(gunid*300)-sequence;  //枪0在0000H; 枪1在0300;
 592   1              if(dypass<0) dypass+=10;
 593   1              if(dypass>9) dypass=0;
 594   1              add=dypass*10+200*gunid+101;
 595   1              readbyteseq(add,pt,4);
 596   1              if(gunid==0) disp_lcd1(temp.x,0x0a);  //公升
 597   1              else  disp_lcd2(temp.x,0x0a);  //公升
 598   1      
 599   1              //pt=&temp.c[0];
 600   1              dypass=readbyte(gunid*300)-sequence;  //枪0在0000H; 枪1在0300;
 601   1              if(dypass<0) dypass+=10;
 602   1              //add=dypass*10+256*gunid+105;
 603   1              add+=4;
 604   1              readbyteseq(add,pt,4);
 605   1              if(gunid==0) disp_lcd1(temp.x,0x04);  //公升
 606   1              else  disp_lcd2(temp.x,0x04);  //公升
 607   1      
 608   1              add+=4;
 609   1              readbyteseq(add,pt,2);
 610   1      
 611   1              if(gunid==0) {disp_lcd1(temp.y,0x0);disp_dot1(decimal_a);}
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 11  

 612   1              else    {disp_lcd2(temp.y,0x0);disp_dot2(decimal_b);}   
 613   1      }
 614          /**************************************************************
 615          *  功能:显示时钟a/b
 616          **************************************************************/
 617          void disp_time(uchar  gunidid)
 618          {   uchar  dispmem[16];
 619   1              uchar *ptr;
 620   1              if(gunidid==0)
 621   1              {       
 622   2                      keya_num[0]=keynumdata[25];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[27];keya_num[3]=keynumdata[
             -25];  //"t--t"
 623   2                      keya_num[4]=0x02;
 624   2                      dispmem[9]=0x02;
 625   2                      dispmem[8]=0x00;
 626   2                      dispmem[7]=ucCurtime[6]/16;
 627   2                      dispmem[6]=ucCurtime[6]%16;
 628   2                      dispmem[5]=ucCurtime[4]/16;
 629   2                      dispmem[4]=ucCurtime[4]%16;
 630   2      
 631   2                      dispmem[15]=ucCurtime[3]/16;
 632   2                      dispmem[14]=ucCurtime[3]%16;
 633   2                      dispmem[13]=ucCurtime[2]/16;
 634   2                      dispmem[12]=ucCurtime[2]%16;
 635   2                      dispmem[11]=ucCurtime[1]/16;
 636   2                      dispmem[10]=ucCurtime[1]%16;
 637   2      
 638   2                      dispmem[3]=ucCurtime[0]/16;;
 639   2                      dispmem[2]=ucCurtime[0]%16;;
 640   2                      dispmem[1]=0x0f;
 641   2                      dispmem[0]=ucCurtime[5]%16;
 642   2            disp_dot1(0x08);   //LCD1小数点  08--全无小数点
 643   2                      ptr=&dispmem;
 644   2                      disp_updata_lcd(LCDAADD,ptr);
 645   2              }
 646   1              else
 647   1              {
 648   2                      keyb_num[0]=keynumdata[25];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[3]=keynumdata[
             -25];  //"t--t"
 649   2                      keyb_num[4]=0x02;
 650   2                      dispmem[9]=0x02;
 651   2                      dispmem[8]=0x00;
 652   2                      dispmem[7]=ucCurtime[6]/16;
 653   2                      dispmem[6]=ucCurtime[6]%16;
 654   2                      dispmem[5]=ucCurtime[4]/16;
 655   2                      dispmem[4]=ucCurtime[4]%16;
 656   2      
 657   2                      dispmem[15]=ucCurtime[3]/16;
 658   2                      dispmem[14]=ucCurtime[3]%16;
 659   2                      dispmem[13]=ucCurtime[2]/16;
 660   2                      dispmem[12]=ucCurtime[2]%16;
 661   2                      dispmem[11]=ucCurtime[1]/16;
 662   2                      dispmem[10]=ucCurtime[1]%16;
 663   2      
 664   2                      dispmem[3]=ucCurtime[0]/16;;
 665   2                      dispmem[2]=ucCurtime[0]%16;;
 666   2                      dispmem[1]=0x0f;
 667   2                      dispmem[0]=ucCurtime[5]%16;
 668   2            disp_dot2(0x08);   //LCD2小数点  08--全无小数点
 669   2                      ptr=&dispmem;
 670   2                      disp_updata_lcd(LCDBADD,ptr);
 671   2              }
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 12  

 672   1      }
 673          /**************************************************************
 674          *  功能:显示版本号a/b
 675          **************************************************************/
 676          void disp_ver(uchar  gunidid)
 677          {
 678   1              if(gunidid==0)  //枪0
 679   1              {       
 680   2                      keya_num[0]=keynumdata[ver_num[1]%10];keya_num[1]=keynumdata[ver_num[1]/10];keya_num[2]=keynumdata[ver_n
             -um[0]%10];keya_num[3]=keynumdata[26];  //"U123"
 681   2                      keya_num[4]=0x02;
 682   2              }
 683   1              else
 684   1              {
 685   2                      keyb_num[0]=keynumdata[ver_num[1]%10];keyb_num[1]=keynumdata[ver_num[1]/10];keyb_num[2]=keynumdata[ver_n
             -um[0]%10];keyb_num[3]=keynumdata[26];  //"U123"
 686   2                      keyb_num[4]=0x02;
 687   2              }
 688   1      }
 689          /***************************************************************
 690          *  功能:显示提前量---流量控制
 691          ***************************************************************/
 692          void  disp_velocity_control(uchar  gunidid)
 693          {
 694   1              if(gunidid==0)  //枪0
 695   1              {       
 696   2                      keya_num[0]=keynumdata[residue_a%10];
 697   2                      keya_num[1]=keynumdata[residue_a/10];
 698   2                      keya_num[2]=keynumdata[27];
 699   2                      keya_num[3]=keynumdata[2];  //"2-30"
 700   2                      keya_num[4]=0x02;
 701   2              }
 702   1              else
 703   1              {
 704   2                      keyb_num[0]=keynumdata[residue_b%10];
 705   2                      keyb_num[1]=keynumdata[residue_b/10];
 706   2                      keyb_num[2]=keynumdata[27];
 707   2                      keyb_num[3]=keynumdata[2];  //"2-30"

⌨️ 快捷键说明

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