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

📄 disp.lst

📁 一整套电梯控制器源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 290   3                  m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx];
 291   3                  m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx]; 
 292   3          	}else if(data5045.cF2==2){	//数字滚动
 293   3                  if(cFlg==0){ 
 294   4                      if(m_cLineIdx<m_cMoveCnt){
 295   5                          m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx+16-m_cMoveCnt];
 296   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt]; 
 297   5                      }else{
 298   5                          m_cSrcFloorHigh = 0xFF;
 299   5                          m_cSrcFloorLow  = 0xFF;
 300   5                      }
 301   4                  }else if(cFlg==1){
 302   4                      if(m_cLineIdx>(16-m_cMoveCnt)){
 303   5                          m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx-16+m_cMoveCnt];
C51 COMPILER V6.12  DISP                                                                   05/25/2005 14:58:14 PAGE 6   

 304   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt]; 
 305   5                      }else{
 306   5                          m_cSrcFloorHigh = 0xFF;
 307   5                          m_cSrcFloorLow  = 0xFF;
 308   5                      }
 309   4                  }else if(cFlg==0xFF){
 310   4                      m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx];
 311   4                      m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx]; 
 312   4                  }
 313   3          	}else if(data5045.cF2==3){	//数字箭头滚动
 314   3                  if(cFlg==0){ 
 315   4                      if(m_cLineIdx<m_cMoveCnt){
 316   5                          m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx+16-m_cMoveCnt];
 317   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt]; 
 318   5                      }else{
 319   5                          m_cSrcFloorHigh = 0xFF;
 320   5                          m_cSrcFloorLow  = 0xFF; 
 321   5                      }
 322   4                  }else if(cFlg==1){
 323   4                      if(m_cLineIdx>(16-m_cMoveCnt)){
 324   5                          m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx-16+m_cMoveCnt];
 325   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt];
 326   5                      }else{
 327   5                          m_cSrcFloorHigh = 0xFF;
 328   5                          m_cSrcFloorLow  = 0xFF; 
 329   5                      }
 330   4                  }else if(cFlg==0xFF){
 331   4                      m_cSrcFloorHigh = PR[cIndexHigh][m_cLineIdx];
 332   4                      m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx]; 
 333   4                  }
 334   3              }
 335   2          }else{                  // 单字符
 336   2              m_c15_16singledoubleFlg=0;
 337   2          	if((data5045.cF2==0)||(P1_7==0)){	    //固定显示 
 338   3                  m_cSrcFloorHigh = 0xFF;
 339   3                  m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx];
 340   3          	}else if(data5045.cF2==1){	//箭头滚动   
 341   3                  m_cSrcFloorHigh = 0xFF;
 342   3                  m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx];
 343   3          	}else if(data5045.cF2==2){	//数字滚动
 344   3                  if(cFlg==0){ 
 345   4                      if(m_cLineIdx<m_cMoveCnt){
 346   5                          m_cSrcFloorHigh = 0xFF;
 347   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt]; 
 348   5                      }else{
 349   5                          m_cSrcFloorHigh = 0xFF;
 350   5                          m_cSrcFloorLow  = 0xFF; 
 351   5                      }
 352   4                  }else if(cFlg==1){
 353   4                      if(m_cLineIdx>(16-m_cMoveCnt)){
 354   5                          m_cSrcFloorHigh = 0xFF;
 355   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt]; 
 356   5                      }else{
 357   5                          m_cSrcFloorHigh = 0xFF;
 358   5                          m_cSrcFloorLow  = 0xFF; 
 359   5                      }
 360   4                  }else if(cFlg==0xFF){
 361   4                      m_cSrcFloorHigh = 0xFF;
 362   4                      m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx]; 
 363   4                  }
 364   3          	}else if(data5045.cF2==3){	//数字箭头滚动
 365   3                  if(cFlg==0){ 
C51 COMPILER V6.12  DISP                                                                   05/25/2005 14:58:14 PAGE 7   

 366   4                      if(m_cLineIdx<m_cMoveCnt){
 367   5                          m_cSrcFloorHigh = 0xFF;
 368   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx+16-m_cMoveCnt]; 
 369   5                      }else{
 370   5                          m_cSrcFloorHigh = 0xFF;
 371   5                          m_cSrcFloorLow  = 0xFF; 
 372   5                      }
 373   4                  }else if(cFlg==1){
 374   4                      if(m_cLineIdx>(16-m_cMoveCnt)){
 375   5                          m_cSrcFloorHigh = 0xFF;
 376   5                          m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx-16+m_cMoveCnt]; 
 377   5                      }else{
 378   5                          m_cSrcFloorHigh = 0xFF;
 379   5                          m_cSrcFloorLow  = 0xFF; 
 380   5                      }
 381   4                  }else if(cFlg==0xFF){
 382   4                      m_cSrcFloorHigh = 0xFF;
 383   4                      m_cSrcFloorLow  = PR[cIndexLow][m_cLineIdx]; 
 384   4                  }
 385   3              }
 386   2          }
 387   1      }
 388          
 389          void showtext(void)
 390          {   
 391   1          uchar cC, cB, cA;
 392   1      	uchar cMoveLineNum,j;
 393   1          uchar cLoopCnt=0;
 394   1          cC=0xFF;
 395   1          cB=0xFF;
 396   1          cA=0xFF;
 397   1      
 398   1          //行选择
 399   1          if(m_cLineIdx<=7){
 400   2              cMoveLineNum=7-m_cLineIdx;
 401   2              PD377=0x01<<cMoveLineNum;
 402   2              PE377=0x00;
 403   2      //    }else if((m_cLineIdx>=8)&&(m_cLineIdx<=16)){
 404   2      	  }else if((m_cLineIdx>=8)&&(m_cLineIdx<=15)){
 405   2      //	 	cMoveLineNum=16-m_cLineIdx;
 406   2      		cMoveLineNum=15-m_cLineIdx;
 407   2              PD377=0x00;
 408   2              PE377=0x01<<cMoveLineNum;
 409   2          }
 410   1      
 411   1          //列选择
 412   1          if(m_cOverloadFlg==1){  //超载
 413   2              //此处可将超载字符右移
 414   2              cC=(cC<<1)|0x01;
 415   2              cC=cC|((m_cSrcFloorHigh<<6)&0xC0);
 416   2              cB=(m_cSrcFloorHigh>>2)&0x3F;
 417   2              cB=cB|((m_cSrcFloorLow<<6)&0xC0);
 418   2              cA=0xC0;
 419   2              cA=cA|((m_cSrcFloorLow>>2)&0x3F);
 420   2          }else{
 421   2              if(m_c15_16singledoubleFlg==0){  //单字
 422   3      			if(data5045.cF6==1){	//非居中显示
 423   4      				cC=0x07;							//cC第1至3位空
 424   4      				cC=cC|((m_cSrcDirect&0x1F)<<3);   	//第4至8位为方向的低5位
 425   4      				cB=(m_cSrcDirect&0xE0)>>5;	 		//cB第1至3位为方向的高3位
 426   4      				cB=cB|0x38;	 				 		//cB第4至6位空
 427   4      				cB=cB|((m_cSrcFloorLow&0x03)<<6); 	//cB第7至8位为数字的低2位
C51 COMPILER V6.12  DISP                                                                   05/25/2005 14:58:14 PAGE 8   

 428   4      				cA=(m_cSrcFloorLow&0xFC)>>2; 		//cA第1至6位为数字的高6位
 429   4      				cA=cA|0xC0;	 						//cA第7至8位空
 430   4      			}else{					//居中显示
 431   4      				if((m_RecData.cDirect==0)||(m_RecData.cDirect==1)){
 432   5      					cC=0x07;							//cC第1至3位空
 433   5      					cC=cC|((m_cSrcDirect&0x1F)<<3);   	//第4至8位为方向的低5位
 434   5      					cB=(m_cSrcDirect&0xE0)>>5;	 		//cB第1至3位为方向的高3位
 435   5      					cB=cB|0x38;	 				 		//cB第4至6位空
 436   5      					cB=cB|((m_cSrcFloorLow&0x03)<<6); 	//cB第7至8位为数字的低2位
 437   5      					cA=(m_cSrcFloorLow&0xFC)>>2; 		//cA第1至6位为数字的高6位
 438   5      					cA=cA|0xC0;	 						//cA第7至8位空
 439   5      				}else{
 440   5      					cC=0xFF;							//cC空
 441   5      					cB=m_cSrcFloorLow;
 442   5      					cA=0xFF;	 						//cA空
 443   5      				}
 444   4      			}
 445   3              }else{                            //双字
 446   3      			if(data5045.cF6==1){	//非居中显示
 447   4      				cC=0x01;							//cC第1位空
 448   4      				cC=cC|((m_cSrcDirect&0x7F)<<1);		//cC第2至8位为方向的1至7位
 449   4      				cB=0x01;							//cB第1位空
 450   4      				cB=cB|((m_cSrcFloorHigh&0x7F)<<1);	//cB第2至8位为高字节的1至7位
 451   4      				cA=m_cSrcFloorLow;					//cA第1至8位为低字节的1至8位
 452   4      			}else{
 453   4      				if((m_RecData.cDirect==0)||(m_RecData.cDirect==1)){
 454   5      					cC=0x01;							//cC第1位空
 455   5      					cC=cC|((m_cSrcDirect&0x7F)<<1);		//cC第2至8位为方向的1至7位
 456   5      					cB=0x01;							//cB第1位空
 457   5      					cB=cB|((m_cSrcFloorHigh&0x7F)<<1);	//cB第2至8位为高字节的1至7位
 458   5      					cA=m_cSrcFloorLow;					//cA第1至8位为低字节的1至8位
 459   5      				}else{
 460   5      					cC=0x0F;							//cC第1至4位空
 461   5      					cC=cC|((m_cSrcFloorHigh&0x0F)<<4);	//cC第5至8位为高字节的1至4位
 462   5      					cB=(m_cSrcFloorHigh&0xF0)>>4;		//cB第1至4位为高字节的5至8位
 463   5      					cB=cB|((m_cSrcFloorLow&0x0F)<<4);	//cB第5至8位为低字节的1至4位
 464   5      					cA=(m_cSrcFloorLow&0xF0)>>4;		//cA第1至4位为低字节的5至8位
 465   5      					cA=cA|0xF0;							//cA第5至8位空
 466   5      				}
 467   4      			}
 468   3              }
 469   2          }
 470   1      
 471   1          PA377=cA;
 472   1          PB377=cB;
 473   1          PC377=cC;
 474   1          
 475   1          if(m_cLockDarkFlg==1){  //变暗
 476   2              cLoopCnt=80;
 477   2          }else{                  //不变暗
 478   2              cLoopCnt=50;
 479   2          }
 480   1      
 481   1      	for(j=0;j<=cLoopCnt;j++)
 482   1      		{_nop_();}
 483   1          PA377=0xFF;
 484   1          PB377=0xFF;
 485   1          PC377=0xFF;
 486   1      
 487   1      }
 488          
 489          //取得字库索引
