找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 863|回复: 6
打印 上一主题 下一主题
收起左侧

求指导编写这个单片机键盘扫描程序的思路

[复制链接]
跳转到指定楼层
楼主
ID:1015398 发表于 2022-4-3 14:33 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

8CAAAB06-5B84-4297-9AD6-ED6001E77F1F.png (149.23 KB, 下载次数: 32)

8CAAAB06-5B84-4297-9AD6-ED6001E77F1F.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2022-4-4 13:02 | 只看该作者
"由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现"这句话是从哪里复制来的,我怎么老是看到?
网上随便找一个键盘扫描的教程,跟着认真看,基本就有思路了
回复

使用道具 举报

板凳
ID:161164 发表于 2022-4-4 16:22 | 只看该作者
那句话是admin加的

思路就是
1. 控制P14~P17输出高电平,P10~P13输出低电平
2. 看看P14~P17有没有被拉低,有去3,没有去1
3. 延时消抖,看看P14~P17有没有被拉低,有去4,没有去1
4. 记下哪一脚被拉低,然后控制P10~P13输出高电平,P14~P17输出低电平
5. 看看P10~P13有没有被拉低,有去6,没有去1
6. 延时消抖,看看P14~P17有没有被拉低,有去7,没有去1
7. 记下哪一脚被拉低,然后结合第4步的记录,找出哪一键被按下


回复

使用道具 举报

地板
ID:776619 发表于 2022-4-4 21:53 | 只看该作者
1。先低位输出四个0,即0XF0:1111 0000.
2.有按键时读它的值,比如是第一个键:这时读出的数是0xE0:1110 0000.
3.马上把低四位输出为1.这时记住了是第一列有键了。即0XEF:1110 1111.
4.这时键还在按着,读入它的值,这时读得的数是0XEE:1110 1110.
5.根据这个零的组合行列可以知是第一个键被按下了。
6.同样类推,第二个键的话最后得到的是0XED:1110 1101.
7.如此类推4X4十六个键就可以得出了。键16的值为0X77:0111 0111
反正是读出的数两个零在不同位得一个键。

回复

使用道具 举报

5#
ID:776619 发表于 2022-4-4 21:57 | 只看该作者
第三步是把读出的值 或运算0X0F就行。
回复

使用道具 举报

6#
ID:776619 发表于 2022-4-4 22:00 | 只看该作者
也就是按键期间读两次键值,第一次读出的值用来低位全部为1后马上输出,再读第二次才是能得到正确的键位。
回复

使用道具 举报

7#
ID:624769 发表于 2022-4-4 22:03 | 只看该作者
Y_G_G 发表于 2022-4-4 13:02
"由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序 ...

大多 疑似直接求程序的 帖子, 会由版主 手动添加这句话。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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