2 RA8806主要特性
RA8806的内部结构如图l所示。RA8806内置了4×8或8x8的键盘扫描接口,支持多键同时按下及按键时间长短判断功能;RA8806触摸屏控制器,支持了4线电阻式触摸屏扫描接口;一路可编程PWM控制器,可调节LCD面板的对比度或背光亮度;在与控制器接口方面,RA8806能够支持4位或8位数据总线宽度的8080/6800系列控制器;在显示效果方面,RA8806能够提供4级灰度显示。此外还提供了屏幕局部滚动、文字反白、粗体显示、文字放大与旋转等显示功能。
3 RA8806接口及编程
3.1 RA8806控制接口
RA8806支持8080和6800两种微控制器接口,由接口类型选择引脚MI的状态决定;MI接低电平时,选择8080接口,反之,选择6800接口。数据总线的宽度由引脚DB的状态决定:当DB接高电平时,数据总线的宽度为8位,反之,总线宽度为4位。在并行模式下,只要将RA8806和微控制器的对应引脚相连即可。对RA8806的控制访问,与8080/6800控制器对存储器的访问方式相同。需要注意的是引脚RS用来确定要传送的数据类型:RS为高电平时表示命令周期,RS为低电平表示为数据周期,对RA8806的访问类型如表l所示。
3.2 RA8806键盘接口
RA8806的矩阵键盘扫描接口应用起来非常方便,只要将KOUT[7:O]行扫描输出和KIN[7:O]列信号输人接上相应的按键即可,如图2所示。
与键盘扫描相关的寄存器有:扫描控制寄存器KSCR0和KSCRl,扫描数据寄存器KSDRO~KSDR2。在KSCRO中,最高位DB7是键盘扫描功能使能位。DB6为键盘矩阵大小选择位,DB6=1,键盘大小为4x8;DB6=O,键盘大小为8x8。DB[5:4]决定键盘消抖动的采样次数DB3为按键长按判断功能使能位。DB[2:0]决定键盘扫描的速度。KSCRl用来设置键盘唤醒功能及长按时间调整等。通过配置相应命令寄存器,RA8806的键盘扫描电路就能正常工作。
当有按键事件发生时RA8806可以通过引脚INT向系统控制器请求中断,由于RA8806的所有中断共用一个中断请求引脚INT。因此系统控制器需要读取RA8806的中断状态寄存器INTR,以判断中断来源,下面以Keil C51为例,给出键盘中断程序的主要代码:
3.3 RA8806触摸屏接口
RA8806内置一组10位A/D转换器和控制电路,用来连接4线电阻式触摸屏。只要将RA8806的X1和X2、Yl和Y2分别与触摸屏的对应引脚相连,并在Yl引脚接39~51 kΩ的上拉电阻即可,如图3所示。当触摸屏被有效触摸时,触摸点的X,Y坐标值被记录在RA8806的相应寄存器中,同时可以向微控制器申请中断。
与触摸屏相关的寄存器有:触摸屏控制寄存器TPCRl和TPCR2;触摸屏数据寄存器TPXR、TPYR和TPZR。TPCRl的DB7是触摸屏使能位;DB[6:4]决定采样触摸屏数据前的等待时间;DB[2:0]选择触摸屏A/D转换器的转换速度;TPCR2用来设置触摸屏的工作模式。触摸屏的数据寄存器TPXR和TPYR用来保存触摸点X、Y坐标值的高8位,而低2位则保存在TPZR,如果对触摸屏的分辨率要求不高,可忽略TPZR的内容。当触摸屏被接触时,信号不够稳定,为了避免误动作,通常采取连续读两次坐标值进行对比的方法加以消除,触摸屏中断服务程序的流程图如图4所示。