[求助] 430IO好像悲剧了。这种薄膜按键有谁调过?

huang91   2012-1-16 14:26 楼主

 设置4个输入 ,4个输出。PxIN一直是0x00。

 

现在有个问题:

               如果       PxDIR=0xF0;  //高四位输出,低四位输入

                            //现在拿4根导线将Px.0--Px.3与Px.4--Px.7分别连接

                          //Px.0-->Px.4

                         //Px.1-->Px.5

                        //Px.2-->Px.6

                       //Px.3-->Px.7

                       PxOUT=0xF0;//高四位输出高电平

               那么 PxIN=?

=========================================================

问题解决。这种键盘注意上拉,否则PxIN不稳定哦。

 

[ 本帖最后由 huang91 于 2012-1-17 20:22 编辑 ]
  • 4_4.jpg
  • nokia.gif
单纯的EEer~

回复评论 (18)

4x4矩阵,这种没用过
点赞  2012-1-16 14:42

回复 沙发 shower.xu 的帖子

对啊,这种就8个口。以前做实验时用的4*4还有VCC和GND共10个口。
单纯的EEer~
点赞  2012-1-16 15:03

引用: 原帖由 huang91 于 2012-1-16 14:26 发表  设置4个输入 ,4个输出。PxIN一直是0x00。 现在有个问题:               如果       PxD ...

 

读进来的时候,无须考虑作为输出的高四位,只考虑作为输入的低四位的电平状态(PxIN & 0x0f)。

 

一般来说,要获取具体按下了哪几个键,应使用逐行扫描。

https://bbs.eeworld.com.cn/viewthread.php?tid=306902&page=1&fromuid=194149#pid1192623

 

另外,还要考虑IO特性,比如上下拉、悬空、初始状态等。

点赞  2012-1-16 15:05

引用: 原帖由 huang91 于 2012-1-16 15:03 发表 对啊,这种就8个口。以前做实验时用的4*4还有VCC和GND共10个口。

 

这个是典型的4*4的矩阵键盘,我用Atmega16调试过是可行的,这种矩阵键盘比平时学习板用到的微动开关做成的4*4矩阵键盘手感要好一点,后面还带有贴纸,用于固定。

点赞  2012-1-16 15:08

回复 楼主 huang91 的帖子

这种4*4的矩阵键盘,四个输出为高,四个为输入,只要扫描8个I/O状态就可以知道哪个按键被按下。
点赞  2012-1-16 15:09

引用: 原帖由 David_Lee 于 2012-1-16 15:08 发表   这个是典型的4*4的矩阵键盘,我用Atmega16调试过是可行的,这种矩阵键盘比平时学习板用到的微动开关做成的4*4矩阵键盘手感要好一点,后面还带有贴纸,用于固定。

 

源码如下:

https://bbs.eeworld.com.cn/viewthread.php?tid=303691&page=1&fromuid=194149#pid1177770

点赞  2012-1-16 15:12
把板子寄来。我给你调这程序。
点赞  2012-1-16 15:51

回复 4楼 David_Lee 的帖子

先谢谢你的帮助。

矩阵键盘我以前调过。应该是IO的问题。我用的是F149,好像是没上拉。应该怎么初始化呢?

我横4个,列4个是分别接P2的。

先做如下端口初始化:
        P2DIR=0xF0;
              P2OUT=0xF0;
如图:如果1键按下,那P2.0应该是高电平,可是用万用表量是0.4v。
      寄存器中P2IN也是0x00。
keyboard.jpg

[ 本帖最后由 huang91 于 2012-1-16 16:22 编辑 ]
点赞  2012-1-16 16:18

回复 6楼 peter_zheng 的帖子

对,这我了解过。
单纯的EEer~
点赞  2012-1-16 16:24

回复 8楼 青叶漂零 的帖子

不用了,您太热心了。
单纯的EEer~
点赞  2012-1-16 16:25

引用: 原帖由 huang91 于 2012-1-16 16:18 发表 先谢谢你的帮助。 矩阵键盘我以前调过。应该是IO的问题。我用的是F149,好像是没上拉。应该怎么初始化呢? 我横4个,列4个是分别接P2的。 先做如下端口初始化: P2DIR=0xF0; P2OU ...

 

没有上拉的话,可以考虑外接。

点赞  2012-1-16 17:12

回复 12楼 David_Lee 的帖子

430没问题,我有问题。居然IAR里忘记设置。昨天弄晚了早上起来晕的忘了。谢谢Lee!
单纯的EEer~
点赞  2012-1-16 17:21
这种东西挺好用的,里面就是一个开关,就像9楼画的那样,读取键值的话采用线翻转法比较合适,反正我觉得是这样,比扫描简单一些。具体资料自己找吧
点赞  2012-1-17 08:31
david说得好,最重要的就是要注意IO口。
强者为尊,弱者,死无葬身之地
点赞  2012-1-17 11:09
IO口要配置成弱上拉状态。
点赞  2012-1-17 12:33

回复 16楼 chunyang 的帖子

47k排阻搞定了
单纯的EEer~
点赞  2012-1-17 19:09

回复 14楼 jishuaihu 的帖子

恩,方法知道,就是IO上拉下拉要注意一下。
单纯的EEer~
点赞  2012-1-17 19:10

回复 15楼 辛昕 的帖子

对。
单纯的EEer~
点赞  2012-1-17 19:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复