📄 lcdx1.lst
字号:
235
236 /*-- 文字: V --*/
237 /*-- Small Fonts6; 此字体下对应的点阵为:宽x高=6x10 --*/
238 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
239 0x00,0x0C,0x30,0xC0,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
240
241 /*-- 文字: W --*/
C51 COMPILER V7.07 LCDX1 01/25/2005 13:50:05 PAGE 5
242 /*-- Small Fonts6; 此字体下对应的点阵为:宽x高=6x10 --*/
243 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
244 0x00,0x0C,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
245
246 /*-- 文字: X --*/
247 /*-- Small Fonts6; 此字体下对应的点阵为:宽x高=6x10 --*/
248 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
249 0x00,0x84,0x48,0x30,0x48,0x84,0x00,0x00,0x00,0x00,0x00,0x00,
250
251 /*-- 文字: Y --*/
252 /*-- Small Fonts6; 此字体下对应的点阵为:宽x高=6x10 --*/
253 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
254 0x00,0x04,0x08,0xF0,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
255
256 /*-- 文字: Z --*/
257 /*-- Small Fonts6; 此字体下对应的点阵为:宽x高=6x10 --*/
258 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
259 0x00,0xC4,0xA4,0x94,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
260 };
261
262
263
264 uchar code ectab[]={
265 /*-- 文字: A --*/
266 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
267 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
268 0x00,0xE0,0xFC,0xFC,0xF0,0x80,0x00,0x00,0x02,0x03,0x03,0x00,0x03,0x03,0x02,0x00,
269
270 /*-- 文字: B --*/
271 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
272 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
273 0x04,0xFC,0xFC,0x24,0xFC,0xD8,0x00,0x00,0x02,0x03,0x03,0x02,0x03,0x01,0x00,0x00,
274
275 /*-- 文字: C --*/
276 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
277 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
278 0xF8,0xFC,0x04,0x04,0x0C,0x0C,0x00,0x00,0x01,0x03,0x02,0x02,0x03,0x01,0x00,0x00,
279
280 /*-- 文字: D --*/
281 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
282 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
283 0x04,0xFC,0xFC,0x04,0xFC,0xF8,0x00,0x00,0x02,0x03,0x03,0x02,0x03,0x01,0x00,0x00,
284
285 /*-- 文字: E --*/
286 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
287 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
288 0x04,0xFC,0xFC,0x74,0x7C,0x0C,0x00,0x00,0x02,0x03,0x03,0x02,0x03,0x03,0x00,0x00,
289
290 /*-- 文字: F --*/
291 /*-- 宋体9; 此字体下对应的点阵为:宽x高=8x12 --*/
292 /*-- 高度不是8的倍数,现调整为:宽度x高度=8x16 --*/
293 0x04,0xFC,0xFC,0x74,0x7C,0x0C,0x00,0x00,0x02,0x03,0x03,0x02,0x00,0x00,0x00,0x00,
294
295 };
296
297 /*16*16点阵汉字*/
298 uchar code cctab[]={
299 /*-- 商标图像:D:\hz\徽标3232.bmp --*/
300 /*-- 宽度x高度=32x32 --*/
301 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
302 0x7F,0x7F,0x7F,0x7F,0x7F,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,
303
C51 COMPILER V7.07 LCDX1 01/25/2005 13:50:05 PAGE 6
304 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
305 0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x7F,0x7F,0x7F,0x7F,0x7F,
306
307 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
308 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,
309
310 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
311 0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
312
313 /*-- 文字: 世 --*/
314 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
315 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
316 0x10,0x10,0xFE,0xFE,0x10,0x10,0xFF,0xFF,0x10,0x10,0xFF,0xFF,0x10,0x10,0x00,0x00,
317 0x00,0x00,0x1F,0x1F,0x10,0x10,0x13,0x13,0x11,0x11,0x13,0x13,0x10,0x10,0x00,0x00,
318
319 /*-- 文字: 通 --*/
320 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
321 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
322 0x21,0xE3,0xE6,0x06,0xF9,0xF9,0xAB,0xFF,0xFD,0xAF,0xFB,0xF9,0x00,0x00,0x00,0x00,
323 0x18,0x1F,0x0F,0x18,0x17,0x17,0x10,0x17,0x17,0x14,0x17,0x17,0x10,0x10,0x00,0x00,
324
325 /*-- 文字: 科 --*/
326 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
327 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
328 0x12,0x92,0xD2,0xFF,0xFF,0xD1,0x91,0x92,0xB6,0xA4,0xFF,0xFF,0x40,0x40,0x00,0x00,
329 0x02,0x03,0x01,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,
330
331 /*-- 文字: 技 --*/
332 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
333 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
334 0x08,0x88,0xFF,0xFF,0x48,0x2C,0xE4,0xE4,0x3F,0x3F,0xA4,0xE4,0x64,0x04,0x00,0x00,
335 0x09,0x19,0x1F,0x0F,0x10,0x10,0x18,0x0D,0x07,0x07,0x0D,0x18,0x10,0x10,0x00,0x00,
336 };
337
338
339 uchar code tttt[]=
340 {
341 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
342 0x00,0x00,0x88,0xE8,0x78,0x78,0xE0,0x80,0x00,0x00,0x00,0x10,0x1C,0x1F,0x13,0x02,
343 0x02,0x13,0x1F,0x1C,0x10,0x00,
344
345 /*-- 文字: B --*/
346 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
347 0x00,0x08,0xF8,0xF8,0x88,0x88,0x88,0xF8,0x70,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
348 0x10,0x10,0x1F,0x0F,0x00,0x00,
349
350 /*-- 文字: C --*/
351 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
352 0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,
353 0x10,0x10,0x18,0x08,0x00,0x00,
354
355 /*-- 文字: D --*/
356 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
357 0x00,0x08,0xF8,0xF8,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
358 0x10,0x18,0x0F,0x07,0x00,0x00,
359
360 /*-- 文字: E --*/
361 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
362 0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
363 0x11,0x11,0x18,0x18,0x00,0x00,
364
365 /*-- 文字: F --*/
C51 COMPILER V7.07 LCDX1 01/25/2005 13:50:05 PAGE 7
366 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
367 0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
368 0x11,0x01,0x00,0x00,0x00,0x00,
369
370 };
371
372
373 /*延时子程序,参数C决定延时的长短*/
374 void delay(uchar c)
375 {
376 1 uchar a,b;
377 1 b=c;a=c;
378 1 do
379 1 {
380 2 a--;
381 2 b=c;
382 2 do{b--;}
383 2 while(b!=0);
384 2 }
385 1 while(a!=0);
386 1 }
387
388 /*将VRAM清0*/
389 void clr_lcd()
390 {
391 1 uchar i,j;
392 1 for(j=0;j<8;j++)
393 1 {
394 2 iwlr(0xb8|j);
395 2 iwlr(0x40);
396 2 for(i=0;i<64;i++)
397 2 {dwlr(0);}
398 2 }
399 1 }
400
401 /*在p点处显示或清除一点,参数s为1时显示一点,否则清除一点*/
402 void disp_one_dot(point p,bit s)
403 {
404 1 uchar a;
405 1 if(p.x<128&&p.y<64)
406 1 {
407 2 if(p.x<=63)
408 2 {
409 3 iwl(0xb8|(p.y/8));
410 3 iwl(0x40|p.x);
411 3 a=drl();
412 3 a=drl();
413 3 iwl(0x40|p.x);
414 3 if(s) {dwl(SETBIT(a,p.y%8,1));}
415 3 else{dwl(SETBIT(a,p.y%8,0));}
416 3 }
417 2 else
418 2 {
419 3 iwr(0xb8|(p.y/8));
420 3 iwr(0x40|p.x);
421 3 a=drr();
422 3 a=drr();
423 3 iwr(0x40|(p.x-64));
424 3 if(s) {dwr(SETBIT(a,p.y%8,1));}
425 3 else{dwr(SETBIT(a,p.y%8,0));}
426 3 }
427 2 }
C51 COMPILER V7.07 LCDX1 01/25/2005 13:50:05 PAGE 8
428 1 }
429
430 /*绘直线程序,其中psta,pend分别为直线的两端点,s=1显示直线,s=0清除直线*/
431 draw_line(point psta,point pend,bit s)
432 {
433 1 uchar d_x,d_y;
434 1 signed char err;
435 1 err=0;
436 1 if(psta.y>pend.y)
437 1 {
438 2 d_x=psta.x;d_y=psta.y;psta.x=pend.x;psta.y=pend.y;pend.x=d_x;pend.y=d_y;
439 2 }
440 1 d_y=pend.y-psta.y;
441 1 disp_one_dot(psta,s);
442 1 if(pend.x>=psta.x)
443 1 {
444 2 d_x=pend.x-psta.x;
445 2 if(d_x>=d_y)
446 2 {
447 3 if(d_y==0) psta.y--;
448 3 for(psta.x++;psta.x<=pend.x;psta.x++)
449 3 {
450 4 if(err>=0)
451 4 {
452 5 psta.y++;
453 5 err=err+d_y-d_x;
454 5 }
455 4 else
456 4 {
457 5 err=err+d_y;
458 5 }
459 4 disp_one_dot(psta,s);
460 4 }
461 3 }
462 2 else
463 2 {
464 3 for(psta.y++;psta.y<=pend.y;psta.y++)
465 3 {
466 4 if(err>=0)
467 4 {
468 5 err=err-d_x;
469 5 }
470 4 else
471 4 {
472 5 psta.x++;
473 5 err=err+d_y-d_x;
474 5 }
475 4 disp_one_dot(psta,s);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -