5855|11

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

键盘扫描,有点疑惑 [复制链接]

4×4阵列键盘扫描


判断是否有键按下,先对键盘所在端口写0x0f,再回读,不为0x0f,表示有键按下

在程序里我是这样处理的

先配制成开漏输出,写0x0f,再配制成浮空输入,读端口,发现每次读到的都是0xff.

是不是在第二次配制成输入的时候,IO寄存器的值就改变了

大家做阵列键盘扫描是怎么配制IO的啊。。。
此帖出自stm32/stm8论坛

最新回复

我觉得9楼说的对,一般都是行线和列线一个为输出一个为输入。  详情 回复 发表于 2011-8-6 22:15
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

为什么要先写0f呢? 没搞懂

                                 为什么要先写0f呢? 没搞懂
此帖出自stm32/stm8论坛
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

写不写0f不是问题 的关键

写什么都行

问题是当键盘没有键按下时,写出去的和读回来的值不一样
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 

没人关注,是太简单了吗。。。。

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 

请画出电路图再讨论

                                 除非你的键盘上有锁存器,否则不可能写出去什么数值又读回来什么数值。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 

列和行输出相反电平后,

                                 只能设高四位或低四位为输入,不能都设为输入,否则输出的电平自然没有了
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 

电路就是16个键盘按4×4接成阵列直接接到IO口(共8根IO线)

在没有按键按下的情况下,写出去的值和读回来的值应该是一样的



STM32的IO没有缓存吗?
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 

回6楼

问题是我要把行和列的状态读回来啊

不然怎么判断阵列中有哪个点按下。。。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 

STM32的输出端有缓存,但在端口为输入时信号线不受STM32控制

                                 你的阵列键盘扫描算法好像有问题,通常都是从行输出再从列输入,或从列输出再从行输入,没见过你这样从同样的线上输出再从同样的线上输入的。
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 

输出上拉也可,输入读 PIN

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 

看来楼主还没搞明白行列扫描

                                 1翻转法,2逐行扫描法.
此帖出自stm32/stm8论坛
 
 
 

回复

41

帖子

0

TA的资源

一粒金砂(中级)

12
 
我觉得9楼说的对,一般都是行线和列线一个为输出一个为输入。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表