67 #define GLCD_DATA_WRITE LATD
68 #define GLCD_DATA_READ PORTD
69 #define GLCD_DATA_DIRECTION TRISD
71 #define GLCD_D_I LATAbits.LATA3
72 #define GLCD_R_W LATAbits.LATA4
73 #define GLCD_E LATAbits.LATA5
74 #define GLCD_CS1 LATEbits.LATE0
75 #define GLCD_CS2 LATEbits.LATE1
76 #define GLCD_RST LATEbits.LATE2
77 #define GLCD_LED LATCbits.LATC1
86 #define NUMBER_OF_PAGES 8
87 #define X_RESOLUTION 128
88 #define Y_RESOLUTION 64
90 #define CONTROLLER_MAX_X 64
97 #define ENABLE_FONT_5x7
105 #define GLCD_FONT_WIDTH_5 5
106 #define GLCD_FONT_HEIGTH_7 7
108 #define GLCD_FONT_SPACE 1
115 #define COMM_DISPLAY_ON 0b00111111
116 #define COMM_DISPLAY_OFF 0b00111110
118 #define COMM_PAGE_SELECT 0b10111000
120 #define COMM_ADDRESS_SELECT 0b01000000
122 #define COMM_START_LINE 0b11000000
129 #define GLCD_BUSY_FLAG 0x80
137 #define TURN_ON_LED_GLCD 0b00000001
138 #define TURN_OFF_LED_GLCD 0b00000000
140 #define TURN_ON_DISPLAY 0b00000001
141 #define TURN_OFF_DISPLAY 0b00000000
143 #define HIGH 0b00000001
144 #define LOW 0b00000000
146 #define ENABLE_GLCD 0b00000001
147 #define DISABLE_GLCD 0b00000000
149 #define ENABLE_RESET_GLCD 0b00000000
150 #define DISABLE_RESET_GLCD 0b00000001
152 #define GLCD_CHIP_SELECT_1 0x00
153 #define GLCD_CHIP_SELECT_2 0x01
155 #define FILLING_WHITE 0x00
156 #define FILLING_BLACK 0xFF
186 void clear_GLCD (
unsigned char filling_color);
238 void plot_xy_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char filling_color);
258 void draw_horizontal_line_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
278 void draw_vertical_line_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
300 void draw_window_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
322 void draw_box_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
353 void write_char_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char character);
370 void write_string_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char * character_array);
386 void write_message_GLCD (
unsigned char x_pos,
unsigned char y_pos,
const rom
unsigned char * character);
390 void write_message_GLCD (
unsigned char x_pos,
unsigned char y_pos,
const unsigned char * character);
407 void write_integer_GLCD (
unsigned char x_pos,
unsigned char y_pos,
int value,
char number_of_digits);
421 void set_font_GLCD (
unsigned char width,
unsigned char height);
527 #ifdef ENABLE_FONT_5x7
534 const unsigned char font_5x7[96][5] = {
537 0x00,0x00,0x00,0x00,0x00,
538 0x00,0x00,0x5f,0x00,0x00,
539 0x00,0x03,0x00,0x03,0x00,
540 0x14,0x7f,0x14,0x7f,0x14,
541 0x24,0x2a,0x7f,0x2a,0x12,
542 0x23,0x13,0x08,0x64,0x62,
543 0x36,0x49,0x55,0x22,0x50,
544 0x00,0x05,0x03,0x00,0x00,
545 0x00,0x1c,0x22,0x41,0x00,
546 0x00,0x41,0x22,0x1c,0x00,
547 0x14,0x08,0x3e,0x08,0x14,
548 0x08,0x08,0x3e,0x08,0x08,
549 0x00,0x50,0x30,0x00,0x00,
550 0x08,0x08,0x08,0x08,0x08,
551 0x00,0x60,0x60,0x00,0x00,
552 0x20,0x10,0x08,0x04,0x02,
553 0x3e,0x51,0x49,0x45,0x3e,
554 0x00,0x42,0x7f,0x40,0x00,
555 0x42,0x61,0x51,0x49,0x46,
556 0x21,0x41,0x45,0x4b,0x31,
557 0x18,0x14,0x12,0x7f,0x10,
558 0x27,0x45,0x45,0x45,0x39,
559 0x3c,0x4a,0x49,0x49,0x30,
560 0x01,0x71,0x09,0x05,0x03,
561 0x36,0x49,0x49,0x49,0x36,
562 0x06,0x49,0x49,0x29,0x1e,
563 0x00,0x36,0x36,0x00,0x00,
564 0x00,0x56,0x36,0x00,0x00,
565 0x08,0x14,0x22,0x41,0x00,
566 0x14,0x14,0x14,0x14,0x14,
567 0x00,0x41,0x22,0x14,0x08,
568 0x02,0x01,0x51,0x09,0x06,
569 0x32,0x49,0x79,0x41,0x3e,
570 0x7e,0x11,0x11,0x11,0x7e,
571 0x7f,0x49,0x49,0x49,0x36,
572 0x3e,0x41,0x41,0x41,0x22,
573 0x7f,0x41,0x41,0x22,0x1c,
574 0x7f,0x49,0x49,0x49,0x41,
575 0x7f,0x09,0x09,0x09,0x01,
576 0x3e,0x41,0x49,0x49,0x7a,
577 0x7f,0x08,0x08,0x08,0x7f,
578 0x00,0x41,0x7f,0x41,0x00,
579 0x20,0x40,0x41,0x3f,0x01,
580 0x7f,0x08,0x14,0x22,0x41,
581 0x7f,0x40,0x40,0x40,0x40,
582 0x7f,0x02,0x0c,0x02,0x7f,
583 0x7f,0x04,0x08,0x10,0x7f,
584 0x3e,0x41,0x41,0x41,0x3e,
585 0x7f,0x09,0x09,0x09,0x06,
586 0x3e,0x41,0x51,0x21,0x5e,
587 0x7f,0x09,0x19,0x29,0x46,
588 0x46,0x49,0x49,0x49,0x31,
589 0x01,0x01,0x7f,0x01,0x01,
590 0x3f,0x40,0x40,0x40,0x3f,
591 0x1f,0x20,0x40,0x20,0x1f,
592 0x3f,0x40,0x38,0x40,0x3f,
593 0x63,0x14,0x08,0x14,0x63,
594 0x07,0x08,0x70,0x08,0x07,
595 0x61,0x51,0x49,0x45,0x43,
596 0x00,0x7f,0x41,0x41,0x00,
597 0x02,0x04,0x08,0x10,0x20,
598 0x00,0x41,0x41,0x7f,0x00,
599 0x04,0x02,0x01,0x02,0x04,
600 0x40,0x40,0x40,0x40,0x40,
601 0x00,0x01,0x02,0x04,0x00,
602 0x20,0x54,0x54,0x54,0x78,
603 0x7f,0x48,0x44,0x44,0x38,
604 0x38,0x44,0x44,0x44,0x00,
605 0x38,0x44,0x44,0x48,0x7f,
606 0x38,0x54,0x54,0x54,0x18,
607 0x08,0x7e,0x09,0x01,0x02,
608 0x0c,0x52,0x52,0x52,0x3e,
609 0x7f,0x08,0x04,0x04,0x78,
610 0x00,0x44,0x7d,0x40,0x00,
611 0x20,0x40,0x44,0x3d,0x00,
612 0x7f,0x10,0x28,0x44,0x00,
613 0x00,0x41,0x7f,0x40,0x00,
614 0x7c,0x04,0x18,0x04,0x78,
615 0x7c,0x08,0x04,0x04,0x78,
616 0x38,0x44,0x44,0x44,0x38,
617 0x7c,0x14,0x14,0x14,0x08,
618 0x08,0x14,0x14,0x18,0x7c,
619 0x7c,0x08,0x04,0x04,0x08,
620 0x48,0x54,0x54,0x54,0x20,
621 0x04,0x3f,0x44,0x40,0x20,
622 0x3c,0x40,0x40,0x20,0x7c,
623 0x1c,0x20,0x40,0x20,0x1c,
624 0x3c,0x40,0x30,0x40,0x3c,
625 0x44,0x28,0x10,0x28,0x44,
626 0x0c,0x50,0x50,0x50,0x3c,
627 0x44,0x64,0x54,0x4c,0x44,
628 0x00,0x08,0x36,0x41,0x00,
629 0x00,0x00,0x7f,0x00,0x00,
630 0x00,0x41,0x36,0x08,0x00,
631 0x10,0x08,0x08,0x10,0x08,
632 0x00,0x00,0x02,0x05,0x02};
634 #endif // ENABLE_FONT_5x7
648 const unsigned char logo_1 [] = {
651 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
652 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
653 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
654 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
655 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
656 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
657 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
658 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
659 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
660 0x30, 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
661 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
662 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
663 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0x70, 0x30, 0x30,
664 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x70, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
665 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
666 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
667 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
668 0xFC, 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x40, 0x00, 0xE0, 0xF0, 0xF8,
669 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x86, 0xEE, 0xFC, 0xFE, 0xFE, 0x3E, 0x06, 0x08, 0x0C, 0xCC, 0xFC,
670 0xFC, 0xFE, 0x3E, 0x06, 0x00, 0xC0, 0xF8, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x0C, 0x8C, 0xFC,
671 0xFC, 0xFE, 0x3E, 0x0E, 0x04, 0x06, 0x1E, 0x1E, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xFC,
672 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0xE3, 0xF0, 0xF8, 0xFC, 0xFC, 0xDE,
673 0xC6, 0xE6, 0x7E, 0x7E, 0x7C, 0x3C, 0x00, 0xE0, 0xF0, 0xF8, 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x1E,
674 0x3E, 0x3C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
675 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0F,
676 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x03, 0x07, 0x0F,
677 0x0F, 0x0C, 0x0C, 0x0C, 0x06, 0x07, 0x0F, 0x0F, 0x0F, 0x0D, 0x0C, 0x06, 0x04, 0x02, 0x07, 0x0F,
678 0x0F, 0x0F, 0x0C, 0x04, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x08, 0x00, 0x0C, 0x0F, 0x0F,
679 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0F, 0x0F,
680 0x0F, 0x0F, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C,
681 0x0C, 0x0C, 0x06, 0x06, 0x02, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C, 0x0C, 0x0C, 0x06,
682 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
683 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
684 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
685 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
686 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
687 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
688 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
689 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
690 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
691 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
692 0xFE, 0x02, 0x02, 0x02, 0x02, 0x84, 0x78, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0x20, 0x50, 0x50,
693 0x90, 0x00, 0x10, 0xF4, 0x00, 0x60, 0xD0, 0x50, 0x20, 0x20, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0,
694 0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x00, 0x00, 0xA0, 0x50,
695 0x50, 0xF0, 0x00, 0x00, 0xE0, 0x10, 0x10, 0x12, 0xFE, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00,
696 0x00, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0xA0, 0x50, 0x50, 0xF0, 0x00, 0x00, 0x20, 0x50,
697 0x50, 0x90, 0x00, 0x10, 0xF0, 0x00, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
698 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
699 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
700 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
701 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x09, 0x09, 0x09, 0x06, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01,
702 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01,
703 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
704 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
705 0x01, 0x00, 0x00, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
706 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
707 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
708 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
709 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
710 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
711 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
712 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
713 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
714 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
717 #endif // ENABLE_LOGO_1
722 #endif //FLAG_GLCD_K0108B