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

📄 ledfution.lst

📁 多字节汉字屏显示控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
                              {
                                PRINT_INFOR.CHANG = 0;
                                while(PRINT_INFOR.CHANG < pt->showtime[pt->plan]);
                                break;
                              }
                      }
              }
              #endif
 186          /*********************************************************************************************************
             -********************************************
 187          *LED屏从下到上添加行=逐行显示
 188          **********************************************************************************************************
             -*******************************************/
 189          #ifdef  PRINT_DOWN_HANG
              void print_down_hang(struct windows xdata *pt) //new
              {
                  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)
                              {
                                      ptr_d = &pt->PRINT2_R[(HANGDIP-1)-pt->hang][0];
                              }
                              else
                              {
                                      ptr_d = &pt->PRINT1_R[(HANGDIP-1)-pt->hang][0];
                              }
                              /*数据搬家结束*/
                              ptr_s = &pt->printbuf[pt->plan][(HANGDIP-1-pt->hang)*(LIEDIP/8)];
                              adddata(ptr_s,ptr_d,ptr_d+LIEDIP/8);
              
                              //通知打印换页
                              changpage(pt);
              
                              if(++pt->hang == HANGDIP)
                              {
                                      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 5   

              #endif
 233          /*********************************************************************************************************
             -********************************************
 234          *LED屏左移动扫描方式    ok
 235          **********************************************************************************************************
             -*******************************************/
 236          #ifdef PRINT_L
              void print_l(struct windows xdata *pt) //new
              {
                  uchar data   ii=0;
                  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];
                              }
                              else
                              {
                                      ptr_s = &pt->PRINT2_R[0][0];
                                      ptr_d = &pt->PRINT1_R[0][0];
                              }
                              ptr_s += (LIEDIP/8-1);
                              ptr_d += (LIEDIP/8-1);
                              movedata_l(ptr_s,ptr_d,LIEDIP/8,HANGDIP);       //调用汇编全部拷贝数据
                              /*数据搬家结束*/
                              for(ii=0; ii<HANGDIP; ii++)                     //装载一行数据
                               {
                                      ptr_s = &pt->printbuf[pt->plan][ii*(LIEDIP/8)]; //得到对应行的首地址
                                      ptr_s += pt->lie;
                                      set_data_l(ptr_s, ptr_d, pt->bit_cont);//汇编处理
                                      ptr_d += (LIEDIP/8);
                               }
                              //通知打印换页
                              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;
                                      }
                              }
                 }
              }
              #endif
 282          /*********************************************************************************************************
             -********************************************
 283          *LED屏从右到左添加列=逐列显示
 284          **********************************************************************************************************
             -*******************************************/
 285          #ifdef PRINT_L_LIE
              void print_l_lie(struct windows xdata *pt) //new
              {
                  uchar data   ii=0;
                      uchar data   DATA;
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 6   

                  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 += (LIEDIP/8 - 1);
                                              ptr_s -= pt->lie;
                                              DATA = 0x01<<pt->bit_cont;
                                              if(DATA & *ptr_s) pt->PRINT2_R[ii][LIEDIP/8-1-pt->lie] |= DATA;
                                                 else pt->PRINT2_R[ii][LIEDIP/8-1-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 += (LIEDIP/8 - 1);
                                              ptr_s -= pt->lie;
                                              DATA = 0x01<<pt->bit_cont;
                                              if(DATA & *ptr_s) pt->PRINT1_R[ii][LIEDIP/8-1-pt->lie] |= DATA;
                                                 else pt->PRINT1_R[ii][LIEDIP/8-1-pt->lie] &= ~DATA;
                                       }
                              }
                              //通知打印换页
                              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;
                                      }
                              }
                      }
              }
              #endif
 348          /*********************************************************************************************************
             -********************************************
 349          *LED屏右移动扫描方式    ok
 350          **********************************************************************************************************
C51 COMPILER V7.50   LEDFUTION                                                             11/12/2007 21:01:48 PAGE 7   

             -*******************************************/
 351          #ifdef PRINT_R
              void print_r(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];

⌨️ 快捷键说明

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