52 #define NOP_DELAY _delay(3)
58 #define NOP_DELAY Delay1TCY()
73 #define GLCD_DATA_WRITE LATD
74 #define GLCD_DATA_READ PORTD
75 #define GLCD_DATA_DIRECTION TRISD
77 #define GLCD_D_I LATAbits.LATA3
78 #define GLCD_R_W LATAbits.LATA4
79 #define GLCD_E LATAbits.LATA5
80 #define GLCD_CS1 LATEbits.LATE0
81 #define GLCD_CS2 LATEbits.LATE1
82 #define GLCD_RST LATEbits.LATE2
83 #define GLCD_LED LATCbits.LATC1
92 #define NUMBER_OF_PAGES 8
93 #define X_RESOLUTION 128
94 #define Y_RESOLUTION 64
96 #define CONTROLLER_MAX_X 64
103 #define ENABLE_FONT_5x7
105 #define ENABLE_LOGO_1
111 #define GLCD_FONT_WIDTH_5 5
112 #define GLCD_FONT_HEIGTH_7 7
114 #define GLCD_FONT_SPACE 1
121 #define COMM_DISPLAY_ON 0b00111111
122 #define COMM_DISPLAY_OFF 0b00111110
124 #define COMM_PAGE_SELECT 0b10111000
126 #define COMM_ADDRESS_SELECT 0b01000000
128 #define COMM_START_LINE 0b11000000
135 #define GLCD_BUSY_FLAG 0x80
143 #define TURN_ON_LED_GLCD 0b00000001
144 #define TURN_OFF_LED_GLCD 0b00000000
146 #define TURN_ON_DISPLAY 0b00000001
147 #define TURN_OFF_DISPLAY 0b00000000
149 #define HIGH_GLCD 0b00000001
150 #define LOW_GLCD 0b00000000
152 #define ENABLE_GLCD 0b00000001
153 #define DISABLE_GLCD 0b00000000
155 #define ENABLE_RESET_GLCD 0b00000000
156 #define DISABLE_RESET_GLCD 0b00000001
158 #define GLCD_CHIP_SELECT_1 0x00
159 #define GLCD_CHIP_SELECT_2 0x01
161 #define FILLING_WHITE 0x00
162 #define FILLING_BLACK 0xFF
192 void clear_GLCD (
unsigned char filling_color);
244 void plot_xy_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char filling_color);
264 void draw_horizontal_line_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
284 void draw_vertical_line_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
306 void draw_window_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
328 void draw_box_GLCD (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
359 void write_char_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char character);
376 void write_string_GLCD (
unsigned char x_pos,
unsigned char y_pos,
unsigned char * character_array);
392 void write_message_GLCD (
unsigned char x_pos,
unsigned char y_pos,
const rom
unsigned char * character);
396 void write_message_GLCD (
unsigned char x_pos,
unsigned char y_pos,
const unsigned char * character);
413 void write_integer_GLCD (
unsigned char x_pos,
unsigned char y_pos,
int value,
char number_of_digits);
427 void set_font_GLCD (
unsigned char width,
unsigned char height);
533 #ifdef ENABLE_FONT_5x7
540 const unsigned char font_5x7[96][5] = {
543 0x00,0x00,0x00,0x00,0x00,
544 0x00,0x00,0x5f,0x00,0x00,
545 0x00,0x03,0x00,0x03,0x00,
546 0x14,0x7f,0x14,0x7f,0x14,
547 0x24,0x2a,0x7f,0x2a,0x12,
548 0x23,0x13,0x08,0x64,0x62,
549 0x36,0x49,0x55,0x22,0x50,
550 0x00,0x05,0x03,0x00,0x00,
551 0x00,0x1c,0x22,0x41,0x00,
552 0x00,0x41,0x22,0x1c,0x00,
553 0x14,0x08,0x3e,0x08,0x14,
554 0x08,0x08,0x3e,0x08,0x08,
555 0x00,0x50,0x30,0x00,0x00,
556 0x08,0x08,0x08,0x08,0x08,
557 0x00,0x60,0x60,0x00,0x00,
558 0x20,0x10,0x08,0x04,0x02,
559 0x3e,0x51,0x49,0x45,0x3e,
560 0x00,0x42,0x7f,0x40,0x00,
561 0x42,0x61,0x51,0x49,0x46,
562 0x21,0x41,0x45,0x4b,0x31,
563 0x18,0x14,0x12,0x7f,0x10,
564 0x27,0x45,0x45,0x45,0x39,
565 0x3c,0x4a,0x49,0x49,0x30,
566 0x01,0x71,0x09,0x05,0x03,
567 0x36,0x49,0x49,0x49,0x36,
568 0x06,0x49,0x49,0x29,0x1e,
569 0x00,0x36,0x36,0x00,0x00,
570 0x00,0x56,0x36,0x00,0x00,
571 0x08,0x14,0x22,0x41,0x00,
572 0x14,0x14,0x14,0x14,0x14,
573 0x00,0x41,0x22,0x14,0x08,
574 0x02,0x01,0x51,0x09,0x06,
575 0x32,0x49,0x79,0x41,0x3e,
576 0x7e,0x11,0x11,0x11,0x7e,
577 0x7f,0x49,0x49,0x49,0x36,
578 0x3e,0x41,0x41,0x41,0x22,
579 0x7f,0x41,0x41,0x22,0x1c,
580 0x7f,0x49,0x49,0x49,0x41,
581 0x7f,0x09,0x09,0x09,0x01,
582 0x3e,0x41,0x49,0x49,0x7a,
583 0x7f,0x08,0x08,0x08,0x7f,
584 0x00,0x41,0x7f,0x41,0x00,
585 0x20,0x40,0x41,0x3f,0x01,
586 0x7f,0x08,0x14,0x22,0x41,
587 0x7f,0x40,0x40,0x40,0x40,
588 0x7f,0x02,0x0c,0x02,0x7f,
589 0x7f,0x04,0x08,0x10,0x7f,
590 0x3e,0x41,0x41,0x41,0x3e,
591 0x7f,0x09,0x09,0x09,0x06,
592 0x3e,0x41,0x51,0x21,0x5e,
593 0x7f,0x09,0x19,0x29,0x46,
594 0x46,0x49,0x49,0x49,0x31,
595 0x01,0x01,0x7f,0x01,0x01,
596 0x3f,0x40,0x40,0x40,0x3f,
597 0x1f,0x20,0x40,0x20,0x1f,
598 0x3f,0x40,0x38,0x40,0x3f,
599 0x63,0x14,0x08,0x14,0x63,
600 0x07,0x08,0x70,0x08,0x07,
601 0x61,0x51,0x49,0x45,0x43,
602 0x00,0x7f,0x41,0x41,0x00,
603 0x02,0x04,0x08,0x10,0x20,
604 0x00,0x41,0x41,0x7f,0x00,
605 0x04,0x02,0x01,0x02,0x04,
606 0x40,0x40,0x40,0x40,0x40,
607 0x00,0x01,0x02,0x04,0x00,
608 0x20,0x54,0x54,0x54,0x78,
609 0x7f,0x48,0x44,0x44,0x38,
610 0x38,0x44,0x44,0x44,0x00,
611 0x38,0x44,0x44,0x48,0x7f,
612 0x38,0x54,0x54,0x54,0x18,
613 0x08,0x7e,0x09,0x01,0x02,
614 0x0c,0x52,0x52,0x52,0x3e,
615 0x7f,0x08,0x04,0x04,0x78,
616 0x00,0x44,0x7d,0x40,0x00,
617 0x20,0x40,0x44,0x3d,0x00,
618 0x7f,0x10,0x28,0x44,0x00,
619 0x00,0x41,0x7f,0x40,0x00,
620 0x7c,0x04,0x18,0x04,0x78,
621 0x7c,0x08,0x04,0x04,0x78,
622 0x38,0x44,0x44,0x44,0x38,
623 0x7c,0x14,0x14,0x14,0x08,
624 0x08,0x14,0x14,0x18,0x7c,
625 0x7c,0x08,0x04,0x04,0x08,
626 0x48,0x54,0x54,0x54,0x20,
627 0x04,0x3f,0x44,0x40,0x20,
628 0x3c,0x40,0x40,0x20,0x7c,
629 0x1c,0x20,0x40,0x20,0x1c,
630 0x3c,0x40,0x30,0x40,0x3c,
631 0x44,0x28,0x10,0x28,0x44,
632 0x0c,0x50,0x50,0x50,0x3c,
633 0x44,0x64,0x54,0x4c,0x44,
634 0x00,0x08,0x36,0x41,0x00,
635 0x00,0x00,0x7f,0x00,0x00,
636 0x00,0x41,0x36,0x08,0x00,
637 0x10,0x08,0x08,0x10,0x08,
638 0x00,0x00,0x02,0x05,0x02};
640 #endif // ENABLE_FONT_5x7
654 const unsigned char logo_1 [] = {
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 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
664 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
665 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
666 0x30, 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
667 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
668 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
669 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0x70, 0x30, 0x30,
670 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x70, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
671 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
672 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
673 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
674 0xFC, 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x40, 0x00, 0xE0, 0xF0, 0xF8,
675 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x86, 0xEE, 0xFC, 0xFE, 0xFE, 0x3E, 0x06, 0x08, 0x0C, 0xCC, 0xFC,
676 0xFC, 0xFE, 0x3E, 0x06, 0x00, 0xC0, 0xF8, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x0C, 0x8C, 0xFC,
677 0xFC, 0xFE, 0x3E, 0x0E, 0x04, 0x06, 0x1E, 0x1E, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xFC,
678 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0xE3, 0xF0, 0xF8, 0xFC, 0xFC, 0xDE,
679 0xC6, 0xE6, 0x7E, 0x7E, 0x7C, 0x3C, 0x00, 0xE0, 0xF0, 0xF8, 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x1E,
680 0x3E, 0x3C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
681 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0F,
682 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x03, 0x07, 0x0F,
683 0x0F, 0x0C, 0x0C, 0x0C, 0x06, 0x07, 0x0F, 0x0F, 0x0F, 0x0D, 0x0C, 0x06, 0x04, 0x02, 0x07, 0x0F,
684 0x0F, 0x0F, 0x0C, 0x04, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x08, 0x00, 0x0C, 0x0F, 0x0F,
685 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0F, 0x0F,
686 0x0F, 0x0F, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C,
687 0x0C, 0x0C, 0x06, 0x06, 0x02, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C, 0x0C, 0x0C, 0x06,
688 0x06, 0x02, 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, 0x00,
692 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
693 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
694 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
695 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
696 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
697 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
698 0xFE, 0x02, 0x02, 0x02, 0x02, 0x84, 0x78, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0x20, 0x50, 0x50,
699 0x90, 0x00, 0x10, 0xF4, 0x00, 0x60, 0xD0, 0x50, 0x20, 0x20, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0,
700 0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x00, 0x00, 0xA0, 0x50,
701 0x50, 0xF0, 0x00, 0x00, 0xE0, 0x10, 0x10, 0x12, 0xFE, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00,
702 0x00, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0xA0, 0x50, 0x50, 0xF0, 0x00, 0x00, 0x20, 0x50,
703 0x50, 0x90, 0x00, 0x10, 0xF0, 0x00, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
704 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
705 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
706 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
707 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x09, 0x09, 0x09, 0x06, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01,
708 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01,
709 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
710 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
711 0x01, 0x00, 0x00, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
712 0x01, 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,
715 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
716 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
717 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
718 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
719 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
720 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
723 #endif // ENABLE_LOGO_1
728 #endif //FLAG_GLCD_K0108B