搜索
bottom↓
回复: 136

两个I/O口可以实现五个按键吗?请大家帮忙!

[复制链接]

出0入0汤圆

发表于 2008-7-2 08:07:25 | 显示全部楼层 |阅读模式
PIC16F716(13个I/O)由于资源有限,步进电机用了四个I/O,1602液晶用了七个I/0,现只剩两个I/O可以用了,不知道能不能实现五个按键?

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

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2008-7-2 08:12:16 | 显示全部楼层
用74LS165扩展8个以上都可以

出0入0汤圆

发表于 2008-7-2 08:59:09 | 显示全部楼层
1602液晶的IO可以复用

出0入0汤圆

 楼主| 发表于 2008-7-2 09:51:31 | 显示全部楼层
谢谢各位支持,又学了几招!

出0入0汤圆

发表于 2008-7-4 21:17:17 | 显示全部楼层
笨啊,用ad撒

出0入0汤圆

发表于 2008-7-5 07:53:38 | 显示全部楼层
在我的项目中,有TLC2543,刚好有2个AD模拟输入没有使用,我就利用起来作为AD键盘.结果很好用,4个按键都不占用任何一个单片机IO口

出0入0汤圆

发表于 2008-12-27 11:33:56 | 显示全部楼层
                     加个164,或者复用CLK DATA。

出0入0汤圆

发表于 2008-12-27 11:41:47 | 显示全部楼层
三菱键盘

加两个二极管就可以扩展成6个按键了





 (原文件名:2io_6key.PNG) 

本贴被 cowboy 编辑过,最后修改时间:2008-12-27,14:20:30.

出0入0汤圆

发表于 2008-12-27 12:51:41 | 显示全部楼层
楼上好想法..

出0入0汤圆

发表于 2008-12-27 12:51:42 | 显示全部楼层
楼上好想法..

出0入0汤圆

发表于 2008-12-27 13:07:39 | 显示全部楼层
如果是AD口,一个IO就可以做5个键盘了

出10入95汤圆

发表于 2008-12-28 22:39:25 | 显示全部楼层
三菱键盘

艺术

出0入0汤圆

发表于 2008-12-28 22:44:20 | 显示全部楼层
AVR的话

两个IO至少9个键



http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1600359&bbs_page_no=1&search_mode=3&search_text=h2feo4&bbs_id=9999

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1563031&bbs_page_no=1&search_mode=3&search_text=h2feo4&bbs_id=9999

出0入0汤圆

发表于 2008-12-29 14:52:51 | 显示全部楼层
呵呵,那个三菱的键盘真是不错啊

出0入0汤圆

发表于 2008-12-29 15:29:45 | 显示全部楼层
楼上强。我的第一反应也是ADC

不过楼上那个菱形键盘怎么用?

本贴被 zhoujie 编辑过,最后修改时间:2008-12-29,15:31:34.

出0入0汤圆

发表于 2008-12-29 15:37:25 | 显示全部楼层
三菱键盘?

出0入0汤圆

发表于 2008-12-29 16:58:33 | 显示全部楼层
三菱键盘,不错。不过实际画电路图还是不要这样画,读图麻烦。思路和传统的加二极管的方式一样。

呵呵,给图的同时,给下软件思路比较好。这样大家可以参考思路自己写程序。

出0入0汤圆

发表于 2008-12-29 17:08:02 | 显示全部楼层
AD有不太可靠,我家的创维彩电的菜单按键就是AD的,现在已经一塌糊涂了,调音量能调出菜单,视频转换能关机,一点不灵光.

出0入0汤圆

发表于 2008-12-29 17:12:03 | 显示全部楼层
顶一下8楼。

另外,1602如果不需要读取的话,还可以把那个R/W口省下来的。

出0入46汤圆

发表于 2008-12-29 19:05:23 | 显示全部楼层
三菱键盘怎么用啊? 

出0入0汤圆

发表于 2008-12-30 00:04:11 | 显示全部楼层
三菱键盘扫描方法:

其实【13楼】 h2feo4 无机酸  的两个贴子中已经对各种键盘的扫描方式作了很详尽,很深入的介绍,这里再简单地重复一下。

以51单片机准双向口的IO为例,采用定时中断对两口线分三次扫描,扫描结果记录于静态变量Key_state中。对照下图,对于按下K1~K6,Key_state可以分别得到不同的值:0x06,0x09,0x00,0x0e,0x0d,0x0c

主程序中只要根据Key_state的值,并加以消抖,即可进行判断并执行相应的动作。



void Key_scan() interrupt 1         //定时器T0中断函数

