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

📄 disp.lst

📁 用于测试步进电机
💻 LST
📖 第 1 页 / 共 5 页
字号:
 234          /***********************************************************************
 235          *         功能:LCD1小数点
 236          ***********************************************************************/
 237          void  disp_dot1(uchar dotdata)   
 238          {  
 239   1                 uchar  temp;
 240   1                 uchar  j;    
 241   1                 bit  bymem;
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 5   

 242   1                 AUXR |=0x02;
 243   1                 //ACC=0x38;
 244   1                      //XBYTE[LCDAADD]=ACC;   //ST
 245   1            if(state1==2) bbyte=dotdata;
 246   1                      else bbyte=dotmode[dotdata];
 247   1                      bbyte &= 0x07;    //1,3,5
 248   1            bbyte=dotmem[bbyte];
 249   1            temp=bbyte;
 250   1                      if(state1==2) bbyte=dotdata;
 251   1                      else bbyte=dotmode[dotdata];
 252   1                      bbyte &= 0x38;    //2,4,6
 253   1                      bbyte>>=3;
 254   1            bbyte=dotmem[bbyte];
 255   1                      bbyte<<=4;
 256   1                      temp |=bbyte;
 257   1                      for(j=12;j>0;j--)
 258   1                      {  bbyte=temp;
 259   2                         bymem=(bit)(bbyte&0x80);
 260   2                              temp<<=1;
 261   2                              bbyte=0x38;
 262   2                              a1= bymem;
 263   2                              XBYTE[LCDAADD]=bbyte; 
 264   2                              bbyte|=0x01; _nop_(); 
 265   2                              XBYTE[LCDAADD]=bbyte;   //CLK ↑
 266   2                              bbyte&=0xfe;
 267   2                                      _nop_();_nop_();_nop_();
 268   2                              XBYTE[LCDAADD]=bbyte;   //;CLK ↓
 269   2                         if (j==5)
 270   2                              {
 271   3                                      ACC=0xb8;
 272   3                                      XBYTE[LCDAADD]=ACC;   //ST
 273   3                              }
 274   2                      } 
 275   1                      ACC=0x78;
 276   1                      XBYTE[LCDAADD]=ACC;   //ST
 277   1                      AUXR &=0xfd;
 278   1      }
 279          /***********************************************************************
 280          *         功能:LCD2小数点
 281          ***********************************************************************/
 282          void  disp_dot2(uchar dotdata)   
 283          {     uchar  temp;
 284   1                 uchar  j;    
 285   1                 bit  bymem;
 286   1                      AUXR |=0x02;
 287   1                      //ACC=0x38;
 288   1                      //XBYTE[LCDBADD]=ACC;   //ST
 289   1                      if(state2==2) bbyte=dotdata;
 290   1                      else bbyte=dotmode[dotdata];
 291   1                      bbyte &= 0x07;    //1,3,5
 292   1            bbyte=dotmem[bbyte];
 293   1            temp=bbyte;
 294   1                      if(state2==2) bbyte=dotdata;
 295   1                      else bbyte=dotmode[dotdata];
 296   1                      bbyte &= 0x38;    //2,4,6
 297   1                      bbyte>>=3;
 298   1            bbyte=dotmem[bbyte];
 299   1                      bbyte<<=4;
 300   1                      temp |=bbyte;
 301   1                      for(j=12;j>0;j--)
 302   1                      {  bbyte=temp;
 303   2                         bymem=(bit)(bbyte&0x80);
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 6   

 304   2                              temp<<=1;
 305   2                              bbyte=0x38;
 306   2                              a1= bymem;
 307   2                              XBYTE[LCDBADD]=bbyte; 
 308   2                              bbyte|=0x01;_nop_();  
 309   2                              XBYTE[LCDBADD]=bbyte;   //CLK ↑
 310   2                              bbyte&=0xfe;
 311   2                                      _nop_();_nop_();_nop_();
 312   2                              XBYTE[LCDBADD]=bbyte;   //;CLK ↓
 313   2                         if (j==5)
 314   2                              {
 315   3                                      ACC=0xb8;
 316   3                                      XBYTE[LCDBADD]=ACC;   //ST
 317   3                              }
 318   2                      } 
 319   1                      ACC=0x78;
 320   1                      XBYTE[LCDBADD]=ACC;   //ST
 321   1                      AUXR &=0xfd;
 322   1      }
 323          /**************************************************
 324          *   功能:显示键盘小屏
 325          **************************************************/
 326          void  disp_key(void)
 327          {   uchar data mem_inn,mem_str;  //做堆栈用
 328   1              uchar data i,j,ma,mb;
 329   1              mem_inn=AUXR;  //做堆栈用
 330   1              mem_str=bbyte;
 331   1              AUXR |=0x02;
 332   1              XBYTE[KEY_DISPADD]=0x24;  //0x24--LE->H       0x00--LE->L
 333   1              for(i=0;i<5;i++)
 334   1              {
 335   2                      ma=keya_num[i];
 336   2                      mb=keyb_num[i];
 337   2                      
 338   2                      
 339   2                      for(j=0;j<8;j++)
 340   2                      {       bbyte=0x24;
 341   3                              a0=(bit)(ma & 0x80);ma<<=1;
 342   3                              
 343   3                              a3=(bit)(mb & 0x80);mb<<=1;
 344   3                              XBYTE[KEY_DISPADD]=bbyte;  
 345   3                              bbyte |=0x12;
 346   3                              XBYTE[KEY_DISPADD]=bbyte;  //CLK ↑
 347   3                              bbyte &=0xed;
 348   3                              XBYTE[KEY_DISPADD]=bbyte;//CLK ↓
 349   3                      }
 350   2              }
 351   1              XBYTE[KEY_DISPADD]=0x00;
 352   1              bbyte=mem_str;           
 353   1              AUXR=mem_inn;  //做堆栈用
 354   1      }
 355          /*****************************************
 356          *   功能:键盘小屏清屏a
 357          *******************************************/
 358          void disp_key_clear_a(void)
 359          {  
 360   1              keya_num[4]=0x00;
 361   1      }
 362          /*****************************************
 363          *   功能:键盘小屏清屏b
 364          *******************************************/
 365          void disp_key_clear_b(void)
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 7   

 366          {  
 367   1              if(k2key)
 368   1              {
 369   2                 /*if(printermode_b==0) keyb_num[3]=keynumdata[0x0a];  //自动
 370   2                      else keyb_num[3]=keynumdata[17];  //手动
 371   2                      keyb_num[0]=keynumdata[pirnt_select_b+1];
 372   2                      keyb_num[1]=0x00;keyb_num[2]=0x00;keyb_num[4]=0x00;*/
 373   2                      //-----------------------------------------------------
 374   2                      if(vip_mode_b) {keyb_num[4]=0x04;}  //定升
 375   2                      else  {keyb_num[4]=0x08;}  //定元
 376   2                      keyb_num[0]=keynumdata[0];
 377   2                      keyb_num[1]=keynumdata[28];
 378   2                      keyb_num[2]=keynumdata[28];
 379   2                      keyb_num[3]=keynumdata[28];
 380   2                      //-----------------------------------------------------
 381   2              }
 382   1              else
 383   1              {  keyb_num[0]=keynumdata[27];keyb_num[3]=keynumdata[27];
 384   2                      keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[4]=0x02;
 385   2              }
 386   1      }
 387          
 388          /***********************************************************************
 389          *  功能:显示TOTAL数据b
 390          ************************************************************************/
 391          void disp_total_b(void)
 392          {       uchar  i;
 393   1              uchar  dispmem[16],tt[10];
 394   1              uchar dotdata;
 395   1              ulong  ma;
 396   1              uchar *ptr;
 397   1              dispmem[4]=0x0f;dispmem[5]=0x0f;dispmem[6]=0x0f;dispmem[7]=0x0f;
 398   1         if((menu2==1 && state2==6) || state2==8)
 399   1              {  
 400   2                      if(!ration_mode_b)
 401   2                      {       bbyte=dotmode[decimal_b];
 402   3                              if(a3) {dotdata=2;disp_dot2(7);}   //LCD1小数点 
 403   3                              else if(a0) {dotdata=1;disp_dot2(7);}   //LCD1小数点    
 404   3                              else {dotdata=0;disp_dot2(0x8);}   //LCD1小数点
 405   3                              dispmem[8]=0x0c;dispmem[9]=0x0c;
 406   3                         if(state2!=8 || ration_num_b==0) ma=gun2.sum_sale;   //总累--锁售额  PP
 407   3                              else ma=ration_num_b;
 408   3                              if(state2!=8)
 409   3                              {
 410   4                                      keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
 411   4                                      keyb_num[4]=0x02;
 412   4                              }
 413   3                              else
 414   3                              {
 415   4                                      keyb_num[0]=keynumdata[27];
 416   4                                      keyb_num[1]=keynumdata[27];
 417   4                                      keyb_num[2]=keynumdata[23];
 418   4                                      keyb_num[3]=keynumdata[23];  //"PP--"
 419   4                                      keyb_num[4]=0x02;
 420   4                              }
 421   3                              
 422   3                      }
 423   2                      else
 424   2                      {       bbyte=dotmode[decimal_b];
 425   3                              if(a4) {dotdata=2;disp_dot2(0x7);}   //LCD1小数点       
 426   3                              else if(a1) {dotdata=3;disp_dot2(0x6);}   //LCD1小数点  
 427   3                              else {dotdata=0;disp_dot2(0x8);}   //LCD1小数点
C51 COMPILER V7.00  DISP                                                                   09/14/2006 16:35:48 PAGE 8   

 428   3                              dispmem[8]=0x0a;dispmem[9]=0x0a;
 429   3                         if(state2!=8 || ration_num_b==0)     ma=gun2.sum_liter;   //总累--升  LL
 430   3                              else ma=ration_num_b;
 431   3                              if(state2!=8)
 432   3                              {
 433   4                                      keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
 434   4                                      keyb_num[4]=0x02;
 435   4                              }
 436   3                              else
 437   3                              {
 438   4                                      keyb_num[0]=keynumdata[27];
 439   4                                      keyb_num[1]=keynumdata[27];
 440   4                                      keyb_num[2]=keynumdata[19];
 441   4                                      keyb_num[3]=keynumdata[19];  //"LL--"
 442   4                                      keyb_num[4]=0x02;
 443   4                              }
 444   3                              
 445   3                      }
 446   2              }
 447   1              else
 448   1              {
 449   2                      if(!ration_mode_b)
 450   2                      {       bbyte=dotmode[decimal_b];
 451   3                              if(a3) {dotdata=2;disp_dot2(0x7);}   //LCD2小数点       
 452   3                              else if(a0) {dotdata=1;disp_dot2(0x7);}   //LCD2小数点  
 453   3                              else {dotdata=0;disp_dot2(0x8);}   //LCD2小数点
 454   3                              dispmem[8]=0x0f;dispmem[9]=0x0c;
 455   3                         ma=gun2.work_sale;   //班累--锁售额   P
 456   3                              keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
 457   3                              keyb_num[4]=0x02;
 458   3                      }
 459   2                      else
 460   2                      {       bbyte=dotmode[decimal_b];
 461   3                              if(a4) {dotdata=2;disp_dot2(0x7);}   //LCD2小数点       
 462   3                              else if(a1) {dotdata=3;disp_dot2(0x6);}   //LCD1小数点  
 463   3                              else {dotdata=0;disp_dot2(0x8);}   //LCD2小数点
 464   3                              dispmem[8]=0x0f;dispmem[9]=0x0a;
 465   3                         ma=gun2.work_liter;   //班累--升  L
 466   3                              keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
 467   3                              keyb_num[4]=0x02;
 468   3                      }
 469   2              } 
 470   1              for(i=0;i<10;i++)
 471   1              {
 472   2                      tt[i]=ma%10;ma/=10;
 473   2              }

⌨️ 快捷键说明

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