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