52 #define NOP_DELAY _delay (2)
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
89 #define GLCD_INPUT 0xFF
90 #define GLCD_OUTPUT 0x00
92 #define GLCD_NUMBER_OF_PAGES 8
93 #define GLCD_X_RESOLUTION 128
94 #define GLCD_Y_RESOLUTION 64
96 #define GLCD_CONTROLLER_MAX_X 64
103 #define GLCD_ENABLE_FONT_5x7
105 #define GLCD_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 GLCD_COMM_DISPLAY_ON 0b00111111
122 #define GLCD_COMM_DISPLAY_OFF 0b00111110
124 #define GLCD_COMM_PAGE_SELECT 0b10111000
126 #define GLCD_COMM_ADDRESS_SELECT 0b01000000
128 #define GLCD_COMM_START_LINE 0b11000000
135 #define GLCD_BUSY_FLAG 0x80
143 #define TURN_ON_LED_GLCD 0b00000001
144 #define TURN_OFF_LED_GLCD 0b00000000
145 #define GLCD_TURN_ON_LED 0b00000001
146 #define GLCD_TURN_OFF_LED 0b00000000
148 #define TURN_ON_DISPLAY 0b00000001
149 #define TURN_OFF_DISPLAY 0b00000000
150 #define GLCD_TURN_ON_DISPLAY 0b00000001
151 #define GLCD_TURN_OFF_DISPLAY 0b00000000
153 #define HIGH_GLCD 0b00000001
154 #define LOW_GLCD 0b00000000
155 #define GLCD_HIGH 0b00000001
156 #define GLCD_LOW 0b00000000
158 #define ENABLE_GLCD 0b00000001
159 #define DISABLE_GLCD 0b00000000
160 #define GLCD_ENABLE 0b00000001
161 #define GLCD_DISABLE 0b00000000
163 #define ENABLE_RESET_GLCD 0b00000000
164 #define DISABLE_RESET_GLCD 0b00000001
165 #define GLCD_ENABLE_RESET 0b00000000
166 #define GLCD_DISABLE_RESET 0b00000001
168 #define GLCD_CHIP_SELECT_1 0x00
169 #define GLCD_CHIP_SELECT_2 0x01
171 #define FILLING_WHITE 0x00
172 #define FILLING_BLACK 0xFF
173 #define GLCD_FILLING_WHITE 0x00
174 #define GLCD_FILLING_BLACK 0xFF
194 #define initialize_GLCD GLCD_initialize
205 void GLCD_clear (
unsigned char filling_color);
206 #define clear_GLCD GLCD_clear
220 #define backlight_GLCD GLCD_backlight
233 #define set_display_GLCD GLCD_set_display
245 #define set_vertical_offset_GLCD GLCD_set_vertical_offset
261 void GLCD_plot_xy (
unsigned char x_pos,
unsigned char y_pos,
unsigned char filling_color);
262 #define plot_xy_GLCD GLCD_plot_xy
282 void GLCD_draw_horizontal_line (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
283 #define draw_horizontal_line_GLCD GLCD_draw_horizontal_line
303 void GLCD_draw_vertical_line (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char filling_color);
304 #define draw_vertical_line_GLCD GLCD_draw_vertical_line
326 void GLCD_draw_window (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
327 #define draw_window_GLCD GLCD_draw_window
349 void GLCD_draw_box (
unsigned char x_origin,
unsigned char y_origin,
unsigned char length,
unsigned char height,
unsigned char filling_color);
350 #define draw_box_GLCD GLCD_draw_box
369 #define draw_picture_GLCD GLCD_draw_picture
384 void GLCD_write_char (
unsigned char x_pos,
unsigned char y_pos,
unsigned char character);
385 #define write_char_GLCD GLCD_write_char
402 void GLCD_write_string (
unsigned char x_pos,
unsigned char y_pos,
unsigned char * character_array);
403 #define write_string_GLCD GLCD_write_string
419 void GLCD_write_message (
unsigned char x_pos,
unsigned char y_pos,
const rom
unsigned char * character);
423 void GLCD_write_message (
unsigned char x_pos,
unsigned char y_pos,
const unsigned char * character);
426 #define write_message_GLCD GLCD_write_message
443 void GLCD_write_integer (
unsigned char x_pos,
unsigned char y_pos,
int value,
char number_of_digits);
444 #define write_integer_GLCD GLCD_write_integer
458 void GLCD_set_font (
unsigned char width,
unsigned char height);
459 #define set_font_GLCD GLCD_set_font
478 #define wait_busy_status_GLCD GLCD_wait_busy_status
491 #define get_controller_status_GLCD GLCD_get_controller_status
507 #define write_command_GLCD GLCD_write_command
520 #define set_page_GLCD GLCD_set_page
534 #define set_address_GLCD GLCD_set_address
546 #define write_data_GLCD GLCD_write_data
560 #define read_data_GLCD GLCD_read_data
568 #ifdef GLCD_ENABLE_FONT_5x7
575 const unsigned char font_5x7[96][5] = {
578 0x00,0x00,0x00,0x00,0x00,
579 0x00,0x00,0x5f,0x00,0x00,
580 0x00,0x03,0x00,0x03,0x00,
581 0x14,0x7f,0x14,0x7f,0x14,
582 0x24,0x2a,0x7f,0x2a,0x12,
583 0x23,0x13,0x08,0x64,0x62,
584 0x36,0x49,0x55,0x22,0x50,
585 0x00,0x05,0x03,0x00,0x00,
586 0x00,0x1c,0x22,0x41,0x00,
587 0x00,0x41,0x22,0x1c,0x00,
588 0x14,0x08,0x3e,0x08,0x14,
589 0x08,0x08,0x3e,0x08,0x08,
590 0x00,0x50,0x30,0x00,0x00,
591 0x08,0x08,0x08,0x08,0x08,
592 0x00,0x60,0x60,0x00,0x00,
593 0x20,0x10,0x08,0x04,0x02,
594 0x3e,0x51,0x49,0x45,0x3e,
595 0x00,0x42,0x7f,0x40,0x00,
596 0x42,0x61,0x51,0x49,0x46,
597 0x21,0x41,0x45,0x4b,0x31,
598 0x18,0x14,0x12,0x7f,0x10,
599 0x27,0x45,0x45,0x45,0x39,
600 0x3c,0x4a,0x49,0x49,0x30,
601 0x01,0x71,0x09,0x05,0x03,
602 0x36,0x49,0x49,0x49,0x36,
603 0x06,0x49,0x49,0x29,0x1e,
604 0x00,0x36,0x36,0x00,0x00,
605 0x00,0x56,0x36,0x00,0x00,
606 0x08,0x14,0x22,0x41,0x00,
607 0x14,0x14,0x14,0x14,0x14,
608 0x00,0x41,0x22,0x14,0x08,
609 0x02,0x01,0x51,0x09,0x06,
610 0x32,0x49,0x79,0x41,0x3e,
611 0x7e,0x11,0x11,0x11,0x7e,
612 0x7f,0x49,0x49,0x49,0x36,
613 0x3e,0x41,0x41,0x41,0x22,
614 0x7f,0x41,0x41,0x22,0x1c,
615 0x7f,0x49,0x49,0x49,0x41,
616 0x7f,0x09,0x09,0x09,0x01,
617 0x3e,0x41,0x49,0x49,0x7a,
618 0x7f,0x08,0x08,0x08,0x7f,
619 0x00,0x41,0x7f,0x41,0x00,
620 0x20,0x40,0x41,0x3f,0x01,
621 0x7f,0x08,0x14,0x22,0x41,
622 0x7f,0x40,0x40,0x40,0x40,
623 0x7f,0x02,0x0c,0x02,0x7f,
624 0x7f,0x04,0x08,0x10,0x7f,
625 0x3e,0x41,0x41,0x41,0x3e,
626 0x7f,0x09,0x09,0x09,0x06,
627 0x3e,0x41,0x51,0x21,0x5e,
628 0x7f,0x09,0x19,0x29,0x46,
629 0x46,0x49,0x49,0x49,0x31,
630 0x01,0x01,0x7f,0x01,0x01,
631 0x3f,0x40,0x40,0x40,0x3f,
632 0x1f,0x20,0x40,0x20,0x1f,
633 0x3f,0x40,0x38,0x40,0x3f,
634 0x63,0x14,0x08,0x14,0x63,
635 0x07,0x08,0x70,0x08,0x07,
636 0x61,0x51,0x49,0x45,0x43,
637 0x00,0x7f,0x41,0x41,0x00,
638 0x02,0x04,0x08,0x10,0x20,
639 0x00,0x41,0x41,0x7f,0x00,
640 0x04,0x02,0x01,0x02,0x04,
641 0x40,0x40,0x40,0x40,0x40,
642 0x00,0x01,0x02,0x04,0x00,
643 0x20,0x54,0x54,0x54,0x78,
644 0x7f,0x48,0x44,0x44,0x38,
645 0x38,0x44,0x44,0x44,0x00,
646 0x38,0x44,0x44,0x48,0x7f,
647 0x38,0x54,0x54,0x54,0x18,
648 0x08,0x7e,0x09,0x01,0x02,
649 0x0c,0x52,0x52,0x52,0x3e,
650 0x7f,0x08,0x04,0x04,0x78,
651 0x00,0x44,0x7d,0x40,0x00,
652 0x20,0x40,0x44,0x3d,0x00,
653 0x7f,0x10,0x28,0x44,0x00,
654 0x00,0x41,0x7f,0x40,0x00,
655 0x7c,0x04,0x18,0x04,0x78,
656 0x7c,0x08,0x04,0x04,0x78,
657 0x38,0x44,0x44,0x44,0x38,
658 0x7c,0x14,0x14,0x14,0x08,
659 0x08,0x14,0x14,0x18,0x7c,
660 0x7c,0x08,0x04,0x04,0x08,
661 0x48,0x54,0x54,0x54,0x20,
662 0x04,0x3f,0x44,0x40,0x20,
663 0x3c,0x40,0x40,0x20,0x7c,
664 0x1c,0x20,0x40,0x20,0x1c,
665 0x3c,0x40,0x30,0x40,0x3c,
666 0x44,0x28,0x10,0x28,0x44,
667 0x0c,0x50,0x50,0x50,0x3c,
668 0x44,0x64,0x54,0x4c,0x44,
669 0x00,0x08,0x36,0x41,0x00,
670 0x00,0x00,0x7f,0x00,0x00,
671 0x00,0x41,0x36,0x08,0x00,
672 0x10,0x08,0x08,0x10,0x08,
673 0x00,0x00,0x02,0x05,0x02};
675 #endif // ENABLE_FONT_5x7
682 #ifdef GLCD_ENABLE_LOGO_1
689 const unsigned char logo_1 [] = {
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, 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, 0x00,
700 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
701 0x30, 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
702 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
703 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
704 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0x70, 0x30, 0x30,
705 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x30, 0x70, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
706 0x00, 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, 0xC0,
709 0xFC, 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x40, 0x00, 0xE0, 0xF0, 0xF8,
710 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x86, 0xEE, 0xFC, 0xFE, 0xFE, 0x3E, 0x06, 0x08, 0x0C, 0xCC, 0xFC,
711 0xFC, 0xFE, 0x3E, 0x06, 0x00, 0xC0, 0xF8, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, 0x0C, 0x8C, 0xFC,
712 0xFC, 0xFE, 0x3E, 0x0E, 0x04, 0x06, 0x1E, 0x1E, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xFC,
713 0xFF, 0xFF, 0x3F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0xE3, 0xF0, 0xF8, 0xFC, 0xFC, 0xDE,
714 0xC6, 0xE6, 0x7E, 0x7E, 0x7C, 0x3C, 0x00, 0xE0, 0xF0, 0xF8, 0xFC, 0x3C, 0x0E, 0x06, 0x06, 0x1E,
715 0x3E, 0x3C, 0x38, 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, 0x0C, 0x0C, 0x0C, 0x0F,
717 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x03, 0x07, 0x0F,
718 0x0F, 0x0C, 0x0C, 0x0C, 0x06, 0x07, 0x0F, 0x0F, 0x0F, 0x0D, 0x0C, 0x06, 0x04, 0x02, 0x07, 0x0F,
719 0x0F, 0x0F, 0x0C, 0x04, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x08, 0x00, 0x0C, 0x0F, 0x0F,
720 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0F, 0x0F,
721 0x0F, 0x0F, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C,
722 0x0C, 0x0C, 0x06, 0x06, 0x02, 0x00, 0x00, 0x03, 0x07, 0x07, 0x0F, 0x0E, 0x0C, 0x0C, 0x0C, 0x06,
723 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
724 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
725 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
726 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
727 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
728 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
729 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
730 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
731 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
732 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
733 0xFE, 0x02, 0x02, 0x02, 0x02, 0x84, 0x78, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0x20, 0x50, 0x50,
734 0x90, 0x00, 0x10, 0xF4, 0x00, 0x60, 0xD0, 0x50, 0x20, 0x20, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0,
735 0x00, 0x00, 0x00, 0x00, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x20, 0x10, 0xF0, 0x00, 0x00, 0xA0, 0x50,
736 0x50, 0xF0, 0x00, 0x00, 0xE0, 0x10, 0x10, 0x12, 0xFE, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00,
737 0x00, 0x00, 0x00, 0xE0, 0x50, 0x50, 0x60, 0x00, 0xA0, 0x50, 0x50, 0xF0, 0x00, 0x00, 0x20, 0x50,
738 0x50, 0x90, 0x00, 0x10, 0xF0, 0x00, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
739 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
740 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
741 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
742 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x09, 0x09, 0x09, 0x06, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01,
743 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01,
744 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
745 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
746 0x01, 0x00, 0x00, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
747 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
748 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
749 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
750 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
751 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
752 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
753 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
754 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
755 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
758 #endif // ENABLE_LOGO_1
761 #endif // GLCD_K0108B_H