串行接口键盘控制器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的外中断端INT0相连,由于INT0为低电平中断,故而加入了一级非门以使“KEY”反相后与其相连。与图3电路对应的键盘处理程序如下:
;位定义
COUNT DATA 70H
RXBUF DATA 20H
;I/O定义
DIO BIT P1.4
CS BIT P1.2
CLK BIT P1.3
;主程序
MAIN:MOV SP,#50H
MOV P1,#0FFH ;将P1口置为输入
SETB IT0 ;INT0为边沿触发
SETB PX0 ;INT0为高优先级中断
SETB EX0 ;开INT0中断
SETB EA ;CPU开中断
LCALL DL25ms ;延时25ms等待SK5278复位
;INT0键盘中断程序
INT0:LCALL RECEIVE ;读键值
MOV A,RXBUF ;键值送A
CJNE A,#00H,KEY-1 ;K0键未按下转下键
LJMP KEY0 ;K0键按下,转入相应键值处理子程序
KEY1:CJNE A,#01H,KEY-2;
LJMP KEY1 ;K1键按下,转入相应键值处理子程序
KEY2:…
……
《串行接口键盘控制器SK5278及其在单片机系统中的应用(第2页)》