📄 nokia.lst
字号:
221 1
222 1 for(CodeID=0;CodeID<hzNum;CodeID++)
223 1 {
224 2 if ((hzIndex[2*CodeID]==UniCode/256)&(hzIndex[2*CodeID+1]==UniCode%256))
225 2 {
226 3 break;
227 3 }
228 2 }
229 1 WriteCommand_8544(0x80+X);
230 1 WriteCommand_8544(0x40+Y);
231 1 for(i=0;i<16;i++)
232 1 { ImgData=hzdot[i+CodeID*32];
233 2 HZ_X++;
234 2 if (HZ_X>84)//如果超出显示边界
235 2 {
236 3 HZ_X=0;
237 3 WriteCommand_8544(0x40+Y+2);//空2行
238 3 }
239 2 WriteData_8544(ImgData);
240 2 }
241 1 WriteCommand_8544(0x80+X);
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 5
242 1 WriteCommand_8544(0x40+Y+1);
243 1 HZ_X=X;
244 1 for(i=16;i<32;i++)
245 1 { ImgData=hzdot[i+CodeID*32];
246 2 HZ_X++;
247 2 if (HZ_X>84)//如果超出显示边界
248 2 {
249 3 HZ_X=0;
250 3 WriteCommand_8544(0x40+Y+3);//空2行
251 3 }
252 2 WriteData_8544(ImgData);
253 2 }
254 1 }
255 //-------------显示ASCII(8X16)------(字符 起始位置XY)-------------------------
256 void Display_ASCII(unsigned char Char,unsigned char X,unsigned char Y)
257 {
258 1 unsigned int Position;
259 1 unsigned char i,ImgData;
260 1 unsigned char HZ_X=X;
261 1 WriteCommand_8544(0x80+X);
262 1 WriteCommand_8544(0x40+Y);
263 1 // Position=Y*16+X;
264 1 for(i=0;i<8;i++)
265 1 { ImgData=chardot[i+(Char-0x20)*16];
266 2 HZ_X++;
267 2 if (HZ_X>84)//如果超出显示边界
268 2 {
269 3 HZ_X=0;
270 3 WriteCommand_8544(0x40+Y+2);//空2行
271 3 }
272 2 WriteData_8544(ImgData);
273 2 }
274 1 WriteCommand_8544(0x80+X);
275 1 WriteCommand_8544(0x40+Y+1);
276 1 HZ_X=X;
277 1 for(i=8;i<16;i++)
278 1 { ImgData=chardot[i+(Char-0x20)*16];
279 2 HZ_X++;
280 2 if (HZ_X>84)//如果超出显示边界
281 2 {
282 3 HZ_X=0;
283 3 WriteCommand_8544(0x40+Y+3);//空2行
284 3 }
285 2 WriteData_8544(ImgData);
286 2 }
287 1 }
*** WARNING C280 IN LINE 258 OF NOKIA.C: 'Position': unreferenced local variable
288 //-------------显示字符串,允许中英文混排------(字符串 起始位置XY,字符串长度)-------------------------
289 void Display_String(unsigned char code *p,unsigned char X,unsigned int Y,unsigned char lenth)
290 { unsigned char i;
291 1 //unsigned int Position;
292 1 for(i=0;i<lenth;i++)
293 1 {
294 2 if (X>=84){X=0;Y+=2;}
295 2 if(p[i]<0x80)
296 2 {
297 3 Display_ASCII(p[i],X,Y); //ASCII
298 3 X+=8;
299 3 }
300 2 else
301 2 {
302 3 Display_Chinese(p[i]*256+p[i+1],X,Y);//中文
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 6
303 3 i++;
304 3 X+=16;
305 3 }
306 2
307 2 }
308 1
309 1 }
310 //-------------显示不带符号的整数------(数字 起始位置XY,显示长度)-------------------------
311 void Display_Number(unsigned int Number,char X,unsigned int Y,unsigned char Lenth)
312 { unsigned char DispNum;
313 1 Y=Y+((X+Lenth*8-8)/84)*2;
314 1 X=(X+Lenth*8-8)%84;
315 1
316 1 for(;Lenth>0;Lenth--)
317 1 {
318 2
319 2 DispNum=Number%10+0x30;
320 2 Display_ASCII(DispNum,X,Y);
321 2 X-=8;
322 2 if (X<0) { Y-=2;X+=84;}
323 2 Number=Number/10;
324 2 }
325 1 }
326 //-------------显示带符号的整数------(数字 起始位置XY,显示长度)-------------------------
327 void Display_SignedNumber(int Number,unsigned char X,unsigned int Y,unsigned char Lenth)
328 {
329 1 if(Number<0)
330 1 {
331 2 Display_Number(-Number,X,Y,Lenth);
332 2 Display_ASCII('-',X-8,Y);
333 2 }
334 1 else
335 1 {
336 2 Display_Number(Number,X,Y,Lenth);
337 2 Display_ASCII(' ',X-8,Y);
338 2 }
339 1 }
340 //-------------显示不带符号的小数------(数字 起始位置XY,整数位数,小数位数)-------------------------
341 void Display_Decimal(unsigned long int Number,char X,unsigned int Y,unsigned char INT,unsigned char DEC)
342 { unsigned char DispNum,Lenth;
343 1
344 1
345 1 Y=Y+((X+INT*8+DEC*8)/84)*2;
346 1 X=(X+(INT+DEC)*8)%84;
347 1
348 1 for(Lenth=DEC;Lenth>0;Lenth--)
349 1 {
350 2
351 2 DispNum=Number%10+0x30;
352 2 Display_ASCII(DispNum,X,Y);
353 2 X-=8;
354 2 if (X<0) { Y-=2;X+=84;}
355 2 Number=Number/10;
356 2 }
357 1 Display_ASCII('.',X,Y);
358 1 X-=8;
359 1 if (X<0) { Y-=2;X+=84;}
360 1 for(Lenth=INT;Lenth>0;Lenth--)
361 1 {
362 2
363 2 DispNum=Number%10+0x30;
364 2 Display_ASCII(DispNum,X,Y);
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 7
365 2 X-=8;
366 2 if (X<0) { Y-=2;X+=84;}
367 2 Number=Number/10;
368 2 }
369 1
370 1
371 1 }
372 //-------------显示带符号的小数------(数字 起始位置XY,整数位数,小数位数)-------------------------
373 void Display_SignedDecimal(long int Number,char X,unsigned int Y,unsigned char INT,unsigned char DEC)
374 {
375 1 if(Number<0)
376 1 {
377 2 Display_Decimal(-Number,X,Y,INT,DEC);
378 2 Display_ASCII('-',X-8,Y);
379 2 }
380 1 else
381 1 {
382 2 Display_Decimal(Number,X,Y,INT,DEC);
383 2 Display_ASCII(' ',X-8,Y);
384 2 }
385 1 }
386 void main()
387 {
388 1 Reset_8544();
389 1 WriteExtendCommand_8544(0xc6);//Vop
390 1 WriteCommand_8544(0x0c);//Norm
391 1 while(1)
392 1 { CLS_LCM();
393 2 Display_String("显示汉字",10,2,8);
394 2 Delay(2000);
395 2 CLS_LCM();
396 2 Display_String("Display",14,1,7);
397 2 Display_String("English",14,3,7);
398 2 Delay(2000);
399 2 CLS_LCM();
400 2 Display_String("显示图片",10,2,8);
401 2 Delay(2000);
402 2 CLS_LCM();
403 2 Display_Image(IMG);
404 2 Delay(2000);
405 2 CLS_LCM();
406 2 Display_String("显示压缩",10,1,8);
407 2 Display_String("图片",26,3,4);
408 2 Delay(2000);
409 2 CLS_LCM();
410 2 Display_ZipImage(ZIPIMG);
411 2 Delay(2000);
412 2 CLS_LCM();
413 2
414 2 Display_String("显示图标",10,4,8);
415 2 Display_Icon(ICON,26,0);
416 2 Delay(2000);
417 2 CLS_LCM();
418 2 Display_String("Number:",10,0,7);
419 2 Display_Number(54321,8,2,5);
420 2 Display_SignedNumber(-12345,8,4,5);
421 2 Delay(2000);
422 2 CLS_LCM();
423 2 Display_String("Decimal:",10,0,8);
424 2 Display_Decimal(45678,8,2,2,3);
425 2 Display_SignedDecimal(-98765432,8,4,5,3);
426 2 Delay(2000);
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 8
427 2 CLS_LCM();
428 2 }
429 1 }
430
431
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1945 ----
CONSTANT SIZE = 2970 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 65
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -