📄 ra8835.h
字号:
/*
*********************************************************************
ra8835 操作的相关定义的头文件
*********************************************************************
*/
#ifndef RA8835_H
#define RA8835_H
#include "c8051f020.h"
/***************************与CPU接口管脚定义************************/
#define lcd_A0 P16
#define lcd_WR P13
#define lcd_RD P14
#define lcd_CS P15
#define lcd_RES P12
#define lcd_CMD P5
#define lcd_DATA P5
/***************************配置命令定义******************************/
//初始化设置命令和后续8字节参数
#define SystemSet 0x40 // 时序要求:A0=1/WR=0;/RD=1
/*
SystemSet初始化设置参数表,共八字节具体定义如下:
P1 [ 0 | 0 | IV | 1 | W/S | M2 | M1 | M0 ] = 0x30
0 0 1 1 0 0 0 0
IV.... 负向字符显示时屏面边界选择位。=0为首行作为边界;=1则无边界。通常=1
[说明]在文本方式下,第一行显示的字符是顶天的,没有天头。所以在制作负向字
符显示时的效果就不太理想。此时使用IV参数位在显示控制时制造出一行空行
作为天头,以达到理想的显示效果。
W/S... 适配驱动系统选择位。改为将选择产生驱动时序信号的类型。0为单屏结构液晶
显示驱动系统;1为双屏结构液晶显示驱动系统
M2.... 外部字符发生器的字体选择位。0=8*8;1=8*16
M1.... 外部字符发生器Cgram代码区选择位。0选择Cgram1字符代码为0x80~0x9f;1选择
Cgram1 + Cgram2,字符代码为0x80~9f和0xe0~0xff
M0.... 字符发生器选择位. 0为内部字符发生器;1为外部字符发生器。
[说明]M2,M1,M0组合设置了字符发生器的结构
P2 [ WF | 0 | 0 | 0 | 0 | FX ] = 0x87
1 0 0 0 0 1 1 1
WF.... 交流驱动波形选择位。0为C型驱动波形,行翻转驱动波形,交流驱动波形输出
WF每16行翻转1次;1为B型驱动波形,交流驱动波形输出每一帧翻转1次,通常
取1
FX.... 字符体宽度设置参数(点列数)。若FX大于实际字符体的宽度,则余出的部分
作为空点置于字符体的右侧,形成字符字间距。FX取值在0~7范围内,代表1~8
列/字符体。
P3 [ 0 | 0 | 0 | 0 | FY ] = 0x07
0 0 0 0 0 1 1 1
FY.... 字符体高度设置参数(点行数)。若FY大于实际字符体的宽度,则余出的部分
作为空点置于字符体的下方,形成字符行间距。FY取值在0~0xf之间,代表1-16
点行/字符体
P4 [ C/R ] = 0x27
C/R... 有效显示窗口宽度设置参数。C/R值设置了显示屏上一行显示所占显示存储器的
单元数(字节数)。C/R取值在0~0xef范围内,表示显示屏上一个显示行所占
显示存储器的单元数为1~240个字节。
[说明]C/R值可以选择得比显示屏的实际长度值小,但是余留部分不能超过64点列
=8字节
P5 [ TC/R ] = 0x42
TC/R.. 驱动频率的时间常数。TC/R是晶振频率Fosc转换成液晶显示驱动工作频率FR的
时间常数。它可以简单地由下式求出:
TC/R >= C/R +4
[说明] 该参数的设置有时是非常重要的。错误的设置可引起以下几种现象:
*行扫描停止且出现高对比度的水平线
*显示不稳定,出现闪烁或全亮或全暗
*LP信号不足或不存在。
在取值时还是允许有一定的选取范围的。
TC/R与震荡频率的关系为: Fosc >= 9 * TC/R * L/F * FR
TC/R也可以由以上两个公式联合求出。FR为液晶显示帧扫描频率,通常=70Hz.
在控制大规模液晶显示模块时,最大震荡频率10MHz下,要满足TC/R取值要求,
就要降低液晶显示的帧扫描频率了。
P6 [ L/F ] = 0xF0
L/F... 扫描驱动的帧参数。L/F值设置了控制器所要控制的液晶显示驱动系统的扫描数,
其倒数为占空比系数。当液晶显示驱动系统为单屏结构时,L/F即为1帧的扫描
行数;当液晶显示驱动系统为双屏结构时,L/F为1帧扫描行数的2倍,此时L/F
必须为偶数值。L/F取值范围在0~0xff范围内,对应扫描行数为1~256行。
P7 [ APL ] = 0x30
P8 [ APH ] = 0x00
ap在显示存储器内分配一个显示行的单元数(字节数)。ap为双字节参数,apl为低8位,
aph为高8位。通常AP取值为C/R + 1或大于C/R值的整数,以方便计算个显示行的显示存
储器地址。
*/
//显示域设置。A0=1..写指令/0...读写参数。后续10字节参数串ParaScrTableA[]
#define Scroll 0x44 // 时序要求:/WR=0;/RD=1
#define BasePart1 0x00
#define BasePart2 0x40
#define BasePart3 0x80
#define BasePart4 0x00
/*..............................................................................
该指令设置了四个显示区的起始地址SAD合格区所控制的显示行数SL.设置的参数与‘系统
设定’指令设置的参数结合将确定显示RAM中的各显示区域范围与有效的显示区域。定时间
定量地递增或递减某区的起始地址SAD,将产生显示画面的平滑滚动。该指令有10个参数。
部分参数的设置是有效的,但设置的顺序不能改变也不能省略。Scroll初始化设置参数表,
共10字节具体定义如下:
................................................................................
P1 [ SAD1L ] = 0x00
P2 [ SAD1H ] = 0x00
SAD1显示1区首地址。SAD1确定了第1显示区的起始地址。他由双字节组成。
本区为显示主区间,占用8K空间
P3 [ SL1 ] = 0xF0
SL1显示一区所控制的显示屏上的行数:0~(L/F)
................................................................................
P4 [ SAD2L ] = 0x00
P5 [ SAD2H ] = 0x40
SAD2显示2区首地址。SAD2确定了第2显示区的起始地址。他由双字节组成。
本参数表定义这个区占用8K空间
P6 [ SL2 ] = 0xF0
SL1显示2区所控制的显示屏上的行数:0~(L/F)
................................................................................
P7 [ SAD3L ] = 0x00
P8 [ SAD3H ] = 0x40
SAD3显示3区首地址。SAD2确定了第3显示区的起始地址。他由双字节组成。
作为文本区定义,占用2K空间
................................................................................
P9 [ SAD4L ] = 0x00
P10 [ SAD4H ] = 0x48
SAD4显示4区首地址。SAD2确定了第4显示区的起始地址。他由双字节组成。
作为文本区定义,占用2K空间
................................................................................
后面预留空间将作为cgram使用
..............................................................................*/
//休闲模式设置。A0=1;/WR=0;/RD=1;后续参数:无
#define SleepIn 0x53
/*该指令强制RA8835进入休闲工作方式。在该指令输入后,RA8835等在扫描最后一行时
将列驱动器清零;置YDIS=0,使液晶显示驱动系统关闭显示驱动电源;将显示存储器管理信
号/VCE=1,以保护显示数据不被破坏;终止包括振荡器在内的所有内部逻辑电路的运行,但
保存原设置的参数,使其进入休闲方式。退出休闲方式需要计算机重新写入’SYSTEM SET’指
令的P1参数。该指令无效。
*/
//显示状态设置。A0=1..ON/0..OFF;/WR=0;/RD=1.后续参数1字节:
#define DispOn 0x59
#define DispOff 0x58
/*代码 [ 0 1 0 1 0 0 0 ON/OFF ]
该指令设置了显示的各种状态。他们有显示开关的设置,光标的显示状态的设置和各显示区
显示状态的设置。在指令代码中就含有一个参数位:=0关显示;=1开显示。
[说明]该参数位控制着显示的总开关状态。
后续参数:[ FP5 FP4 FP3 FP2 FP1 FP0 FC1 FC0 ]
FC1,FC0..光标状态设置位。他们组合设置了光标显示的4种状态:
==========================================
FC1 FC0 光 标 状 态
==========================================
0 0 光标显示关闭
0 1 光标显示但不闪烁
1 0 光标以 FR/32Hz 的频率闪烁显示
1 1 光标以 FR/64Hz 的频率闪烁显示
==========================================
[注]光标闪烁的亮与暗占空比为7:3
FP1,FP0...显示一区状态设置位.他们组合设置了一区显示的4种状态
FP3,FP2...显示二、四区状态设置位.他们组合设置了二、四区显示的4种状态
FP5,FP4...显示三区状态设置位.他们组合设置了三区显示的4种状态
==========================================
FP1 FP0 显示一区显示状态
FP3 FP2 显示二、四区显示状态
FP5 FP4 显示三区显示状态
==========================================
0 0 画面显示关闭
0 1 画面显示但不闪烁
1 0 画面以 FR/32Hz的频率闪烁显示
1 1 画面以 FR/64Hz的频率闪烁显示
==========================================
[注]画面闪烁的亮与暗占空比为7:3
[说明]:这些参数位都是控制着各显示区的显示状态。该状态的实现需要在总开关为开状态
时有效。
*/
//显示合成方式设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数1字节:
#define Ovlay 0x5b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -