按键扫描:按键也能够这么设计!

小微 科技按键扫描:按键也能够这么设计!已关闭评论103字数 1344阅读模式
摘要一些开发板上自带的4*4矩阵按键可以通过行列扫描的方式用8个I/O口实现按键位置的确定,那么,动动脑筋思考一下,用两个I/O口,只使用一些无源元件最多可以扫描出几个按键呢?万万在设...

一些开发板上自带的4*4矩阵按键可以通过行列扫描的方式用8个I/O口实现按键位置的肯定,那么,动动脑筋思考一下,用两个I/O口,只使用一些无源元件至多可以扫描出几个按键呢?

万万在设计四个方向加之一个肯定键的按键时突发奇想,发现两个I/O口如果只使用二极管和高电祥和地线的话,至多可以扫描出10个按键,而只用二极管可以做到五个按键的扫描,于是万万就设计出了这样一款按键文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

按键正面文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

背面文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

不少开发板的I/O口既可以输入也能够输出,咱们定义这两个I/O口为A以及B,再加之GND一共三个插针。当A做输入时,B只能做输出,B做输入时同理A也只能做输出,这样就有了两个按键;当A做输出时,排除了提到的重复情况,A还可以输出给GND,B也同理,就又有了两个按键;最后,A以及B可以同时输出到GND,这样第五个按键就有了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

接下来谈论一下将这五个按键结合在一块板上的可行性,要想各个按键互不干扰,就要让按键按下的瞬间,电流只作用在按下的按键所在的那一条路上,不能干扰别的按键,以避免造成误判,这时候二极管的使用就很奇妙地解决了这个问题。文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

按键原理图文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

咱们给上左中右下这五个按键编号1~5,下面以51单片机为例,万万教大家怎么编写按键扫描程序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

......sbit azz=P1^0; //定义两个用到的I/O口sbit bzz=P1^1;void delay(unsigned int i) //定义延时函数,用于按键的消抖{while(i--);}void showzz(unsigned char i) //定义每一个按键对应执行的程序{if(i==1){ ...... ......}}......void getzz() //按键读取函数{azz=1; //先判断A、B同时输出到地的按键是不是按下bzz=1;if(azz==0,bzz==0)delay(1000); //消抖(下面再也不赘述)if(azz==0,bzz==0)showzz(3); //执行按键3即“中”按键被按下的程序else if(azz==1,bzz==0) //A输出到地的按键delay(1000);if(azz==1,bzz==0){showzz(5); //执行按键5即“下”按键被按下的程序}else if(azz==0,bzz==1) //B输出到地的按键delay(1000);if(azz==0,bzz==1){showzz(1); //执行按键1即“上”按键被按下的程序}else{ azz=1; //A输出到B的按键bzz=0;if(bzz==1)delay(1000);if(bzz==1)showzz(2); //执行按键2即“左”按键被按下的程序else{azz=0; //B输出到A的按键bzz=1;if(azz==1)delay(1000);if(azz==1)showzz(4); //执行按键4即“右”按键被按下的程序elseshowzz(6);}}}}......void main(){while(1){ ......getzz();//调用按键读取函数 ......}}文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

经由万万的讲授,不使用芯片,轻松实现两个I/O口对五个按键的扫描,你学会了吗。文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

以上就是微观生活(93wg.com)关于“按键扫描:按键也能够这么设计!”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/22169.html

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/22169.html