📄 lcd_drive_2210.c
字号:
#include "LCDConf.h"
//#include <lpc22xx.h>
#include "iolpc2470.h"
/*
PG160128A的连接方式
PG160128A管脚 LPC2104管脚
FG GND
VSS NC
VDD NC
CON NC
WR P0.29
RD P0.30
CE GND
C/D P0.31
RST VCC
D0 P0.0
D1 P0.1
D2 P0.2
D3 P0.3
D4 P0.4
D5 P0.5
D6 P0.6
D7 P0.7
FS1 NC
*/
#define wr 1<<29
#define rd 1<<30
#define cd 1<<31
/*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为复位
char LCD_READ_A1(void)
{
/*char temp;
IODIR = 0xE0000000;//0x00000700
IOSET = cd;
IOCLR = rd;
temp = IOPIN;
IOSET = rd;
return(temp);*/
char temp;
temp = (*((volatile unsigned short *) 0x83000002));
return temp;
}
void LCD_WRITE_A1(int Byte)
{
/*IODIR = 0xE00000FF;//0x000007ff
IOSET = cd;
IOCLR = 0x000000FF;
IOCLR = wr;
IOSET = Byte;
IOSET = wr;*/
(*((volatile unsigned short *) 0x83000002)) = Byte;
}
void LCD_WRITE_A0(int Byte)
{
/*IODIR = 0xE00000FF;//0x000007ff
IOCLR = cd;
IOCLR = 0x000000FF;
IOCLR = wr;
IOSET = Byte;
IOSET = wr;*/
(*((volatile unsigned short *) 0x83000000)) = Byte;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -