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