对于以单片机为核心构成的智能仪器、仪表、工控设备及家用电器而言,构成人机交互的键盘接口电路是必不可少的,而相应的键盘管理软硬件设计却比较麻烦。简单的矩阵键盘存在着占用CPU软硬件资源多、响应速度慢、监控软件编制复杂等问题,专用的键盘接口器件如INTE8279、HD7219又往往具有LED数码管显示电路,如果仅使用其键盘管理功能,则存在硬件资源浪费,接口电路复杂,造价较高等问题,SK5278即是为解决上述键盘管理问题而推出的一款键盘控制芯片。
1特点及引脚功能
SK5278是福州贝能科技有限公司推出的采用PIC内核的键盘控制器。该芯片采用4线串行接口,可与任何种类的单片机接口;它具有按键有效指示输出,可用中断方式管理键盘;其行线X0~X3与列线Y0~Y3可构成4×4键盘矩阵;SK5278的16键键盘控制器内含去抖动处理电路,因而可直接输出
键值;此外,该器件的工作电源电压范围宽达4~6V;SK5278采用18脚双列直插DIP封装形式。其管脚排列如图1所示,管脚说明如表1所列。
2工作原理
SK5278可用行线X0~X3和列线Y0~Y3构成4×4矩阵键盘。同时在芯片内部可自动完成扫描、译码、去抖动处理等任务。当SK5278检测到有效的按键时,按键有效指示“KEY”引脚将从低电平变为高电平,并一直保持到按键代码被读取为止。在“KEY”为高电平期间,如果SK5278接收到“读键盘数据”命令,(即“CS”管脚变低),则输出当前按键的键盘代码,SK5278键盘代码的范围为00H-0FH。如果在接收到“读键盘数据”时没有按键按下,SK5278将输出FFH。在一次读键盘过程完成后,按键有效指示“KEY”将变为低电平。利用按键有效指示“KEY”与单片机的外部中断端相连,可完成具有中断的键盘监控功能,从而提高CPU的工作效率,减少按键响应时间。
SK5278工作时需要外接RC振荡电路以供系统工作,RC元件的典型值为R=3.3kΩ,C=20pF,此时的振荡频率约为4MHz,由于此振荡频率较高,故在印制电路板布线时,所有元件尤其是振荡电路的元件应尽量靠近芯片,并尽量使电路连线最短。
SK5278的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接外部RC复位电路,在上电或接收到RE-SET端的复位信号后,SK5278大约需要经过25ms的复位时间才会进入到正常工作状态。程序中应尽可能地减少CPU对SK5278的访问次数,以提高程序的效率。
值得注意的是,如果有2个键同时被按下,则SK5278只能给出其中一个按键的代码,因此SK5278不适合应用于需要2个或2个以上按键同时被按下的应用场合。如确实需要双键组合使用或组合增加键盘数量,可在单片机的某I/O脚接入一键与SK5278共同组成双键键盘监控电路。
3串行接口及时序
SK5278采用串行方式与单片机或微处理器接口,串行数据从“DIO”引脚输出,并由“CLK”端发出同步时钟脉冲。当SK5278检测到有键按下时,按键有效指示“KEY”变高,单片机检测到“KEY”信号变高后,便将片选端“CS”拉低,从而使得SK5278将取得的键盘数据在“CLK”引脚的上升沿从“DIO”脚依次送出。在单片机发出8个时钟脉冲后,即可从“DIO”端读取8位键值编码,该编码值的D7为最高位,D0为最低位,然后单片机再使片选“CS”变高,并使“KEY”端重新输出低电平,至此,读键值过程结束。SK5278的串行接口时序如图2所示。图中,T1表示从“CS”下降沿至第一个CLK上升沿的延时,典型值为15μs;T2为CLK脉冲宽度,典型值为10μs;T3为CLK脉冲时间间隔,典型值为10μs。
4应用电路
利用SK5278串行接口占用单片机口线少及无键按下时无须CPU干预的特点,可以很容易地构成单片机的键盘接口电路,图3所示是AT89C2051单片机与SK5278构成的键盘及接口电路。图中,AT89C2051的P1.2、P1.3、P1.4口线分别与SK5278的“CS”、“CLK”、“DIO”端相连。为了提高按键的响应速度并减少单片机的干预。本方案将SK5278的按键有效指示端“KEY”与AT89C2051的外中断端相连,由于为低电平中断,故而加入了一级非门以使“KEY”反相后与其相连。与图3电路对应的键盘处理程序如下:
5结束语
应用SK5278键盘控制器可使单片机系统的人机交互键盘接口电路及监控程序变得简单容易,同时减少了对单片机软硬件资源的占用,因而该器件是构成少数单片机键盘接口电路的一种较好的选择方案。