搜索
bottom↓
回复: 44

单片机2个引脚识别6个按键

  [复制链接]

出0入0汤圆

发表于 2012-6-7 09:39:28 | 显示全部楼层 |阅读模式
本帖最后由 86hupeng 于 2012-6-7 12:02 编辑

利用单片机2个引脚识别6个按键
大概的程序如下,具体的程序还有待改进
#define S1    1
#define S2    2
#define S3    3
#define S4    4
#define S5    5
#define S6    6  

//***************两IO出六键*************************
unsigned char KeyValue(void)
{
        unsigned char KeyTemp;
        if(!IO1&&!IO2) KeyTemp=S3;//如果都为低,则说明是S3
          else if(!IO1) KeyTemp=S2;
           else if(!IO2) KeyTemp=S1;
             else
                     {
                             IO1=1;//拉高IO1,来读取状态
                             IO2=0;//扫描,置IO1=0;
                             if(!IO1) //IO1==0的话,只有S4或S5按下会出现               
                                         { //反向扫描按键
                                                 IO2=1;//拉高IO2,来读取状态
                                                 IO1=0;        
                                                 if(!IO2) KeyTemp=S4;//IO2==0的话,只能是S4按下会出现   
                                          else       KeyTemp=S5;
                                         }         
                             else//只能是S6了*/
                                             KeyTemp=S6;                             
                     }
        IO1=1;
        IO2=1;
        return(KeyTemp);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-6-7 09:48:14 | 显示全部楼层
GOOD 收了。

出0入0汤圆

发表于 2012-6-7 10:07:15 | 显示全部楼层
留着有用.

出0入0汤圆

发表于 2012-6-7 10:14:06 | 显示全部楼层
留着学习

出0入0汤圆

发表于 2012-6-7 10:21:07 | 显示全部楼层
收藏了

出0入0汤圆

发表于 2012-6-7 10:41:36 | 显示全部楼层
这个不错,学习学习

出0入10汤圆

发表于 2012-6-7 10:47:28 | 显示全部楼层
这样每次检测是否肯定有一按键产生?如果任何按键都没按下呢?是否应该在
                             else//只能是S6了*/
                                             KeyTemp=S6;   
的地方改成这样呢?
                             else//只可能是S6了*/
                                             {
                                                IO2=1;//拉高IO2,来读取状态
                                                 IO1=0;        
                                                 if(!IO2) KeyTemp=S6;//IO2==0的话,只能是S6按下会出现
                                                 else  KeyTemp=0;//无键
                                            }  

出0入0汤圆

发表于 2012-6-7 10:54:02 | 显示全部楼层
学习学习...一下啊..

出0入0汤圆

 楼主| 发表于 2012-6-7 10:59:39 | 显示全部楼层
chengtina 发表于 2012-6-7 10:47
这样每次检测是否肯定有一按键产生?如果任何按键都没按下呢?是否应该在
                             el ...

恩,要改滴,我上面只是大改算法,不同单片机肯定还有那么一些不同的

出0入0汤圆

发表于 2012-6-7 11:25:47 | 显示全部楼层
7楼,这样的话还有可能是S4和S6按下

出0入0汤圆

发表于 2012-6-7 11:34:08 | 显示全部楼层
收下了,学习中

出0入0汤圆

发表于 2012-6-7 11:50:21 | 显示全部楼层
好像楼主发的图片挂了。。。。。。。。。。

出0入0汤圆

 楼主| 发表于 2012-6-7 12:01:02 | 显示全部楼层
lxa0 发表于 2012-6-7 11:50
好像楼主发的图片挂了。。。。。。。。。。

的确是不知道为什么就挂了,现在重发

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-7 12:32:46 | 显示全部楼层
idea不错。

出0入0汤圆

发表于 2012-6-14 16:05:55 | 显示全部楼层
想法不错,有谁实际用过吗。

出90入372汤圆

发表于 2012-7-11 12:56:45 | 显示全部楼层
或许日后有用 顶

出0入0汤圆

发表于 2012-7-11 21:45:46 | 显示全部楼层
和当初的3个引脚22个IO一个道理
头像被屏蔽

出0入0汤圆

发表于 2012-7-11 22:09:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-7-12 11:12:25 | 显示全部楼层
  给力啊

出0入0汤圆

发表于 2012-7-12 20:02:31 | 显示全部楼层
作个记号,或者以后都不会用到!

出0入0汤圆

发表于 2012-7-14 00:30:27 来自手机 | 显示全部楼层
正要用呢

出0入0汤圆

发表于 2012-7-14 09:47:28 | 显示全部楼层
给力,赞一个

出0入0汤圆

发表于 2012-7-14 20:15:49 | 显示全部楼层
还可以 学习学习

出0入0汤圆

发表于 2012-7-14 20:47:58 | 显示全部楼层
不懂也mark一下

出0入0汤圆

发表于 2012-7-14 20:54:14 | 显示全部楼层
太有创意了,收藏了

出0入0汤圆

发表于 2012-7-14 21:46:27 | 显示全部楼层
mark,以后可能有用

出0入0汤圆

发表于 2012-7-14 22:01:23 | 显示全部楼层
有想法。。。算法坳不清了

出0入0汤圆

发表于 2012-7-15 00:05:57 | 显示全部楼层
很好很强大。。。。。。MARK

出0入0汤圆

发表于 2012-7-15 00:26:06 | 显示全部楼层
很强大。。。。。。。。

出0入0汤圆

发表于 2012-7-15 02:24:34 | 显示全部楼层
太有学习价值了!!

出0入54汤圆

发表于 2012-7-15 22:36:30 | 显示全部楼层
或许日后有大用场!

出0入0汤圆

发表于 2012-7-16 11:13:03 来自手机 | 显示全部楼层
非常好,值得研究

出0入0汤圆

发表于 2012-7-20 11:30:27 | 显示全部楼层
51单片机,key4-key6检测不到

出0入0汤圆

发表于 2014-8-13 09:54:22 | 显示全部楼层
正需要,谢谢

出0入0汤圆

发表于 2014-8-13 10:03:34 | 显示全部楼层
收藏了,虽然可能用到的情况不多

出0入8汤圆

发表于 2014-9-1 12:51:23 | 显示全部楼层
这个略叼~

出0入213汤圆

发表于 2014-9-1 13:34:51 | 显示全部楼层
额外加了四个二极管,四个电阻,并且不支持组合按键,虽略屌,但不实用。

出0入0汤圆

发表于 2014-9-1 13:35:36 | 显示全部楼层
mark      

出0入0汤圆

发表于 2014-9-2 09:16:49 | 显示全部楼层
不支持两个同时按哈哈哈哈哈哈

出0入0汤圆

发表于 2018-1-22 17:40:50 | 显示全部楼层
好东西,留着慢慢研究!!!!!!!!!!!

出0入8汤圆

发表于 2018-1-24 00:14:57 | 显示全部楼层
不看好这个电路。特别是S3键。

出5入10汤圆

发表于 2018-1-24 10:39:42 | 显示全部楼层
收藏 备用~

出0入0汤圆

发表于 2018-2-12 16:29:59 | 显示全部楼层
拓展一下硬件设计的思路  不错的    原理领会了   实际中  一般情况下  估计是不会使用的  谢谢分享

出0入0汤圆

发表于 2018-2-12 21:44:14 | 显示全部楼层
思路很好,研究研究

出0入0汤圆

发表于 2018-9-28 16:19:55 | 显示全部楼层
好屌
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 06:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表