📄 lcd_drive.c
字号:
#include "config.h"
#include "LCDCONF.H"
#define wr 1<<8
#define rd 1<<9
#define cd 1<<10
/*T6963的功能设置*/
#define LCD_CUR_POS 0x21 //光标位置设置(只有设置到有效显示地址并打开显示才看到),双参数(D1水平位置,D2垂直位置)
#define LCD_CGR_POS 0x22 //CGRAM偏置地址设置(用来增加自己的符号),双参数(D1低5位有效,D2=00)
#define LCD_ADR_POS 0x24 //地址指针位置(设置读写操作打针)
//显示区域设置指令
#define LCD_TXT_STP 0x40 //文本区首址(从此地址开始向屏幕左上角显示字符)
#define LCD_TXT_WID 0x41 //文本区宽度(设置显示宽度,N/6式N/8,其中N为X轴的点数)
#define LCD_GRH_STP 0x42 //图型区首址(从此地址开始向屏幕左上角显示点,((有等进一步确认))为文本方式显示时,显示为文本显示特性
#define LCD_GRH_WID 0x43 //图形区宽度(设置显示宽度,N/6式N/8,其中N为X轴的点数)
//显示方式设置指令,当CG(D3)为0启用CGROM
#define LCD_MOD_OR 0x80 //显示方式:逻辑或
#define LCD_MOD_XOR 0x81 //显示方式:逻辑异或
#define LCD_MOD_AND 0x83 //显示方式:逻辑与
#define LCD_MOD_TCH 0x8C //显示方式:文本
//显示开关设置指令,(D0,D1,D2,D3)=1/0 <==========> (光标闪烁,光标显示,文本显示,图形显示)启用/禁用
#define LCD_DIS_SW 0x90 //显示开关设置
//光标开头设置指令
#define LCD_CUR_SHP 0xA0 //光标型形状选择:0xA0-0xA7代表光标占的行数
//自动读写设置指令
#define LCD_AUT_WR 0xB0 //自动写设置
#define LCD_AUT_RD 0xB1 //自动读设置
#define LCD_AUT_OVR 0xB2 //自动读写结束
//数据一次读写设置指令
#define LCD_INC_WR 0xC0 //数据一次写,地址加1
#define LCD_INC_RD 0xC1 //数据一次读,地址加1
#define LCD_DEC_WR 0xC2 //数据一次写,地址减1
#define LCD_DEC_RD 0xC3 //数据一次读,地址减1
#define LCD_ZER_WR 0xc4 //数据一次写,地址不变
#define LCE_ZER_RD 0xc5 //数据一次读,地址不变
//屏读设置指令
#define LCD_SCN_RD 0xE0 //屏读,屏读只能在图形显示区内;该指令是把屏上的内容取出来作为数据使用.
//屏拷贝
#define LCD_SCN_CP 0xE8 //屏拷贝,该指令将屏上当前地址指针(图形)处开妈的一行合成显示内容拷贝到相对应的图形显示区的一级单元
//位操作指令
#define LCD_BIT_OP 0xF0 //该指令可将显示缓冲区单无的某位清零或置位.D0-D1---定义D0-D7位;D3--1为置位,D3--0为复位
uint8 LCD_READ_A1(void)
{
uint8 temp;
IODIR=0x000000700;
IOSET=cd;
IOCLR=rd;
temp=IOPIN;
IOSET=rd;
return(temp);
}
void LCD_WRITE_A1(int Byte)
{
IODIR=0x000007ff;
IOSET=cd;
IOCLR=0xff;
IOCLR=wr;
IOSET=Byte;
IOSET=wr;
}
void LCD_WRITE_A0(int Byte)
{
IODIR=0x000007ff;
IOCLR=cd;
IOCLR=0xff;
IOCLR=wr;
IOSET=Byte;
IOSET=wr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -