串行接口键盘控制器SK5278及其在单片机系统中的应用
;位定义
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:…
……
KEY15:CJNE A,#0FH,KEYFH ;K15键未按下,中断返回
LJMP KEY15 ;KEY15键按下,转入相应键值处理程序
KEYFH:RET; 无键按下时中断返回读键盘值程序
RECEIVE:CLR CS ;读键盘数据有效
SETB DIO ;将DIO置为高电平输入状态
ACALL DL 15μs ;T1延时
MOV COUNT,#08H ;共八位数据
LOOP:SETB CLK
ACALL DL 15μs ;T2延时
MOV A,RXBUF
RL A ;数据左移一位
MOV RXBUF,A
MOV C,DIO ;读取一位数据
MOV RXBUF.0,C
CLR CLK
ACALL DL 15μs ;T3延时
DJNZ COUNT,LOOP
SETB DIO ;将DIO重置为高电平输入
ACALL DL 15μs
SETB CS ;读键盘数据无效
RETjavascript:window.open(this.src);" style="cursor:pointer;"/>
5 结束语
应用SK5278键盘控制器可使单片机系统的人机交互键盘接口电路及监控程序变得简单容易,同时减少了对单片机软硬件资源的占用,因而该器件是构成少数单片机键盘接口电路的一种较好的选择方案。