RA8835调试笔记
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Bit0 1
Bit0 MX0
Bit0 0
HDOT SCR 设置参数 P1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
0
0
0
0
D2
D1
D0
配置没有水平滚动效果 0x00
6. CSRFORM光标模式选择
CSRFORM 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
DM1、DM0 设置 DM1 0 设置显示区一位字符模式,1 设置显示区一为图形模式 DM2 0 设置显示区三位字符模式,1 设置显示区三为图形模式
备注:显示区二、四为图形模式。
5. HDOT SCR
HDOT SCR 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
0
1
0
1
1
0
1
0x5A
Bit5
TC/R >= C/R +4,我这里采用的是液晶供应商推荐值
1
Bit4 Bit3
TC/R
1 1
Bit2
0
Bit1
1
Bit0
0
0x3A
P6
位 位定义
位含义
配置值
Bit7
液晶像素点值,如 320*240 的液晶,一列为 240-1=239,减一是 1
Bit6
参数中会自动加一
1
Bit5
1
Bit4 Bit3
P6 0xEF
Bit1 0
P7 0x28
Bit0 0
P8 0x00
SystemSet 初始化设置参数表详解:
P1
位 位定义
位含义
Bit7
0
保留位
Bit6
0
保留位
Bit5
IV
负向字符显示时屏面边界选择位。=0 为首行作为边界;=1 则无 边界。通常=1
Bit4
1
保留位
适配驱动系统选择位。改为将选择产生驱动时序信号的类型。0
RA8835 调试笔记
以下以我项目中使用的金鹏 320*240 的液晶为例说明。
1. SystemSet
SystemSet 初始化命令字
Bit7
Bit6
Bit5
0
1
0
SystemSet 初始化设置参数表:
P1
P2
P3
0x30
0x87
0x0F
Bit4
Bit3
0
0
0x40
P4 0x27
P5 0x3A
Bit2 0
函数名称:ra8835Send8BitData
函数功能:写
输入参数:uint8 data
输出参数:无
返回参数:无
*****************************************************************************/
static void ra8835Send8BitData(const uint8 data)
大的 RAM 区,从而很方便的实现屏的滚动效果。我的液晶功能 0
Bit4 Bit3
APH
无需滚动效果,所以取值 40
0 0
Bit2
0
Bit1
0
Bit0
0
0x00
2. Scroll
Scroll 设置命令字:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
1
0
0
0
1
0
0
0x44
Scroll 设置参数表,ra8835 总 ram 区为 64K,4 个显示区,每个显示区分配 16K,P3 和 P6 是液
Bit0
0x87
配置值
1 0 0 0 0 1 1 1
P3
位 位定义
位含义
Bit7
0
保留位
Bit6
0
保留位
Bit5
0
保留位
Bit4
0
保留位
Bit3
字符高度,实际像素点为 FY+1
Bit2 Bit1
FY
Bit0 0x0F
配置值
1
0
0
0 1 1 1 1
P4
位 位定义
位含义
配置值
Bit7
每行的字符数,以字符为单位,实际每行字符数等于 C/R+1;例 0
{Байду номын сангаас
ra8835CheckBusy();
RA8835_AO_LOW(); RA8835_RD_HIGH();
RA8835_DB_WRITE(data);
RA8835_WR_LOW();
//时序匹配,不然不满足最小时间要求
RA8835_WR_LOW();
RA8835_WR_HIGH();
}
/*****************************************************************************
0
1
0
1
1
0
0
D
0x58 关显示 0x59 开显示
DISP 设置参数 P1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
FP5
FP4
FP3
FP2
FP1
FP0
FC1
FC0
配置为光标显示关闭,只显示一区,其他显示区关闭。以便提高清屏效率,否则全部 ram 清
零,需要耗费很长的机时 0x04
Bit3 W/S 为单屏结构液晶。显示驱动系统;1 为双屏结构液晶显示驱动系
统
Bit2 M2 外部字符发生器的字体选择位。0=8*8;1=8*16
Bit1
M1
用户字符存储器选择。0 配置 CG RAM1 为 RAM,CG RAM2 配 置为 ROM,1 配置 CG RAM1 为 RAM,CG RAM2 配置为 RAM
CM 光标形状选择位。0 为线状光标显示;1 为块状光标显示。图形模式配置为 1。
7. CSRDIR地址自动变化方向
CSRDIR 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
1
0
0
1
1
CD1
CD0
配置为右 0x4C
CD1、CD0 设置
MX1
MX0
0
0
0
1
1
0
1
1
光标移动方向,也就是写入数据后地址增加方向 → ← ↑ ↓
ra8835CheckBusy();
RA8835_AO_HIGH(); RA8835_RD_HIGH();
RA8835_DB_WRITE(cmd);
RA8835_WR_LOW();
RA8835_WR_LOW();
//时序匹配,不然不满足最小时间要求
RA8835_WR_HIGH();
}
/*****************************************************************************
8. MWRITE写入显示数据
MWRITE 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
1
0
0
0
0
1
0
0x42
写入命令字后,接着写入显示数据,可连续写入多字节。1 代表显示 0 代表不显示,地址
自动按照 CSRDIR 设置的方向增加,
9. Busy标志读取
AO=0、WR=1、RD=0
Bit0
0
1
0
1
1
1
0
1
0x5D
CSRFORM 设置参数 P1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
0
0
0
CRX
配置为水平方向 8 个像素点 0x07
CSRFORM 设置参数 P2
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CM
0
0
0
CRY
配置为垂直方向 16 个像素点 0x8F
1
画面显示但不闪烁
0
画面以 FR/32Hz 的频率闪烁显示
1
画面以 FR/64Hz 的频率闪烁显示
4. OVLAY
OVLAY 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
0
1
0
1
1
0
1
0x5B
OVLAY 设置参数 P1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
0
0
0
OV
DM2
DM1
MX1
配置为显示区一位图形模式,显示区为简单逻辑或 0x04
OV:0 两层显示层合成,1 三层显示层合成。
MX1、MX0 设置
MX1
MX0
0
0
0
1
1
0
1
1
L1 or L2 or L3 简单逻辑或合成 (L1 xor L2) or L3 逻辑异或 (L1 and L2) or L3 逻辑与 L1 > L2 > L3 优先叠加
Bit0 M0 字符发生器选择位. 0 为内部字符发生器;1 为外部字符发生器。
0x30
配置值 0 0 1 1
0
0 0 0
P2
位 位定义
位含义
Bit7 WF 交流驱动波形选择位,通常取 1
Bit6
0
保留位
Bit5
0
保留位
Bit4
0
保留位
Bit3
0
保留位
Bit2
字符宽度,实际像素点为 FX+1
Bit1 FX
晶的行数,配置为 240(0xF0):
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
0x00 0x00 0xF0 0x40 0x00 0xF0 0x80 0x00 0xC0 0x00
3. DISP ON/OFF
DISP ON/OFF 命令字
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
标志位
0
0
0
0
0
0
1 为忙,0 为闲可以写入
/***************************************************************************** 函数名称:ra8835Reset 函数功能: 输入参数:无 输出参数:无 返回参数:无 *****************************************************************************/ static void ra8835Reset(void) {
FC 设置 FC1
FC0 光标状态
0 0 1 1
FP 设置 FP1 FP3 FP5 0 0 1 1
0
光标显示关闭
1
光标显示但不闪烁
0
光标以 FR/32Hz 的频率闪烁显示
1
光标以 FR/64Hz 的频率闪烁显示
FP0 显示一区显示状态
FP2 显示二、四区显示状态
FP4 显示三区显示状态
0
画面显示关闭
Bit4 Bit3
APL
无需滚动效果,所以取值 40
0 1
Bit2
0
Bit1
0
Bit0
0
0x28
P7
位 位定义
位含义
配置值
Bit7
AP 的低 8 位,虚拟屏宽度,以字节为单位, AP 取值为 C/R + 1 0
Bit6
或大于 C/R 值的整数,因为 RA8835 可以虚拟一个比液晶显示区 0
Bit5
RA8835_RST_LOW(); timer0ResetRa8835Count(); while(timer0GetRa8835Count() < TIMER0_40_MS); RA8835_RST_HIGH(); } /***************************************************************************** 函数名称:ra8835CheckBusy 函数功能:控制器忙状态判断 输入参数:无 输出参数:无 返回参数:无 *****************************************************************************/ static void ra8835CheckBusy(void) { RA8835_DB_IN();
函数名称:ra8835Send16BitData
函数功能:写
输入参数:uint16 data
输出参数:无
L/F
0 1
Bit2
1
Bit1
1
Bit0
1
0xEF
位 位定义
P7 位含义
配置值
Bit7
AP 的低 8 位,虚拟屏宽度,以字节为单位, AP 取值为 C/R + 1 0
Bit6
或大于 C/R 值的整数,因为 RA8835 可以虚拟一个比液晶显示区 0
Bit5
大的 RAM 区,从而很方便的实现屏的滚动效果。我的液晶功能 1
RA8835_AO_LOW(); RA8835_WR_HIGH();
RA8835_RD_LOW();
RA8835_RD_LOW();
//时序匹配,不然不满足最小时间要求
while(RA8835_BUSY == RA8835_CHECK_BUSY());
RA8835_RD_HIGH();
RA8835_DB_OUT(); } /***************************************************************************** 函数名称:ra8835SendCmd 函数功能:写命令字 输入参数:uint8 cmd 输出参数:无 返回参数:无 *****************************************************************************/ static void ra8835SendCmd(const uint8 cmd) {
Bit6
如 320*240 的液晶,一行字符数为(320÷8-1)=39;减一是参数 0