📄 main.lst
字号:
341 3 }
342 2 lcdPosX = 0x88;
343 2 }
344 1 lcd_wri(0x36);
345 1 lcd_wri(0x30);
346 1
347 1 }
348
349 //===============================================
350
351 void showPhoto (unsigned char cx,cy,high,width ,unsigned char *bmp)//指定位置显示小图
352 {
353 1 lcd_wri(0x34);
354 1 lcdPosX = cx;//(0x80--------0x8F)
355 1 if (cy==0)
356 1 {
357 2 lcdPosY=0x80;
358 2 }
359 1 else if(cy==1)
360 1 {
361 2 lcdPosY=0x90;
362 2 }
363 1 else if(cy==2)
364 1 {
365 2 lcdPosY=0x80;
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 7
366 2 }
367 1 else if(cy==3)
368 1 {
369 2 lcdPosY=0x90;
370 2 }
371 1 //lcdPosY = cy;//(lcdposx+(0-----32)
372 1 width= 16*width/8;
373 1 halfLineCnt =high*16;
374 1 for (;halfLineCnt != 0; halfLineCnt--)
375 1 {
376 2 basicBlock =width;//指的是块(块是8点),2*8=16点
377 2 wrPosition ();//指定坐标
378 2
379 2 for (; basicBlock != 0; basicBlock--)
380 2 {
381 3
382 3 lcd_wrd (*bmp++);//读入一个字符数据
383 3
384 3
385 3 }
386 2 lcdPosY++;
387 2
388 2 }
389 1 lcd_wri(0x36);//打开绘图模式
390 1 lcd_wri(0x30);//写入基本指令
391 1
392 1 }
393 //===============================================
394 void convertChar (unsigned char CX, CY, width)
395 {
396 1 //displayPhoto(0,1);
397 1
398 1 lcdPosY = 0x80;
399 1
400 1 if (CX == 0)
401 1 {
402 2 CX = 0x80;
403 2 halfLineCnt = 16;
404 2 }
405 1 else if (CX == 1)
406 1 {
407 2 CX = 0x80;
408 2 halfLineCnt = 32;
409 2 }
410 1 else if (CX == 2)
411 1 {
412 2 CX = 0x88;
413 2 halfLineCnt = 16;
414 2 }
415 1 else if (CX == 3)
416 1 {
417 2 CX = 0x88;
418 2 halfLineCnt = 32;
419 2 }
420 1 lcdPosX = CX + CY;
421 1
422 1 for (; halfLineCnt != 0; halfLineCnt--)
423 1 {
424 2 basicBlock = width;
425 2 wrPosition();
426 2
427 2 for (;basicBlock != 0; basicBlock--)
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 8
428 2 {
429 3 if (halfLineCnt > 16)
430 3 {
431 4 lcd_wrd(0x00);
432 4 }
433 3 else
434 3 {
435 4 lcd_wrd (0xff);
436 4 }
437 3 }
438 2 lcdPosY++;
439 2 }
440 1
441 1 lcd_wri(0x36);
442 1 // lcd_wri(0x30);
443 1 }
444 //===============================================
445 void wrPosition (void)
446 {
447 1 lcd_wri(0x34);
448 1 lcd_wri(lcdPosY);
449 1 lcd_wri(lcdPosX);
450 1 lcd_wri(0x30);
451 1 }
452 //===============================================
453 void dispString (unsigned char X, Y, speed, unsigned char *msg)
454 {
455 1 if (X == 0)
456 1 {
457 2 X = 0x80;
458 2 }
459 1 else if (X == 1)
460 1 {
461 2 X = 0x90;
462 2 }
463 1 else if (X == 2)
464 1 {
465 2 X = 0x88;
466 2 }
467 1 else if (X == 3)
468 1 {
469 2 X = 0x98;
470 2 }
471 1 Y = X + Y;
472 1 lcd_wri(Y);
473 1 while (*msg)
474 1 {
475 2 lcd_wrd(*msg++);
476 2 delayMs(speed);
477 2 }
478 1 }
479 //===============================================
480
481 //===============================================
482 void delayMs (unsigned char ms)
483 {
484 1 unsigned char i;
485 1 while (--ms)
486 1 {
487 2 for (i = 0; i < 125; i++);
488 2 }
489 1 }
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 9
490 //===============================================
491 void delaySec (unsigned char sec)
492 {
493 1 unsigned char i;
494 1 while (--sec)
495 1 {
496 2 for (i = 0; i < 200; i++)
497 2 {
498 3 delayMs (6);
499 3 }
500 2 }
501 1 }
502 //===============================================
503 void lcd_nop(void)
504 {
505 1 _nop_();
*** WARNING C206 IN LINE 505 OF MAIN.C: '_nop_': missing function-prototype
*** ERROR C264 IN LINE 505 OF MAIN.C: intrinsic '_nop_': declaration/activation error
506 1 _nop_();
507 1 _nop_();
508 1 _nop_();
509 1 _nop_();
510 1 _nop_();
511 1 _nop_();
512 1 _nop_();
513 1 _nop_();
514 1 _nop_();
515 1 _nop_();
516 1 }
517
518 void lcd_wri(unsigned char indata)
519 {
520 1 bitLCDcs = 0;
*** ERROR C202 IN LINE 520 OF MAIN.C: 'bitLCDcs': undefined identifier
521 1 lcd_nop();
522 1 bitLCDcs = 1;
*** ERROR C202 IN LINE 522 OF MAIN.C: 'bitLCDcs': undefined identifier
523 1 lcd_nop();
524 1 lcd_wbyte(0xf8);
525 1 lcd_wbyte(indata & 0xf0);
526 1 lcd_wbyte((indata << 4) & 0xf0);
527 1 }
528
529
530 void lcd_wrd(unsigned char indata)
531 {
532 1 bitLCDcs = 0;
*** ERROR C202 IN LINE 532 OF MAIN.C: 'bitLCDcs': undefined identifier
533 1 lcd_nop();
534 1 bitLCDcs = 1;
*** ERROR C202 IN LINE 534 OF MAIN.C: 'bitLCDcs': undefined identifier
535 1 lcd_nop();
536 1 lcd_wbyte(0xfa);
537 1 lcd_wbyte(indata & 0xf0);
538 1 lcd_wbyte((indata << 4) & 0xf0);
539 1 }
540
541
542 void lcd_wbyte(unsigned char sendbyte)
543 {
544 1 unsigned char data j=8;
545 1 for(;j>0;j--)
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 10
546 1 {
547 2 lcd_nop();
548 2 sendbyte<<=1; //无论C51怎样实现这个操作,始终会使CY=sendbyte^7;
549 2 bitLCDsid=CY;
*** ERROR C202 IN LINE 549 OF MAIN.C: 'bitLCDsid': undefined identifier
550 2 lcd_nop();
551 2 bitLCDsclk=0;
*** ERROR C202 IN LINE 551 OF MAIN.C: 'bitLCDsclk': undefined identifier
552 2 lcd_nop();
553 2 bitLCDsclk=1;
*** ERROR C202 IN LINE 553 OF MAIN.C: 'bitLCDsclk': undefined identifier
554 2 lcd_nop();
555 2 bitLCDsclk=0;
*** ERROR C202 IN LINE 555 OF MAIN.C: 'bitLCDsclk': undefined identifier
556 2 lcd_nop();
557 2 }
558 1 }
559
560
561 void lcd_delay(void)
562 {
563 1 delay_ms(1);
564 1 }
565
566
567 void delay_ms(unsigned char k)
568 {
569 1 unsigned char i;
570 1 unsigned char j;
571 1 for ( ; k>0 ; k--)
572 1 {
573 2 for (i=0x0c ; i>0 ; i--)
574 2 {
575 3 for (j=0xe5 ; j>0 ; j--)
576 3 {
577 4 }
578 3 }
579 2 }
580 1 }
581
582
583
584
585
586 void alldisplayPhoto (unsigned char *bmp, unsigned char bmpCls)
587
588 {
589 1
590 1 lcdPosX = 0x80;
591 1 halfScr = 2;
592 1
593 1 for (;halfScr != 0; halfScr--)
594 1 {
595 2 lcdClear ();
596 2 lcdPosY = 0x80;
597 2 halfLineCnt = 32;
598 2
599 2 for (;halfLineCnt != 0; halfLineCnt--)
600 2 {
601 3 basicBlock = 16;
602 3 wrPosition ();
603 3
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 11
604 3 for (; basicBlock != 0; basicBlock--)
605 3 {
606 4 if (bmpCls == 0)
607 4 {
608 5 lcd_wrd (*bmp++);
609 5 }
610 4 else if (bmpCls == 1)
611 4 {
612 5 lcd_wrd (0x00);
613 5 }
614 4 }
615 3 lcdPosY++;
616 3 }
617 2 lcdPosX = 0x88;
618 2 }
619 1 lcd_wri(0x36);
620 1 lcd_wri(0x30);
621 1
622 1 }
623
624
625 void clearChar (unsigned char CX, CY, width)
626 {
627 1 lcd_wri(0x36);
628 1 lcdPosY = 0x80;
629 1
630 1 if (CX == 0)
631 1 {
632 2 CX = 0x80;
633 2 halfLineCnt = 16;
634 2 }
635 1 else if (CX == 1)
636 1 {
637 2 CX = 0x80;
638 2 halfLineCnt = 32;
639 2 }
640 1 else if (CX == 2)
641 1 {
642 2 CX = 0x88;
643 2 halfLineCnt = 16;
644 2 }
645 1 else if (CX == 3)
646 1 {
647 2 CX = 0x88;
648 2 halfLineCnt = 32;
649 2 }
650 1 lcdPosX = CX + CY;
651 1
652 1 for (; halfLineCnt != 0; halfLineCnt--)
653 1 {
654 2 basicBlock = width;
655 2 wrPosition();
656 2
657 2 for (;basicBlock != 0; basicBlock--)
658 2 {
659 3 if (halfLineCnt > 16)
660 3 {
661 4 lcd_wrd(0x00);
662 4 }
663 3 else
664 3 {
665 4 lcd_wrd (0x00);
C51 COMPILER V7.50 MAIN 09/02/2007 20:03:07 PAGE 12
666 4 }
667 3 }
668 2 lcdPosY++;
669 2 }
670 1
671 1 lcd_wri(0x36);
672 1 //lcd_wri(0x30);
673 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 9 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -