不会写矩阵按键

yctou 2008-05-15 02:24:38

一个矩阵按键的程序写了好几天,痛苦啊。单个按键按下没问题,可是按着一个再按其他的就不满意了

8*8矩阵,行列各接一个8位端口

这样的程序应该怎么写啊,才能各个按键独立,不受其他按键的影响啊。(按下某键就执行某键的功能一次)
...全文
237 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yctou 2008-05-22
  • 打赏
  • 举报
回复

还有, 我没接二极管,列上的键也经常试验同时按下,为什么没有烧呢?
yctou 2008-05-22
  • 打赏
  • 举报
回复

感谢 shuiyan
现在终于明白矩阵按键二极管的作用了。不加二极管真的危险。

不过“行列都要有二极管”“又防止多键齐按时,误读未按下的键”这两点还没明白
MBWQ 2008-05-21
  • 打赏
  • 举报
回复
to 1楼:
教科书上的程序能用么?产品和书只讲原理不同,产品要处理好多事情,哪有用delay程序消抖的?
to 2楼:
误读未按下的键 没想明白,跟二极管有什么关系?
程序对了,还会烧I/O口?
软件的实现?不明白你以为怎么实现

其实程序能写的出来,只是写的好不好。现在有点问题是消抖如何消?因为有64个按键,不知道如何消抖了!而且每个按键的功能要独立,按下就执行功能,不管其他键有没有按下
---------------------------------------------------------------------------------
你先说“哪有用delay程序消抖的?”然后你又说“现在有点问题是消抖如何消?”
我要你看教科书,是因为这是最基本的问题,没要你死抄教科书,觉得困难的话先写个2X2,不用二极管,只要n个上拉电阻
shuiyan 2008-05-19
  • 打赏
  • 举报
回复
不知道二极管什么作用?你是做硬件还是做纯软件的?你是做实验的还是做产品的?

4-Out 4-In

(O1,I1)
(O2,I1)
以上两键一起按下时,I1输入是正常的,但是O1,O2是相连的。扫描时,O1置高,o2置低,是这样的流程吧?那么相当于什么呢?相当于高电平直接接低电平,VCC直接接GND了。烧吧,开心的烧吧。so,O1,O2上必须有保护。
coding码场 2008-05-19
  • 打赏
  • 举报
回复
直接扫描IO就行了,4X4很基础的了.
yctou 2008-05-19
  • 打赏
  • 举报
回复
to 1楼:
教科书上的程序能用么?产品和书只讲原理不同,产品要处理好多事情,哪有用delay程序消抖的?
to 2楼:
误读未按下的键 没想明白,跟二极管有什么关系?
程序对了,还会烧I/O口?
软件的实现?不明白你以为怎么实现

其实程序能写的出来,只是写的好不好。现在有点问题是消抖如何消?因为有64个按键,不知道如何消抖了!而且每个按键的功能要独立,按下就执行功能,不管其他键有没有按下
yctou 2008-05-19
  • 打赏
  • 举报
回复

都不负责任。不满意
shuiyan 2008-05-16
  • 打赏
  • 举报
回复
多键齐按的实现重点是硬件上:行列都要有二极管,即防止烧IO口,又防止多键齐按时,误读未按下的键。

软件的实现很简单:读到一个键值后不返回,而是继续读,直到所有行列都读完。
MBWQ 2008-05-15
  • 打赏
  • 举报
回复
找本教科书来看看得了

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