📄 lm4229.h
字号:
//-----------------------------------------------------------------
// 名称: LM4229(T6963C)显示驱动程序头文件
//-----------------------------------------------------------------
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 8000000UL
//-----------------------------------------------------------------
//液晶宽度与高度定义
//-----------------------------------------------------------------
#define LCD_WIDTH 30 //宽240像素(240/8 = 30个字节)
#define LCD_HEIGHT 128 //高128像素
//-----------------------------------------------------------------
//T6963C 命令定义
//-----------------------------------------------------------------
#define LC_CUR_POS 0x21 //光标位置设置
#define LC_CGR_POS 0x22 //CGRAM偏置地址设置
#define LC_ADD_POS 0x24 //地址指针位置
#define LC_TXT_STP 0x40 //文本区首址
#define LC_TXT_WID 0x41 //文本区宽度
#define LC_GRH_STP 0x42 //图形区首址
#define LC_GRH_WID 0x43 //图形区宽度
#define LC_MOD_OR 0x80 //显示方式:逻辑或
#define LC_MOD_XOR 0x81 //显示方式:逻辑异或
#define LC_MOD_AND 0x82 //显示方式:逻辑与
#define LC_MOD_TCH 0x83 //显示方式:文本特征
#define LC_DIS_SW 0x90 //显示开关:
//D0=1/0:光标闪烁启用/禁用;
//D1=1/0:光标显示启用/禁用;
//D2=1/0:文本显示启用/禁用;
//D3=1/0:图形显示启用/禁用;
#define LC_CUR_SHP 0xA0 //光标形状选择:0xA0-0xA7表示光标占的行数
#define LC_AUT_WR 0xB0 //自动写设置
#define LC_AUT_RD 0xB1 //自动读设置
#define LC_AUT_OVR 0xB2 //自动读/写结束
#define LC_INC_WR 0xC0 //数据写,地址加1
#define LC_INC_RD 0xC1 //数据读,地址加1
#define LC_DEC_WR 0xC2 //数据写,地址减1
#define LC_DEC_RD 0xC3 //数据读,地址减1
#define LC_NOC_WR 0xC4 //数据写,地址不变
#define LC_NOC_RD 0xC5 //数据读,地址不变
#define LC_SCN_RD 0xE0 //读屏幕
#define LC_SCN_CP 0xE8 //屏幕拷贝
#define LC_BIT_OP 0xF0 //位操作:D0~D2 定义:D0~D7位 D3:1置位,0清除
//-----------------------------------------------------------------
// 变更LCD与MCU的连接时,
// 只需要修改以下数据端口,控制端口及控制引脚定义
//-----------------------------------------------------------------
//LCD数据端口及端口方向定义
#define LCD_DATA_PORT PORTD
#define LCD_DATA_IN() TRISD = 0xFF
#define LCD_DATA_OUT() TRISD = 0x00
//LCD控制引脚定义(读,写,命令/数据寄存选择)
#define WR RC2
#define RD RC1
#define CD RC0
//-----------------------------------------------------------------
// LCD控制相关函数
//-----------------------------------------------------------------
INT8U Status_BIT_01(); //状态位STA1,STA0判断(读写指令和读写数据)
INT8U Status_BIT_3(); //状态位ST3判断(数据自动写状态)
INT8U LCD_Write_Command(INT8U cmd); //写无参数的指令
INT8U LCD_Write_Command_P1(INT8U cmd,INT8U para1); //写单参数的指令
INT8U LCD_Write_Command_P2(INT8U cmd,INT8U para1,INT8U para2); //写双参数的指令
INT8U LCD_Write_Data(INT8U dat); //写数据
INT8U LCD_Read_Data(); //读数据
void Display_Str_at_xy(INT8U x,INT8U y,char Buffer[],INT8U wb);//在指定位置显示字符串
char LCD_Initialise(); //LCD初始化
void Clear_Screen(); //清屏
void Set_LCD_POS(INT8U row, INT8U col); //设置当前地址
void OutToLCD(INT8U Dat,INT8U x,INT8U y); //输出到液晶
void Line(INT8U x1, INT8U y1, INT8U x2, INT8U y2, INT8U Mode); //绘制直线
void Pixel(INT8U x,INT8U y, INT8U Mode); //绘点
void Draw_Image(const INT8U *G_Buffer, INT8U Start_Row, INT8U Start_Col);//绘制图像
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -