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

📄 ledfution.lst

📁 多字节汉字屏显示控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
                                      ptr_d = &pt->PRINT2_R[0][0];
                                      movedata_r(ptr_s,ptr_d,&pt->PRINT2_R[HANGDIP][0]);      //调用汇编全部拷贝数据
                              }
                              else
                              {
                                      ptr_s = &pt->PRINT2_R[0][0];
                                      ptr_d = &pt->PRINT1_R[0][0];
                                      movedata_r(ptr_s,ptr_d,&pt->PRINT1_R[HANGDIP][0]);      //调用汇编全部拷贝数据
                              }
                              /*数据搬家结束*/
                              if(PRINT_INFOR.SWAP == SWAP_PRINT1)
                              {
                                      for(ii=0; ii<HANGDIP; ii++)                     //装载一行数据
                                       {
                                              ptr_s = &pt->printbuf[pt->plan][ii*(LIEDIP/8)]; //得到对应行的首地址
                                              ptr_s += (LIEDIP/8 - 1);
                                              ptr_s -= pt->lie;
                                              DATA = *ptr_s;
                                              DATA >>= pt->bit_cont;
                                              if(DATA & 0x01) pt->PRINT2_R[ii][0] |= 0x80;
                                                 else pt->PRINT2_R[ii][0] &= 0x7f;
                                       }
                              }
                              if(PRINT_INFOR.SWAP == SWAP_PRINT2)
                              {
                                      for(ii=0; ii<HANGDIP; ii++)                     //装载一行数据
                                       {
                                              ptr_s = &pt->printbuf[pt->plan][ii*(LIEDIP/8)]; //得到对应行的首地址
                                              ptr_s += (LIEDIP/8 - 1);
                                              ptr_s -= pt->lie;
                                              DATA = *ptr_s;
                                              DATA >>= pt->bit_cont;
                                              if(DATA & 0x01) pt->PRINT1_R[ii][0] |= 0x80;
                                                 else pt->PRINT1_R[ii][0] &= 0x7f;
                                       }
                              }
                              //通知打印换页
                              changpage(pt);
              
                              if(++pt->bit_cont == 8)
                              {
                                  pt->bit_cont = 0;
                                      if(++pt->lie == LIEDIP/8)
                                      {
                                        PRINT_INFOR.CHANG = 0;
                                        while(PRINT_INFOR.CHANG < pt->showtime[pt->plan]);
                                        break;
                                      }
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 8   

                              }
                 }
              }
              #endif
 416          /*********************************************************************************************************
             -********************************************
 417          *LED屏从左到右添加列=逐列显示
 418          **********************************************************************************************************
             -*******************************************/
 419          #ifdef PRINT_R_LIE
              void print_r_lie(struct windows xdata *pt) //new
              {
                  uchar data   ii=0;
                      uchar data   DATA;
                  uchar xdata  *data ptr_s, *ptr_d;
                      while(1)
                      {
                                      /*数据搬家开始*/
                              if(comtimeout != 0) break;
                              if(PRINT_INFOR.SWAP == SWAP_PRINT1)
                              {
                                      ptr_s = &pt->PRINT1_R[0][0];
                                      ptr_d = &pt->PRINT2_R[0][0];
                                      movedata(ptr_s,ptr_d,&pt->PRINT2_R[HANGDIP][0]);        //调用汇编全屏拷贝数据
                              }
                              else
                              {
                                      ptr_s = &pt->PRINT2_R[0][0];
                                      ptr_d = &pt->PRINT1_R[0][0];
                                      movedata(ptr_s,ptr_d,&pt->PRINT1_R[HANGDIP][0]);        //调用汇编全屏拷贝数据
                              }
              
                              /*数据搬家结束*/
                              if(PRINT_INFOR.SWAP == SWAP_PRINT1)
                              {
                                      for(ii=0; ii<HANGDIP; ii++)                     //装载一行数据
                                       {
                                              ptr_s = &pt->printbuf[pt->plan][ii*(LIEDIP/8)]; //得到对应行的首地址
                                              ptr_s += pt->lie;
                                              DATA = 0x80>>pt->bit_cont;
                                              if(DATA & *ptr_s) pt->PRINT2_R[ii][pt->lie] |= DATA;
                                                 else pt->PRINT2_R[ii][pt->lie] &= ~DATA;
                                       }
                              }
                              if(PRINT_INFOR.SWAP == SWAP_PRINT2)
                              {
                                      for(ii=0; ii<HANGDIP; ii++)                     //装载一行数据
                                       {
                                              ptr_s = &pt->printbuf[pt->plan][ii*(LIEDIP/8)]; //得到对应行的首地址
                                              ptr_s += pt->lie;
                                              DATA = 0x80>>pt->bit_cont;
                                              if(DATA & *ptr_s) pt->PRINT1_R[ii][pt->lie] |= DATA;
                                                 else pt->PRINT1_R[ii][pt->lie] &= ~DATA;
                                       }
                              }
                              //通知打印换页
                              changpage(pt);
              
                              if(++pt->bit_cont == 8)
                              {
                                  pt->bit_cont = 0;
                                      if(++pt->lie == LIEDIP/8)
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 9   

                                      {
                                              PRINT_INFOR.CHANG = 0;
                                              while(PRINT_INFOR.CHANG < pt->showtime[pt->plan]);
                                              break;
                                      }
                              }
                 }
              }
              #endif
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 10  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
_changpage . . . . . . . . . . . . . .  STATIC   CODE   PROC     0000H  -----
  pt . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0006H  2
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
windows. . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  14167
  plan_flash . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  plan_point . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  plan_size. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  plan . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1
  hang . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  lie. . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  bit_cont . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  movintype. . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0007H  20
  movouttype . . . . . . . . . . . . .  MEMBER   -----  ARRAY    001BH  20
  movsize. . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    002FH  20
  showtime . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0043H  20
  PRINT1_R . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0057H  640
  PRINT2_R . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    02D7H  640
  printbuf . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0557H  12800
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
_adddata . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
usart. . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  645
  dip. . . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  640
  movintype. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0280H  1
  movouttype . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0281H  1
  movsize. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0282H  1
  showtime . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0283H  1
  addtype. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0284H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_movedata. . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
rell_print . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
comtimeout . . . . . . . . . . . . . .  EXTERN   DATA   U_CHAR   -----  1
print_asm. . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  4
  ptr1_s . . . . . . . . . . . . . . .  MEMBER   -----  PTR      0000H  2
  ptr2_s . . . . . . . . . . . . . . .  MEMBER   -----  PTR      0002H  2
_print_up. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pt . . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  2
  ptr_s. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0002H  2
  ptr_d. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0004H  3
CS_RAM . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
system_run . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0000H  2
PRINTLED . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  11
  SWAP . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  CHANG. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  COLOR. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  PRINTBUF1_R1 . . . . . . . . . . . .  MEMBER   -----  PTR      0003H  2
  PRINTBUF1_R2 . . . . . . . . . . . .  MEMBER   -----  PTR      0005H  2
  PRINTBUF2_R1 . . . . . . . . . . . .  MEMBER   -----  PTR      0007H  2
  PRINTBUF2_R2 . . . . . . . . . . . .  MEMBER   -----  PTR      0009H  2
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
PRINT_INFOR. . . . . . . . . . . . . .  EXTERN   DATA   STRUCT   -----  11
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    452    ----
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 11  

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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