不会写矩阵按键

xiaozhou   2008-5-15 14:24 楼主

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

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

  这样的程序应该怎么写啊,才能各个按键独立,不受其他按键的影响啊。(按下某键就执行某键的功能一次)

回复评论 (9)

找本教科书来看看得了
点赞  2008-5-15 15:44
多键齐按的实现重点是硬件上:行列都要有二极管,即防止烧IO口,又防止多键齐按时,误读未按下的键。

软件的实现很简单:读到一个键值后不返回,而是继续读,直到所有行列都读完。
点赞  2008-5-16 16:55

  都不负责任。不满意
点赞  2008-5-19 15:15
to 1楼:
  教科书上的程序能用么?产品和书只讲原理不同,产品要处理好多事情,哪有用delay程序消抖的?
to 2楼:
  误读未按下的键  没想明白,跟二极管有什么关系?
  程序对了,还会烧I/O口?
  软件的实现?不明白你以为怎么实现

  其实程序能写的出来,只是写的好不好。现在有点问题是消抖如何消?因为有64个按键,不知道如何消抖了!而且每个按键的功能要独立,按下就执行功能,不管其他键有没有按下
点赞  2008-5-19 17:17
直接扫描IO就行了,4X4很基础的了.
点赞  2008-5-19 20:24
不知道二极管什么作用?你是做硬件还是做纯软件的?你是做实验的还是做产品的?

4-Out 4-In

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

  其实程序能写的出来,只是写的好不好。现在有点问题是消抖如何消?因为有64个按键,不知道如何消抖了!而且每个按键的功能要独立,按下就执行功能,不管其他键有没有按下
---------------------------------------------------------------------------------
你先说“哪有用delay程序消抖的?”然后你又说“现在有点问题是消抖如何消?”
我要你看教科书,是因为这是最基本的问题,没要你死抄教科书,觉得困难的话先写个2X2,不用二极管,只要n个上拉电阻
点赞  2008-5-21 07:52

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

  不过“行列都要有二极管”“又防止多键齐按时,误读未按下的键”这两点还没明白
点赞  2008-5-22 14:51

  还有, 我没接二极管,列上的键也经常试验同时按下,为什么没有烧呢?
点赞  2008-5-22 16:12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复