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

📄 access.lst

📁 液晶显示器程序代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 566   2          }
 567   1          while (1);
 568   1      }
 569          
 570          void RTDCodeW(unsigned char code *array)
 571          {
 572   1          unsigned char   len, m;
 573   1      
 574   1          do
 575   1          {
 576   2              if (0 == (array[0] & 0xfc))     return;
 577   2      
 578   2              len     = array[0] - 3;
 579   2              array   = array + 1;
 580   2              bRTD_SCSB   = 0;
 581   2      
 582   2              if (BURST == array[0])
 583   2              {
 584   3                  RTDSendAddr(array[1], 0, N_INC);
 585   3      
 586   3                  array   = array + 2;
 587   3                  m       = array[0];
 588   3                  
 589   3                  do
 590   3                  {
 591   4                      RTDSendByte(m);
 592   4                  }
 593   3                  while (--len);
 594   3      
 595   3                  array   = array + 1;
 596   3              }
 597   2              else
 598   2              {
 599   3                  RTDSendAddr(array[1], 0, array[0]);
 600   3      
 601   3                  array   = array + 2;
 602   3                  do
 603   3                  {
 604   4                      RTDSendByte(*array++);
 605   4                  }
C51 COMPILER V7.06   ACCESS                                                                11/21/2005 13:47:43 PAGE 11  

 606   3                  while (--len);
 607   3              }
 608   2                      RTDSendStop();
 609   2      
 610   2          }
 611   1          while (1);
 612   1      }
 613          
 614          void RTDOSDW(unsigned char code *array)
 615          {
 616   1          unsigned char   len;
 617   1          do
 618   1          {
 619   2              if (array[0] == _end_)     return;
 620   2                          
 621   2                      bRTD_SCSB   = 0;
 622   2              RTDSendAddr(OSD_ROW_90,WRITE,Y_INC);
 623   2              RTDSendByte(*array++);
 624   2              RTDSendByte(*array++);
 625   2      
 626   2                      RTDSendStop();
 627   2      
 628   2                      bRTD_SCSB   = 0;
 629   2              RTDSendAddr(OSD_DATA_92,WRITE,N_INC);
 630   2              do
 631   2                      {
 632   3                 if(array[0] == _ext_)
 633   3                 {
 634   4                     if(array[2] == _bb_)
 635   4                     {
 636   5                        do
 637   5                        {
 638   6                           len = array[3] - 1;
 639   6                           RTDSendByte(_ext_ + array[1]);
 640   6                         }while(len--);
 641   5      
 642   5                         array += 4;
 643   5                     }
 644   4                     else
 645   4                     {
 646   5                         RTDSendByte(_ext_ + array[1]);
 647   5                         array += 2;
 648   5                     }
 649   4                 }
 650   3                 else if(array[1] == _bb_)
 651   3                         {
 652   4                             len = array[2] - 1;
 653   4                                 do
 654   4                                 {
 655   5                                    RTDSendByte(*array);
 656   5                                 }while(len--);
 657   4                             
 658   4                                 array += 3;
 659   4                         }
 660   3                         else
 661   3                             RTDSendByte(*array++);
 662   3      
 663   3      
 664   3                      }while(array[0] != _nn_);
 665   2                      array +=1 ;
 666   2                      RTDSendStop();
 667   2      
C51 COMPILER V7.06   ACCESS                                                                11/21/2005 13:47:43 PAGE 12  

 668   2          }
 669   1          while (1);
 670   1      
 671   1      }
 672          
 673          
 674          void RTDSetByte(unsigned char addr, unsigned char val)
 675          {
 676   1          // Set Write Address
 677   1          bRTD_SCSB   = 0;   
 678   1      
 679   1          RTDSendAddr(addr, 0, 1);
 680   1      
 681   1          // Write one Byte
 682   1          RTDSendByte(val);
 683   1      
 684   1              RTDSendStop();
 685   1      
 686   1      }
 687          
 688          void RTDSetBit(unsigned char addr, unsigned char and, unsigned char or)
 689          {
 690   1          // Set Read Address
 691   1          bRTD_SCSB   = 0;
 692   1          RTDSendAddr(addr, 1, 1);
 693   1      
 694   1          // Read 1 Byte
 695   1          or      = (RTDGetByte() & and) | or;
 696   1      
 697   1              RTDSendStop();
 698   1      
 699   1          // Set Write Address
 700   1          bRTD_SCSB   = 0;   
 701   1          RTDSendAddr(addr, 0, 1);
 702   1      
 703   1          // Write one Byte
 704   1          RTDSendByte(or);
 705   1      
 706   1              RTDSendStop();
 707   1      
 708   1      
 709   1      }
 710          
 711          #if(VLC_COMPRESS)
 712          void Load_VLC_Font(unsigned char code *array, unsigned int start, unsigned int length)
 713          {
 714   1              unsigned char n,m;
 715   1              unsigned char ucTemp[3];
 716   1              unsigned char idata ucTemp_VLD[3];
 717   1              
 718   1      #if(PARALLEL_PORT)
              //      unsigned char ucTemp1;
              #endif
 721   1      
 722   1              start += FONT_BASE_ADDRESS;
 723   1      
 724   1              bRTD_SCSB   = 0;   
 725   1              RTDSendAddr(OSD_ROW_90, WRITE, Y_INC);
 726   1              ucTemp[0] = (unsigned char)((start >> 8) & 0x000f) | 0xd0;
 727   1              RTDSendByte(ucTemp[0]);
 728   1              ucTemp[0] = (unsigned char)(start & 0x00ff);
 729   1              RTDSendByte(ucTemp[0]);
C51 COMPILER V7.06   ACCESS                                                                11/21/2005 13:47:43 PAGE 13  

 730   1      
 731   1              RTDSendStop();
 732   1      
 733   1              bRTD_SCSB   = 0;   
 734   1              RTDSendAddr(OSD_DATA_92, WRITE, N_INC);
 735   1      
 736   1              ucCnt = 0;
 737   1              uiCount = 0;
 738   1              bBit = 0;
 739   1              ucByte_Temp = 0;
 740   1      
 741   1              do
 742   1              {
 743   2                      for(m=0; m<9; m++)
 744   2                      {
 745   3      
 746   3                              ucTemp_VLD[0] = Get_VLD(array) << 4;
 747   3                              ucTemp_VLD[0] |= Get_VLD(array);
 748   3                              ucTemp_VLD[1] = Get_VLD(array) << 4;
 749   3                              ucTemp_VLD[1] |= Get_VLD(array);
 750   3                              ucTemp_VLD[2] = Get_VLD(array) << 4;
 751   3                              ucTemp_VLD[2] |= Get_VLD(array);
 752   3                              
 753   3                              //Rearrange the byte order
 754   3                              ucTemp[0] = (ucTemp_VLD[1] << 4) | (ucTemp_VLD[2] & 0x0f);
 755   3                              ucTemp[1] = (ucTemp_VLD[2] & 0xf0) | (ucTemp_VLD[0] & 0x0f);
 756   3                              ucTemp[2] = (ucTemp_VLD[0] & 0xf0) | (ucTemp_VLD[1] >> 4);
 757   3      
 758   3                              for(n=0;n<3;n++)
 759   3                              {
 760   4      #if(PARALLEL_PORT)
                                              
              #if(KINGMICE)
                                              bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x01);
                                              bRTD_SDIO_1 = (bit)(ucTemp[n] & 0x02);
                                              bRTD_SDIO_2 = (bit)(ucTemp[n] & 0x04);
                                              bRTD_SDIO_3 = (bit)(ucTemp[n] & 0x08);
                                              bRTD_SCLK   = 1;
                                              bRTD_SCLK   = 0;
                                              bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x10);
                                              bRTD_SDIO_1 = (bit)(ucTemp[n] & 0x20);
                                              bRTD_SDIO_2 = (bit)(ucTemp[n] & 0x40);
                                              bRTD_SDIO_3 = (bit)(ucTemp[n] & 0x80);
                                              bRTD_SCLK   = 1;
                                              bRTD_SCLK   = 0;
                                              bRTD_SDIO_0 = 1;
                                              bRTD_SDIO_1 = 1;
                                              bRTD_SDIO_2 = 1;
                                              bRTD_SDIO_3 = 1;
                                              bRTD_SCLK   = 1;
              #else
                                              ucTemp1 = P0 & 0xf0;
              
                                              P0 = ucTemp1 | (ucTemp[n] & 0x0f);
                                              bRTD_SCLK   = 1;
                                              bRTD_SCLK   = 0;
                                              P0 = ucTemp1 | (ucTemp[n] >> 4);
                                              bRTD_SCLK   = 1;
                                              bRTD_SCLK   = 0;
                                              P0 = ucTemp1 | 0x0f;
                                              bRTD_SCLK   = 1;
              #endif
C51 COMPILER V7.06   ACCESS                                                                11/21/2005 13:47:43 PAGE 14  

              
              #else
 794   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x01);
 795   4                                      bRTD_SCLK   = 1;
 796   4                                      bRTD_SCLK   = 0;
 797   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x02);
 798   4                                      bRTD_SCLK   = 1;
 799   4                                      bRTD_SCLK   = 0;
 800   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x04);
 801   4                                      bRTD_SCLK   = 1;
 802   4                                      bRTD_SCLK   = 0;
 803   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x08);
 804   4                                      bRTD_SCLK   = 1;
 805   4                                      bRTD_SCLK   = 0;
 806   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x10);
 807   4                                      bRTD_SCLK   = 1;
 808   4                                      bRTD_SCLK   = 0;
 809   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x20);
 810   4                                      bRTD_SCLK   = 1;
 811   4                                      bRTD_SCLK   = 0;
 812   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x40);
 813   4                                      bRTD_SCLK   = 1;
 814   4                                      bRTD_SCLK   = 0;
 815   4                                      bRTD_SDIO_0 = (bit)(ucTemp[n] & 0x80);
 816   4                                      bRTD_SCLK   = 1;
 817   4                                      bRTD_SCLK   = 0;
 818   4                                      bRTD_SDIO_0 = 1;
 819   4                                      bRTD_SCLK   = 1;
 820   4      #endif
 821   4                              }
 822   3                      }
 823   2              }
 824   1              while (--length);
 825   1      
 826   1              RTDSendStop();
 827   1              
 828   1      }
 829          
 830          unsigned char Get_VLD(unsigned char code *array)
 831          {
 832   1              unsigned char data ucZero_Cnt = 0;
 833   1              bit bSec_Part = 0;
 834   1              
 835   1              while(1)
 836   1              {
 837   2                      if( ucCnt == 0 )
 838   2                      {
 839   3                              ucByte_Temp = *(array + uiCount);
 840   3                              ucCnt = 0x80;
 841   3                              uiCount++;
 842   3                      }
 843   2      
 844   2                      while( ucCnt > 0 )
 845   2                      {
 846   3                              bBit = (bit)(ucByte_Temp & ucCnt);
 847   3                              ucCnt >>= 1;
 848   3      
 849   3                              if( (bBit) && (bSec_Part == 0) )
 850   3                              {
 851   4                                      bSec_Part = 1;
 852   4                              }
 853   3                              else    
C51 COMPILER V7.06   ACCESS                                                                11/21/2005 13:47:43 PAGE 15  

 854   3                              {
 855   4                                      ucZero_Cnt++;

⌨️ 快捷键说明

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