{

    TH0 = 0xd9;                     //重装定时器,10ms@12MHz OSC

    TL0 = 0xf0;

    Key_state = 0;                  //初始化按键状态变量

    if (GPIO1) Key_state |= 0x08;   //检测两口线状态,并记录

    if (GPIO2) Key_state |= 0x04;

    GPIO1 = 0;                      //将口线1置0

    _nop();

    _nop();                         //等待口线2状态稳定

    if (GPIO2) Key_state |= 0x02;   //记录口线2状态

    GPIO1 = 1;                      //恢复口线1为1

    GPIO2 = 0;                      //将口线2置0

    _nop();

    _nop();                         //等待口线1状态稳定

    if (GPIO1) Key_state |= 0x01;   //记录口线1状态

    GPIO2 = 1;                      //恢复口线1为1

}    

    



 (原文件名:2io_6key.PNG) 

出0入0汤圆

发表于 2009-1-7 08:52:37 | 显示全部楼层
作个记号

出0入0汤圆

发表于 2009-1-7 11:21:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-16 14:10:24 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-6-16 14:33:25 | 显示全部楼层
呵呵,在补充下。
LCD的 DB数据脚也可以接按键,按键的另一端接到一起通过一个电阻接到另外的IO(假设为P1.0)上就可以了。

扫描的时候把P1.0先设为低电平,然后烧苗 DB 数据脚的电平状态,DB口上的哪个引脚为0就是哪个引脚按下。扫描完后要把P1.0置高。

出0入0汤圆

发表于 2009-9-25 17:08:42 | 显示全部楼层
ding~~~

出0入0汤圆

发表于 2009-10-12 15:21:57 | 显示全部楼层
做个记号先

出0入0汤圆

发表于 2009-10-12 20:35:38 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-10-12 21:30:21 | 显示全部楼层
cowboy
    高!!!!!!

出0入0汤圆

发表于 2009-10-19 14:12:19 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-10-19 15:46:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-10-20 21:12:09 | 显示全部楼层

出0入0汤圆

发表于 2009-10-20 21:16:14 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-10-23 22:47:28 | 显示全部楼层
这个三菱键盘好像有个BUG吧   


我是按照下面的表分析的,得出的值为响应的键值,几个按键同时按下的情况相当于将键值进行与运算,
      P1P2都输出高   P1=1 P2=0   P1=0 P2=1
       P1      P2      P1      P2
key1   0       1       0       1
key2   1       0       1       0
key3   0       0       0       0
key4   1       1       1       0
key5   1       1       0       1
key6   1       1       0       0
其中
key5&key4 即   1110&1101=1100=key6    也就是说用户如果在按KEY5时不小心同时按下了KEY4 这是就会出被误认为是KEY6按下,这种误判十分严重。  key1与key2同时按下会产生同样的错误。
其他几种按键同时按下时虽然 系统会产生误判,但误判的结果仍是所按下的键的中间一个,所以这种误判还是勉强可以允许的。

key1+key5=key1
key4+key2=key1
key4+key5=key6
key4+key6=key6
key5+key6=key6

出0入0汤圆

发表于 2009-10-23 23:04:51 | 显示全部楼层
将GND换成一个IO口 可以保证 每个按键均为独立按键

出0入0汤圆

发表于 2009-10-23 23:19:42 | 显示全部楼层
【34楼】 hexixiaomao 何夕小猫
这个三菱键盘是不支持组合键的,所以多键同按是会产生误判,只能在按键功能分配上避免冲突。当然“按KEY5时不小心同时按下了KEY4”,这个“不小心”也有可能是“按KEY5时不小心按错了KEY4”,即使是独立按键,同样会效果严重。

出0入0汤圆

发表于 2009-10-23 23:22:49 | 显示全部楼层
MARK 学习了

出0入42汤圆

发表于 2009-10-24 00:00:49 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-10-24 00:00:51 | 显示全部楼层
高!我也做个记号

出0入0汤圆

发表于 2009-10-24 07:08:10 | 显示全部楼层
还是用ad吧

出0入0汤圆

发表于 2009-10-24 08:29:45 | 显示全部楼层
妙!

出0入0汤圆

发表于 2009-10-24 08:49:03 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-10-24 12:14:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-29 16:50:45 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-6-3 00:40:13 | 显示全部楼层
标记 学习了

出0入0汤圆

发表于 2010-6-19 12:38:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-5 16:55:08 | 显示全部楼层
眼界大开

出0入0汤圆

发表于 2010-10-6 13:34:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-6 13:54:04 | 显示全部楼层
AD或或者电压比较器都可以!

出0入0汤圆

发表于 2010-10-7 17:34:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-18 17:15:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-19 09:48:43 | 显示全部楼层
超强的三菱键盘,这个要MARK

出0入4汤圆

发表于 2010-11-15 22:13:06 | 显示全部楼层
几号

出0入0汤圆

发表于 2010-11-21 16:11:10 | 显示全部楼层
学习下 那个三菱按键了

