⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grlcd.h

📁 Graphical lcd library, you can port to many mcu.
💻 H
字号:
#if !defined(GrLCD_H)
#define GrLCD_H

typedef unsigned char BYTE;
typedef unsigned short WORD;        // a 16 bit value, processor dependant

#define KS1713      // specify LCD controller type
#define RMW_USED    // to include read/modify/write support

// macros for ports for LCD control & data bus
// customize these for your processor and port pin assignments

#define E           1
#define RS          2
#define RW          4
#define RESET       8

extern BYTE databus;        // the data bus port
#define LCD_DATA    databus

extern BYTE ctrlport;       // the control signal port
#define LCD_CTRL(arg1, arg2)    \
{                               \
    if (arg2)                   \
    {                           \
        ctrlport |= arg1;       \
    }                           \
    else                        \
    {                           \
        ctrlport &= ~arg1;      \
    }                           \
}

typedef struct      // by putting text string definitions
{                   // in a structure, you don't have to
    BYTE page;      // mess with string lengths in the
    BYTE cj_code;   // declaration.
    BYTE abs;
    char *text;     // pointer to null terminated string
} String_T;

/* Examples:
String_T str1 = { 2, C50J+FONT16, 0, "Display text" };  // pages 2 & 3, large font, centered
String_T str2 = { 0, ABSJ, 45, "Display text" };        // page 0, small font, start in col 45
String_T str3 = { 5, L33J, 0, buffer };                 // page 5, small font, centered @ 1/3, refering
char buffer[128];                                       // to string that's not constant
*/

//  text string display control/justification codes

#ifdef RMW_USED             // if RMW support enabled
#define USERMW      0x40    // to OR data with existing display data
#endif

#define FONT16      0x20    // large font
#define NOSPC       0x10    // no space between characters
#define JUSTIFY     7       // bit mask
#define L00J        0       // left, starting @ col 0
#define L25J        1       // left, centered @ 1/4
#define L33J        2       // left, centered @ 1/3
#define C50J        3       // centered @ 1/2
#define R66J        4       // right, centered @ 2/3
#define R75J        5       // right, centered @ 3/4
#define R100J       6       // right, ending @ last col
#define ABSJ        7       // starting @ abs col #

#define CLEAR       (String_T *)0xFFFF  // code to clear display
#define EOL         (String_T *)0       // end of list of String_Ts

extern BYTE invertflg;      // normally 0, to invert data set to 0xFF
extern BYTE CJ_code;        // control/justify code for text display
extern BYTE contrast;       // user contrast setting
extern BYTE startcol;       // save starting col for later use
extern BYTE column;         // current col

void Sleep(int duration);   // may need to create this function

void GrLCDCmd(BYTE arg);
void GrLCDData(BYTE arg);
void GrLCDInit(void);
void GrLCDClear(void);
void GrLCDBlank(BYTE page, BYTE col, BYTE len, BYTE font);
void GrLCDList(String_T **list);
void GrLCDText(String_T *text);
void GrLCDLgChar(char chr);
void GrLCDSmChar(char chr);
void GrLCDSetPage(BYTE page);
void GrLCDSetCol(BYTE col);
BYTE GrLCDPixLen(char *chr);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -