#ifndef _GLCD_H_ #define _GLCD_H_ /* * Graphic LCD interface header file * (C)opyright SOOO "Gomelsky Priborostroitelny Zavod" * www.gomel-pribor.com */ #define GLCD_WAIT DelayUs(10) #define GLCD_RS RA5 #define GLCD_EN RC0 #define GLCD_RW RC1 #define GLCD_CS1 RA4 #define GLCD_CS2 RA2 #define GLCD_DATA LATB #define GLCD_DATA_PORT PORTB #define GLCD_RS_TRIS TRISA5 #define GLCD_EN_TRIS TRISC0 #define GLCD_RW_TRIS TRISC1 #define GLCD_CS1_TRIS TRISA4 #define GLCD_CS2_TRIS TRISA2 #define GLCD_DATA_TRIS TRISB #define OUTPUT_PIN 0x0 #define INPUT_PIN 0x1 #define OUTPUT_DATA 0x0 #define INPUT_DATA 0xFF #define HALF_LEFT 0x1 #define HALF_RIGHT 0x2 #define GLCD_STROBE() GLCD_EN = 1; asm("nop"); asm("nop"); GLCD_EN = 0 #define GLCD_STROBE_READ(value) GLCD_EN = 1; \ asm("nop"); \ asm("nop"); \ value=GLCD_DATA_PORT;\ GLCD_EN = 0; #define glcd_off() glcd_cmd(0x3e, HALF_LEFT | HALF_RIGHT) #define glcd_on() glcd_cmd(0x3f, HALF_LEFT | HALF_RIGHT) #define glcd_page(x, half) glcd_cmd(0xb8|(x), half) #define glcd_column(x, half) glcd_cmd(0x40|(x), half) #define glcd_screen_top(x, half) glcd_cmd(0xc0|(x), half) #define glcd_clear() glcd_fill(0) #define ON 1 #define OFF 0 extern void glcd_cmd(unsigned char c, unsigned char half); extern void glcd_datawrite(unsigned char c, unsigned char half); extern unsigned char glcd_dataread(unsigned char half); extern void glcd_init(); extern void glcd_fill(unsigned char c); // put pixel on the display (x is horiz 0:127, y is vert 0:63, c is color) extern void glcd_putpixel(unsigned char x, unsigned char y, unsigned char color); // draw line extern void glcd_line(int x1, int y1, int x2, int y2, unsigned char color); // draw rectangle extern void glcd_rectangle(unsigned char x, unsigned char y, unsigned char a, unsigned char b, unsigned char color); // draw circle of at extern void glcd_circle(unsigned char xcenter, unsigned char ycenter, unsigned char radius, unsigned char color); // write a standard ascii charater (values 20-127) to the display extern void glcd_writechar(unsigned char x, unsigned char y, char c, unsigned char color); // write a standard ascii charater (values 20-127) to the display in scale extern void glcd_writecharscale(unsigned char x, unsigned char scaleX, unsigned char y, unsigned char scaleY, char c, unsigned char color); extern void glcd_putstr(unsigned char x, unsigned char y, char *data, unsigned char color); extern void glcd_putstrscale(unsigned char x, unsigned char scaleX, unsigned char y, unsigned char scaleY, char *data, unsigned char color); #endif