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

📄 lcd_st7920_bymg.h

📁 使用ST7920做液晶控制芯片(如RT12864-3)的C++类实现
💻 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 + -