出0入0汤圆

发表于 2010-12-20 14:48:17 | 显示全部楼层
撑下三菱键盘,好靓,呵呵

出0入0汤圆

发表于 2010-12-23 14:07:58 | 显示全部楼层
回复【8楼】cowboy
三菱键盘
加两个二极管就可以扩展成6个按键了

<center>

-----------------------------------------------------------------------

不需要画得如此艺术感。Microchip有一个应用文档中提到可以用N个IO口接N*(N+1)个LED灯,当然,LED灯换成开关按钮也可以。

出0入0汤圆

发表于 2010-12-23 15:04:15 | 显示全部楼层
markkkkkkkkk

出0入0汤圆

发表于 2011-3-18 17:26:01 | 显示全部楼层
GOOD

出0入0汤圆

发表于 2011-3-18 17:56:51 | 显示全部楼层
mark

出0入13汤圆

发表于 2011-3-18 18:35:41 | 显示全部楼层
三菱按键得记下

出0入0汤圆

发表于 2011-3-18 18:59:35 | 显示全部楼层
三菱键盘记下

出0入0汤圆

发表于 2011-3-21 02:22:18 | 显示全部楼层
two lines + HC164s allow you to read as many as buttons as you wish.

出0入0汤圆

发表于 2011-3-21 20:56:26 | 显示全部楼层
mark!
ps:
millwood0 一直用英文回复,何故?

出0入0汤圆

发表于 2011-3-26 10:28:35 | 显示全部楼层
我也觉得用AD比较好

出0入0汤圆

发表于 2011-4-15 17:02:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-24 13:46:16 | 显示全部楼层
Microchip有一个应用文档中提到可以用N个IO口接N*(N+1)个LED灯

请问是怎么控制的?

出0入9汤圆

发表于 2011-5-24 14:02:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-15 00:54:11 | 显示全部楼层
受教啦!!!!!

出0入0汤圆

发表于 2011-6-15 10:54:22 | 显示全部楼层
含金量高的一定要mark

出0入0汤圆

发表于 2011-6-15 14:17:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-7 18:47:05 | 显示全部楼层
正在做这个按键呢,需要啊

出0入0汤圆

发表于 2011-7-15 16:24:55 | 显示全部楼层
真是好创意,好思路

出0入0汤圆

发表于 2011-7-18 15:01:44 | 显示全部楼层
有点意思啊

出0入0汤圆

发表于 2011-7-18 16:53:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-19 19:29:11 | 显示全部楼层
MARK 学习了

出0入0汤圆

发表于 2011-7-21 15:16:02 | 显示全部楼层
太有创意啦,艺术啊

出0入0汤圆

发表于 2011-8-3 15:56:58 | 显示全部楼层
不错学习了!

出0入0汤圆

发表于 2011-8-3 16:11:11 | 显示全部楼层
mark, 三菱二极管

出0入0汤圆

发表于 2011-8-3 16:48:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-13 00:14:27 | 显示全部楼层
三菱键盘 mark

出0入0汤圆

发表于 2011-10-13 09:19:54 | 显示全部楼层
三菱键盘 不错

出0入0汤圆

发表于 2011-10-13 09:19:54 | 显示全部楼层
三菱键盘 不错

出0入0汤圆

发表于 2011-10-13 12:43:47 | 显示全部楼层
三菱键盘 真不错

出0入0汤圆

发表于 2011-10-13 12:44:06 | 显示全部楼层
三菱键盘 真不错

出0入0汤圆

发表于 2011-10-13 12:48:27 | 显示全部楼层
三菱键盘 真不错

出0入0汤圆

发表于 2011-10-13 12:51:33 | 显示全部楼层
三菱键盘 真不错

出0入0汤圆

发表于 2011-10-13 13:35:59 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-10-13 15:21:46 | 显示全部楼层
外界译码器

出0入0汤圆

发表于 2011-10-13 15:23:16 | 显示全部楼层
三菱键盘很给力

出0入0汤圆

发表于 2011-10-13 19:15:19 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-10-18 12:44:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-18 13:58:24 | 显示全部楼层
三菱键盘,牛。。。

出0入0汤圆

发表于 2011-10-18 14:52:36 | 显示全部楼层
标记一下,三菱键盘真是牛,

出0入0汤圆

发表于 2011-10-20 21:25:18 | 显示全部楼层
标记 三菱键盘

出0入0汤圆

发表于 2011-10-20 22:44:09 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-10-22 11:38:13 | 显示全部楼层
这个不错 留着以后用的着

出0入0汤圆

发表于 2011-10-24 09:29:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-24 10:09:55 | 显示全部楼层
MARK!

出0入0汤圆

发表于 2011-10-24 12:28:20 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-10-7 13:13

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

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