C51 COMPILER V6.12  DISP                                                                   05/25/2005 14:58:14 PAGE 9   

 490          uchar getindex(uchar szText)
 491          {
 492   1          uchar ret=0;
 493   1          switch(szText){
 494   2              case '0':   ret=0;  break;
 495   2              case '1':   ret=1;  break;
 496   2              case '2':   ret=2;  break;
 497   2              case '3':   ret=3;  break;
 498   2              case '4':   ret=4;  break;
 499   2              case '5':   ret=5;  break;
 500   2              case '6':   ret=6;  break;
 501   2              case '7':   ret=7;  break;
 502   2              case '8':   ret=8;  break;
 503   2              case '9':   ret=9;  break;
 504   2              case 'B':   ret=10; break;
 505   2              case 'F':   ret=11; break;
 506   2              case '-':   ret=12; break;
 507   2          }
 508   1          return ret;
 509   1      }
 510          
 511          // 16进制数字转换为ASCII
 512          uchar __toascii(uchar c)
 513          {
 514   1      	uchar ret;
 515   1      	if(c>9)
 516   1      		ret=0x37+c; 
 517   1      	else
 518   1      		ret=0x30+c;
 519   1      	return ret;
 520   1      }
 521          
 522          void led(void)                                     //can总线正在通讯状态和通讯错误状态显示灯赋值片断。
 523          {
 524   1      if((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x80)==0x80)     //总线状态为关闭时
 525   1         {P3_1=0;
 526   2          P2_7=0;
 527   2          _nop_();
 528   2          _nop_();
 529   2          _nop_();
 530   2          _nop_();
 531   2          _nop_();
 532   2          _nop_();
 533   2          _nop_();
 534   2          _nop_();
 535   2          _nop_();
 536   2          _nop_();
 537   2          _nop_();
 538   2          _nop_();
 539   2      
 540   2          P2_7=1;
 541   2          can_init();
 542   2        }
 543   1      if((XBYTE[((P2&0xe0)|0x0F)*256]&0x01)!=0x00)     //总线状态为复位时
 544   1         {P3_1=0;
 545   2          P2_7=0;
 546   2          _nop_();
 547   2          _nop_();
 548   2          _nop_();
 549   2          _nop_();
 550   2          _nop_();
 551   2          _nop_();
C51 COMPILER V6.12  DISP                                                                   05/25/2005 14:58:14 PAGE 10  

 552   2          _nop_();
 553   2          _nop_();
 554   2          _nop_();
 555   2          _nop_();
 556   2          _nop_();
 557   2          _nop_();
 558   2      
 559   2          P2_7=1;
 560   2          can_init();
 561   2        }
 562   1       if((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x40)==0x40)    //错误寄存器为1时
 563   1         {P3_1=0;
 564   2          P2_7=0;
 565   2          _nop_();
 566   2          _nop_();
 567   2          _nop_();
 568   2          _nop_();
 569   2          _nop_();
 570   2          _nop_();
 571   2          _nop_();
 572   2          _nop_();
 573   2          _nop_();
 574   2          _nop_();
 575   2          _nop_();
 576   2          _nop_();
 577   2      
 578   2          P2_7=1;
 579   2          can_init();
 580   2        }
 581   1       else
 582   1        {P3_1=1;    
 583   2        }
 584   1       if(((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x20)==0x20)||((XBYTE[((P2&0xe0)|0x0F)*256+2]&0x10)==0x10))//正在发送

⌨️ 快捷键说明

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