串行接口键盘控制器在单片机系统中的应用
利用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:… …… 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 ;读键盘数据无效 RET 应用SK5278键盘控制器可使单片机系统的人机交互键盘接口电路及监控程序变得简单容易,同时减少了对单片机软硬件资源的占用,因而该器件是构成少数单片机键盘接口电路的一种较好的选择方案。
5 结束语
- 串行接口键盘控制器SK5278在单片机系统中的应用(10-09)
- 剩余电流保护器单片机系统的抗干扰设计(12-02)
- 单片机系统印刷电路板设计(11-28)
- 51单片机系统应用(11-26)
- 单片机系统硬件抗干扰的常用方法(11-24)