📄 lcdx1.lst
字号:
314
315 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
316 0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x7F,0x7F,0x7F,0x7F,0x7F,
317
C51 COMPILER V7.06 LCDX1 02/28/2007 15:18:19 PAGE 10
318 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
319 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,
320
321 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
322 0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
323
324 /*-- 文字: 世 --*/
325 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
326 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
327 0x10,0x10,0xFE,0xFE,0x10,0x10,0xFF,0xFF,0x10,0x10,0xFF,0xFF,0x10,0x10,0x00,0x00,
328 0x00,0x00,0x1F,0x1F,0x10,0x10,0x13,0x13,0x11,0x11,0x13,0x13,0x10,0x10,0x00,0x00,
329
330 /*-- 文字: 通 --*/
331 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
332 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
333 0x21,0xE3,0xE6,0x06,0xF9,0xF9,0xAB,0xFF,0xFD,0xAF,0xFB,0xF9,0x00,0x00,0x00,0x00,
334 0x18,0x1F,0x0F,0x18,0x17,0x17,0x10,0x17,0x17,0x14,0x17,0x17,0x10,0x10,0x00,0x00,
335
336 /*-- 文字: 科 --*/
337 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
338 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
339 0x12,0x92,0xD2,0xFF,0xFF,0xD1,0x91,0x92,0xB6,0xA4,0xFF,0xFF,0x40,0x40,0x00,0x00,
340 0x02,0x03,0x01,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,
341
342 /*-- 文字: 技 --*/
343 /*-- 宋体11; 此字体下对应的点阵为:宽x高=16x14 --*/
344 /*-- 高度不是8的倍数,现调整为:宽度x高度=16x16 --*/
345 0x08,0x88,0xFF,0xFF,0x48,0x2C,0xE4,0xE4,0x3F,0x3F,0xA4,0xE4,0x64,0x04,0x00,0x00,
346 0x09,0x19,0x1F,0x0F,0x10,0x10,0x18,0x0D,0x07,0x07,0x0D,0x18,0x10,0x10,0x00,0x00,
347 };
348
349 uchar code tttt[]=
350 {
351 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
352 0x00,0x00,0x88,0xE8,0x78,0x78,0xE0,0x80,0x00,0x00,0x00,0x10,0x1C,0x1F,0x13,0x02,
353 0x02,0x13,0x1F,0x1C,0x10,0x00,
354
355 /*-- 文字: B --*/
356 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
357 0x00,0x08,0xF8,0xF8,0x88,0x88,0x88,0xF8,0x70,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
358 0x10,0x10,0x1F,0x0F,0x00,0x00,
359
360 /*-- 文字: C --*/
361 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
362 0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,
363 0x10,0x10,0x18,0x08,0x00,0x00,
364
365 /*-- 文字: D --*/
366 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
367 0x00,0x08,0xF8,0xF8,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
368 0x10,0x18,0x0F,0x07,0x00,0x00,
369
370 /*-- 文字: E --*/
371 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
372 0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
373 0x11,0x11,0x18,0x18,0x00,0x00,
374
375 /*-- 文字: F --*/
376 /*-- Courier12; 此字体下对应的点阵为:宽x高=11x16 --*/
377 0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
378 0x11,0x01,0x00,0x00,0x00,0x00,
379 };
C51 COMPILER V7.06 LCDX1 02/28/2007 15:18:19 PAGE 11
380
381 /*内存RYCOM公司的商标图象*/
382 uchar code rycon_marker[]=
383 {
384 /*-- RYCON公司的商标图像:D:\hz\徽标rycon.bmp --*/
385 /*-- 宽度x高度=32x32 --*/
386 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
387 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,
388
389 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
390 0x03,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,
391
392 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
393 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
394
395 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
396 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
397 };
398
399 /*内存RYCOM公司名称点阵信息*/
400 uchar code rycon_name[]=
401 {
402 /*-- 文字: R --*/
403 /*-- Courier New12; 此字体下对应的点阵为:宽x高=10x16 --*/
404 0x00,0xF8,0xF8,0x08,0x08,0x08,0x08,0xF8,0xF0,0x00,0x00,0x1F,0x1F,0x01,0x01,0x01,
405 0x01,0x0F,0x1E,0x10,
406
407 /*-- 文字: Y --*/
408 /*-- Courier New12; 此字体下对应的点阵为:宽x高=10x16 --*/
409 0x18,0x38,0x60,0xC0,0x80,0x80,0xC0,0x60,0x38,0x18,0x00,0x00,0x00,0x00,0x1F,0x1F,
410 0x00,0x00,0x00,0x00,
411
412 /*-- 文字: C --*/
413 /*-- Courier New12; 此字体下对应的点阵为:宽x高=10x16 --*/
414 0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0x30,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,0x10,
415 0x18,0x0C,0x00,0x00,
416
417 /*-- 文字: O --*/
418 /*-- Courier New12; 此字体下对应的点阵为:宽x高=10x16 --*/
419 0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x07,0x0F,0x18,0x10,0x10,
420 0x18,0x0F,0x07,0x00,
421
422 /*-- 文字: M --*/
423 /*-- Courier New12; 此字体下对应的点阵为:宽x高=10x16 --*/
424 0x00,0xF8,0xF8,0xE0,0x80,0x00,0x00,0x80,0xE0,0xF8,0x00,0x1F,0x1F,0x01,0x07,0x1E,
425 0x1E,0x07,0x01,0x1F,
426 };
427
428 /*延时子程序,参数C决定延时的长短*/
429 void delay(uchar c)
430 {
431 1 uchar a,b;
432 1 b=c;a=c;
433 1 do
434 1 {
435 2 a--;
436 2 b=c;
437 2 do{b--;}
438 2 while(b!=0);
439 2 }
440 1 while(a!=0);
441 1 }
C51 COMPILER V7.06 LCDX1 02/28/2007 15:18:19 PAGE 12
442
443 /*将VRAM清0*/
444 void clr_lcd()
445 {
446 1 uchar i,j;
447 1 for(j=0;j<8;j++)
448 1 {
449 2 iwlr(0xb8|j); /*指令同时写入左右半屏*/
450 2 iwlr(0x40); /*指令同时写入左右半屏*/
451 2 for(i=0;i<64;i++)
452 2 {dwlr(0);} /*显示数据同时写入左右半屏*/
453 2 }
454 1 }
455
456 /*在p点处显示或清除一点,参数s为1时显示一点,否则清除一点*/
457 void disp_one_dot(point p,bit s)
458 {
459 1 uchar a;
460 1 if(p.x<128&&p.y<64)
461 1 {
462 2 if(p.x<=63)
463 2 {
464 3 iwl(0xb8|(p.y/8));
465 3 iwl(0x40|p.x);
466 3 a=drl();
467 3 a=drl();
468 3 iwl(0x40|p.x);
469 3 if(s) {dwl(SETBIT(a,p.y%8,1));}
470 3 else{dwl(SETBIT(a,p.y%8,0));}
471 3 }
472 2 else
473 2 {
474 3 iwr(0xb8|(p.y/8));
475 3 iwr(0x40|p.x);
476 3 a=drr();
477 3 a=drr();
478 3 iwr(0x40|(p.x-64));
479 3 if(s) {dwr(SETBIT(a,p.y%8,1));}
480 3 else{dwr(SETBIT(a,p.y%8,0));}
481 3 }
482 2 }
483 1 }
484
485 /*绘直线程序,其中psta,pend分别为直线的两端点,s=1显示直线,s=0清除直线*/
486 draw_line(point psta,point pend,bit s)
487 {
488 1 uchar d_x,d_y;
489 1 signed char err;
490 1 err=0;
491 1 if(psta.y>pend.y)
492 1 {
493 2 d_x=psta.x; d_y=psta.y;
494 2 psta.x=pend.x; psta.y=pend.y;
495 2 pend.x=d_x; pend.y=d_y;
496 2 }
497 1 d_y=pend.y-psta.y;
498 1 disp_one_dot(psta,s);
499 1 if(pend.x>=psta.x) //直线向右偏
500 1 {
501 2 d_x=pend.x-psta.x;
502 2 if(d_x>=d_y)
503 2 {
C51 COMPILER V7.06 LCDX1 02/28/2007 15:18:19 PAGE 13
504 3 if(d_y==0) psta.y--;
505 3 for(psta.x++;psta.x<=pend.x;psta.x++)
506 3 {
507 4 if(err>=0)
508 4 {
509 5 psta.y++;
510 5 err=err+d_y-d_x;
511 5 }
512 4 else
513 4 {
514 5 err=err+d_y;
515 5 }
516 4 disp_one_dot(psta,s);
517 4 }
518 3 }
519 2 else
520 2 {
521 3 for(psta.y++;psta.y<=pend.y;psta.y++)
522 3 {
523 4 if(err>=0)
524 4 {
525 5 err=err-d_x;
526 5 }
527 4 else
528 4 {
529 5 psta.x++;
530 5 err=err+d_y-d_x;
531 5 }
532 4 disp_one_dot(psta,s);
533 4 }
534 3 }
535 2 }
536 1 else //直线向左偏
537 1 {
538 2 d_x=psta.x-pend.x;
539 2 if(d_x>=d_y)
540 2 {
541 3 if(d_y==0) psta.y--;
542 3 for(psta.x--;psta.x!=pend.x-1;psta.x--)
543 3 {
544 4 if(err<0)
545 4 {
546 5 err=err+d_y;
547 5 }
548 4 else
549 4 {
550 5 psta.y++;
551 5 err=err+d_y-d_x;
552 5 }
553 4 disp_one_dot(psta,s);
554 4 }
555 3 }
556 2 else
557 2 {
558 3 for(psta.y++;psta.y<=pend.y;psta.y++)
559 3 {
560 4 if(err>=0)
561 4 {
562 5 err=err-d_x;
563 5 }
564 4 else
565 4 {
C51 COMPILER V7.06 LCDX1 02/28/2007 15:18:19 PAGE 14
566 5 psta.x--;
567 5 }
568 4 disp_one_dot(psta,s);
569 4 }
570 3 }
571 2 }
572 1 }
573
574 /*绘制一般矩形,其中firp与othp分别为矩形的对角两点坐标,
575 s=1显示矩形,s=0时清除矩形*/
576 void draw_rec(point firp,point othp,bit s)
577 {
578 1 point a; //定义结构体变量a
579 1 a.x=firp.x;
580 1 a.y=othp.y;
581 1 draw_line(firp,a,s);
582 1 draw_line(othp,a,s);
583 1 a.x=othp.x;
584 1 a.y=firp.y;
585 1 draw_line(firp,a,s);
586 1 draw_line(othp,a,s);
587 1 }
588
589 /*p1,p2点指定的矩形区域置1(s=0xff),清除(s=0),其它则取反*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -