键盘检测之74hc165

对于多个按键的检测,一般多采用矩阵键盘来进行检测,但也会占用单片机多个IO口。 74HC165是一款高速MOS集成芯片,它的功能主要是并行输入,

对于多个按键的检测,一般多采用矩阵键盘来进行检测,但也会占用单片机多个IO口。那么,对于单片机IO端口有限的键盘检测电路该如何解决呢?答案就是74HC165芯片。

键盘检测之74hc165

74HC165是一款高速MOS集成芯片,它的功能主要是并行输入,串行输出。在实际键盘检测电路中,单片机只需要三个引脚(连接至缓冲使能脚PL、时钟脚CLK、串行输出引脚Q7或者Q\7\)便可实现单个74HC165下8个键盘的检测。同时,由于74HC165支持级联,则通过级联方式单片机只需要三个引脚便可检测8个以上的按键动作。

键盘检测之74hc165

74HC165脚位配置

键盘检测之74hc165

74HC引脚功能描述

常规电路如下图:

键盘检测之74hc165

74HC165按键检测电路

由电路图可知,串口输出使用的为反相口,因此按键未触发是状态为低电平,按键按下时,输出状态为高电平。需要注意的是串行输出的顺序-最先读出H,最后读出A。

简单的写一下,读取程序:

 unsigned char KEY_GetVal(void) //返回值为char型,8位
 {
 unsigned char i;
 unsigned char data;
 CLK_PIN = 1; 
 PL_PIN = 0; //HC165读按键
 PL_PIN = 1; //暂停HC165读按键
 data = 0;
 if(1==DATA_PIN) 
 {
 data |= 0x01; //此时DATA_PIN为data的最高位。
 }
 for(i = 0;i < 7;i++) //需要移位7次,才能读完
 { 
 CLK_PIN = 0; 
 CLK_PIN = 1; //时钟上升沿,HC165移位 
 data <<= 1; //data左移一位,为新来的数据空出最后一位
 if(1==DATA_PIN) //读入新来的数据到最后一位
 {
 data |= 0x01; 
 }
 }
 CLK_PIN = 0; 
 return(data); //经过7次循环后,D6,D5,D4,D3,D2,D1,D0被依次读入data的7个位中
 }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81268.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信