📄 disp.lst
字号:
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 + -