📄 lcd_st7920_bymg.h
字号:
#ifndef __LCD_ST7920_h_
#define __LCD_ST7920_h_
#include "HARD_CONNECT_LCD_ST7920_ByMG.h"
//基本操作
#define TRUE 1
#define FALSE 0
#define LCD_RS_0 ControlOutReg &= ~LCD_RS
#define LCD_RS_1 ControlOutReg |= LCD_RS
#define LCD_RW_0 ControlOutReg &= ~LCD_RW //Write
#define LCD_RW_1 ControlOutReg |= LCD_RW //Read
#define LCD_EN_0 ControlOutReg &= ~LCD_EN //Disable
#define LCD_EN_1 ControlOutReg |= LCD_EN //Disable
//基本指令 lcd_write(0,lcdc_bas);
#define CLEAR (0x01) //清屏
#define HOME (0x02) //DDRAM地址复位
#define ENTRYMODE_DEC (0x04) //输入时光标左移,DDRAM地址减1
#define ENTRYMODE_RIGHTSHIFT (0x05) //显示画面整体右移位
#define ENTRYMODE_INC (0x06) //输入时光标右移,DDRAM地址加1
#define ENTRYMODE_LEFTSHIFT (0x07) //显示画面整体左移位
#define CURDSCONTROL_LEFT (0x10) //光标左移
#define CURDSCONTROL_RIGHT (0x14) //光标右移
#define BASICFUN (0x30) //基本指令
#define EXTENDFUN (0x34) //扩展指令
#define SETCGRAMADDR (0x40) //CGRAM基地址
#define SETDDRAMADDR (0x80) //DDRAM基地址
#define DSSTATE (0x08) //显示状态基数
#define BLINK (0x01) //数据闪烁
#define CURSOR (0x02) //游标
#define DISPLAY (0x04) //整体显示
//扩展指令 lcd_write(0,lcdc_ext);
#define REVERSE (0x04) //反白显示基数 应+0,1,2,3
#define SLEEPIN (0x08) //进入睡眠模式
#define SLEEPOUT (0x0c) //脱离睡眠模式
#define GRAPHICMODEOFF (0x30) //绘图显示关
#define GRAPHICMODEON (0x32) //绘图显示开
#define SETGDRAMADDR (0x80) //GDRAM基地址
#define ENICONRAM (0x02) //允许输入 icon IRAM地址
#define ICONRAM (0x70) //IRAM基地址,先ENICONRAM
#define ENVERSCROLL (0x03) //允许输入垂直卷动地址
#define VERSCROLLADDR (0x40) //垂直卷动基地址,先设 ENVERSCROLL
//常量定义
#define COMMAND 0
#define DATA 1
#define TEXTMODE 0
#define GRAPHMODE 1
//以下定义CLcd类
class CLcd //这个类为ST7920为控制芯片的64*128 RT12863M编写
{
private:
int x,y; //x为行坐标,y为列坐标
//文本模式下 x=0~3,y=0~7
//图形模式下 x=0~63,y=0~127
unsigned int GraphBuffer[64][8];
int CurrentMode;
void LCD_Write(unsigned char, unsigned char );
void LCD_Init(void);
void LCD_Delay(void);
void LCD_Delay_50(void);
void CopyBuffer(void); //这些函数为类内部使用不公开
public:
//以下函数为调用函数
CLcd(void);
~CLcd();
void SetMode(int);
void TextOut(int,int,char *);
//用于输出汉字或字符,输出字符时要保证为偶数个,可用标点或空格找齐
void Clear(void); //图形方式清零
void SetCursor(int cursor,int blink); //设置光标显示否及是否闪烁
//TRUE:
//FALSE:
void Point(int x,int y); //在指定坐标画点
void BmpOutAll(const char *); //全屏拷贝位图
void BmpOut(int x,int y,int height,int width,const char *s);
//在x,y坐标处显示height*width大小的位图
};
//LCD基本函数
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -