📄 display8.lst
字号:
C51 COMPILER V7.50 DISPLAY8 05/16/2007 21:32:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DISPLAY8
OBJECT MODULE PLACED IN display8.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display8.c BROWSE DEBUG OBJECTEXTEND
line level source
1 void putsizeimage(unsigned char XSIZE,unsigned char YSIZE,unsigned char code *s)
2 { unsigned char k,lx,ly,a1,a2,x;
3 1 k=Lcd_CurrentX&0x7;
*** ERROR C202 IN LINE 3 OF DISPLAY8.C: 'Lcd_CurrentX': undefined identifier
4 1 XSIZE+=k;
5 1 x=Lcd_CurrentX;
*** ERROR C202 IN LINE 5 OF DISPLAY8.C: 'Lcd_CurrentX': undefined identifier
6 1 for(ly=0;ly<YSIZE;ly++,Lcd_CurrentY++)
*** ERROR C202 IN LINE 6 OF DISPLAY8.C: 'Lcd_CurrentY': undefined identifier
7 1 for(Lcd_CurrentX=x,lx=k,a1=0;lx<XSIZE;s++)
*** ERROR C202 IN LINE 7 OF DISPLAY8.C: 'Lcd_CurrentX': undefined identifier
8 1 { unsigned char p;
9 2 a2=*s;
10 2 for(p=0;p<k;p++)
11 2 { a2>>=1;
12 3 if((a1&0x1)==1)
13 3 a2+=0x80;
14 3 a1>>=1;
15 3 }
16 2 lcdpos();
17 2 p=XSIZE&0x7;
18 2 if(lx<8)
19 2 { if(XSIZE<8)
20 3 { Lcd_Mask=LeftMask[k]&RightMask[p];
21 4 a1=lcdrd();
22 4 a1&=(~Lcd_Mask);
23 4 a1|=(a2&Lcd_Mask);
24 4 lcdwd(a1);
25 4 lx=XSIZE;
26 4 Lcd_CurrentX+=XSIZE-k;
27 4 }
28 3 else //XSIZE>=8
29 3 { Lcd_Mask=LeftMask[k];
30 4 a1=lcdrd();
31 4 a1&=(~Lcd_Mask);
32 4 a1|=(a2&Lcd_Mask);
33 4 lcdwd(a1);
34 4 lx+=8-k;
35 4 Lcd_CurrentX+=8-k;
36 4 }
37 3 }
38 2 else if(lx>=XSIZE-p) //lx>=8
39 2 { if(k>=p)
40 3 { s--;
41 4 a1=*s;
42 4 a2=0;
43 4 for(p=0;p<k;p++)
44 4 { a2>>=1;
45 5 if((a1&1)==1)
46 5 a2+=0x80;
47 5 a1>>=1;
48 5 }
49 4 p=XSIZE&0x7;
50 4 }
51 3 Lcd_Mask=RightMask[p];
C51 COMPILER V7.50 DISPLAY8 05/16/2007 21:32:45 PAGE 2
52 3 a1=lcdrd();
53 3 a1&=(~Lcd_Mask);
54 3 a1|=(a2&Lcd_Mask);
55 3 lcdwd(a1);
56 3 lx+=p;
57 3 Lcd_CurrentX+=p;
58 3 }
59 2 else //lx>=8 and lx<XSIZE-p
60 2 { lcdwd(a2);
61 3 lx+=8;
62 3 Lcd_CurrentX+=8;
63 3 }
64 2 a1=*s;
65 2 }
66 1 Lcd_CurrentY-=YSIZE;
67 1 }
68
69 void displaychinesechardot(unsigned int Index)
70 { unsigned char code *s;
71 1 s=ChineseCharDot+Index*CHINESECHARDOTSIZE;
72 1 if(Lcd_CurrentX>LCD_RIGHT-CHINESECHARSIZE+1)
73 1 { Lcd_CurrentX=LCD_LEFT;
74 2 Lcd_CurrentY+=CHINESECHARSIZE;
75 2 if(Lcd_CurrentY > LCD_BOTTOM-CHINESECHARSIZE+1)
76 2 Lcd_CurrentY=LCD_TOP;
77 2 }
78 1 putsizeimage(CHINESECHARSIZE,CHINESECHARSIZE,s);
79 1 }
80
81 void displayenglishchardot(unsigned int Index)
82 { unsigned char code *s;
83 1 s=EnglishCharDot+Index*ENGLISHCHARDOTSIZE;
84 1 if(Lcd_CurrentX>LCD_RIGHT-ENGLISHCHARSIZE+1)
85 1 { Lcd_CurrentX=LCD_LEFT;
86 2 Lcd_CurrentY+=CHINESECHARSIZE;
87 2 if(Lcd_CurrentY>LCD_BOTTOM-CHINESECHARSIZE+1)
88 2 Lcd_CurrentY=LCD_TOP;
89 2 }
90 1 putsizeimage(ENGLISHCHARSIZE,CHINESECHARSIZE,s);
91 1 }
92
93 //信息显示
94 void putchar(unsigned int uChar)
95 { unsigned int i;
96 1 if(uChar<128)
97 1 for(i=0;i!=ENGLISHCHARNUMBER;i++)
98 1 { if(uChar==EnglishCode[i])
99 2 { displayenglishchardot(i);
100 3 break;
101 3 }
102 2 }
103 1 else
104 1 for(i=0;i!=CHINESECHARNUMBER;i++)
105 1 { if(uChar==ChineseCode[i])
106 2 { displaychinesechardot(i);
107 3 break;
108 3 }
109 2 }
110 1 }
111
112 //显示汉字或英文字符
113 void put_str(unsigned char code *s)
C51 COMPILER V7.50 DISPLAY8 05/16/2007 21:32:45 PAGE 3
114 { unsigned int i;
115 1 for(;*s!=0;s++)
116 1 { i=*s;
117 2 if(*s>127)
118 2 { s++;
119 3 i=i*256+*s;
120 3 }
121 2 if(i=='\n')
122 2 { Lcd_CurrentX=LCD_LEFT;
123 3 if(Lcd_CurrentY>LCD_BOTTOM-CHINESECHARSIZE+1)
124 3 Lcd_CurrentY=LCD_TOP;
125 3 else
126 3 Lcd_CurrentY+=CHINESECHARSIZE;
127 3 }
128 2 putchar(i);
129 2 }
130 1 }
131
132 //显示汉字或英文字符
133 void put_str_xy(unsigned char x,unsigned char y,unsigned char code *s)
134 { Lcd_CurrentX=x;
135 1 Lcd_CurrentY=y;
136 1 put_str(s);
137 1 }
138
139
C51 COMPILATION COMPLETE. 0 WARNING(S), 4 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -