设置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 编辑 ]
引用: 原帖由 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特性,比如上下拉、悬空、初始状态等。
引用: 原帖由 huang91 于 2012-1-16 15:03 发表 对啊,这种就8个口。以前做实验时用的4*4还有VCC和GND共10个口。
这个是典型的4*4的矩阵键盘,我用Atmega16调试过是可行的,这种矩阵键盘比平时学习板用到的微动开关做成的4*4矩阵键盘手感要好一点,后面还带有贴纸,用于固定。
引用: 原帖由 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
引用: 原帖由 huang91 于 2012-1-16 16:18 发表 先谢谢你的帮助。 矩阵键盘我以前调过。应该是IO的问题。我用的是F149,好像是没上拉。应该怎么初始化呢? 我横4个,列4个是分别接P2的。 先做如下端口初始化: P2DIR=0xF0; P2OU ...
没有上拉的话,可以考虑外接。