📄 ledfution.lst
字号:
C51 COMPILER V7.50 LEDFUTION 11/12/2007 21:01:48 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LEDFUTION
OBJECT MODULE PLACED IN E:\XLED\SOURCE\LEDFUTION.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\XLED\SOURCE\LEDFUTION.C DB SB OE
line level source
1 #include "config.h"
2 extern data struct PRINTLED PRINT_INFOR;
3 extern set_data_l(uchar xdata *pt, uchar xdata *ptr_d, uchar j);
4 extern movedata(uchar xdata *pt, uchar xdata *i, uchar xdata *j);
5 extern adddata(uchar xdata *pt, uchar xdata *i, uchar xdata *j);
6 extern movedata_l(uchar xdata *pt, uchar xdata *i,uchar lie,uchar hang);
7 extern movedata_r(uchar xdata *pt, uchar xdata *i, uchar xdata *j);
8
9 uint system_run; //系统运行监视
10 extern bit rell_print; //可以更新显存标记
11 extern uchar comtimeout;
12
13 #ifdef STATIC
uchar xdata static_print[HANGDIP][LIEDIP/8]; //静态应用的
#endif
16 /*********************************************************************************************************
-********************************************
17 *宏结实,下面是函数开始
18 **********************************************************************************************************
-*******************************************/
19
20
21 static void changpage(struct windows xdata *pt) //new
22 {
23 1
24 1 /*扫描的*/
25 1 CS_RAM=0;
26 1 if(PRINT_INFOR.SWAP == SWAP_PRINT1)
27 1 {
28 2 PRINT_INFOR.PRINTBUF2_R1 =(uchar xdata *)&pt->PRINT2_R[0][0];
29 2 #ifndef ALONE
30 2 PRINT_INFOR.PRINTBUF2_R2 =(uchar xdata *)&pt->PRINT2_R[16][0];
31 2 #endif
32 2 while(PRINT_INFOR.CHANG < pt->movsize[pt->plan]) REBOOT;
33 2 while(!rell_print);
34 2 PRINT_INFOR.CHANG = 0;
35 2 PRINT_INFOR.SWAP = SWAP_PRINT2;
36 2 }
37 1 else
38 1 {
39 2 PRINT_INFOR.PRINTBUF1_R1 =(uchar xdata *)&pt->PRINT1_R[0][0];
40 2 #ifndef ALONE
41 2 PRINT_INFOR.PRINTBUF1_R2 =(uchar xdata *)&pt->PRINT1_R[16][0];
42 2 #endif
43 2 while(PRINT_INFOR.CHANG < pt->movsize[pt->plan]) REBOOT;
44 2 while(!rell_print);
45 2 PRINT_INFOR.CHANG = 0;
46 2 PRINT_INFOR.SWAP = SWAP_PRINT1;
47 2 }
48 1 }
49 /*********************************************************************************************************
-********************************************
50 *LED屏从上到下添加行=逐行显示
51 **********************************************************************************************************
-*******************************************/
C51 COMPILER V7.50 LEDFUTION 11/12/2007 21:01:48 PAGE 2
52 #ifdef PRINT_UP_HANG
void print_up_hang(struct windows xdata *pt) //new
{
uchar xdata *data ptr_s, *ptr_d;
while(1)
{
if(comtimeout != 0) break;
/*数据搬家开始*/
CS_RAM=0;
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[pt->hang][0];
}
else
{
ptr_d = &pt->PRINT1_R[pt->hang][0];
}
/*数据搬家结束*/
ptr_s = &pt->printbuf[pt->plan][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;
}
}
}
#endif
96 /*********************************************************************************************************
-********************************************
97 *LED屏上移动扫描方式 ok
98 **********************************************************************************************************
-*******************************************/
99 #ifdef PRINT_UP
100 void print_up(struct windows xdata *pt) //new
101 {
102 1 uchar xdata *data ptr_s, *ptr_d;
103 1 while(1)
104 1 {
105 2 if(comtimeout != 0) break;
106 2 /*数据搬家开始*/
107 2 if(PRINT_INFOR.SWAP == SWAP_PRINT1)
108 2 {
109 3 ptr_s = &pt->PRINT1_R[1][0];
110 3 ptr_d = &pt->PRINT2_R[0][0];
111 3 movedata(ptr_s,ptr_d,&pt->PRINT2_R[HANGDIP-1][0]); //调用汇编上移动数据
C51 COMPILER V7.50 LEDFUTION 11/12/2007 21:01:48 PAGE 3
112 3 ptr_d = &pt->PRINT2_R[HANGDIP-1][0];
113 3 }
114 2 else
115 2 {
116 3 ptr_s = &pt->PRINT2_R[1][0];
117 3 ptr_d = &pt->PRINT1_R[0][0];
118 3 movedata(ptr_s,ptr_d,&pt->PRINT1_R[HANGDIP-1][0]); //调用汇编上移动数据
119 3 ptr_d = &pt->PRINT1_R[HANGDIP-1][0];
120 3 }
121 2
122 2 /*数据搬家结束*/
123 2 ptr_s = &pt->printbuf[pt->plan][pt->hang*(LIEDIP/8)];
124 2 CS_RAM=0;
125 2 adddata(ptr_s,ptr_d,ptr_d+LIEDIP/8);
126 2
127 2 //通知打印换页
128 2 changpage(pt);
129 2
130 2 if(++pt->hang == HANGDIP)
131 2 {
132 3 PRINT_INFOR.CHANG = 0;
133 3 while(PRINT_INFOR.CHANG < pt->showtime[pt->plan]);
134 3 break;
135 3 }
136 2 }
137 1 }
138 #endif
139 /*********************************************************************************************************
-********************************************
140 *LED屏上移动扫描方式 ok
141 **********************************************************************************************************
-*******************************************/
142 #ifdef PRINT_DOWN
void print_down(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[1][0];
movedata(ptr_s,ptr_d,&pt->PRINT2_R[HANGDIP][0]); //调用汇编下移动数据
}
else
{
ptr_s = &pt->PRINT2_R[0][0];
ptr_d = &pt->PRINT1_R[1][0];
movedata(ptr_s,ptr_d,&pt->PRINT1_R[HANGDIP][0]); //调用汇编下移动数据
}
if(PRINT_INFOR.SWAP == SWAP_PRINT1)
{
ptr_d = &pt->PRINT2_R[0][0];
}
else
{
ptr_d = &pt->PRINT1_R[0][0];
}
/*数据搬家结束*/
ptr_s = &pt->printbuf[pt->plan][(HANGDIP-1-pt->hang)*(LIEDIP/8)];
C51 COMPILER V7.50 LEDFUTION 11/12/2007 21:01:48 PAGE 4
adddata(ptr_s,ptr_d,ptr_d+LIEDIP/8);
//通知打印换页
changpage(pt);
if(++pt->hang == HANGDIP)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -