导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→在用单片机实现一个非编码键盘的时候遇到一个问题,请教各位大侠[hydbw]

 *第28268篇: 在用单片机实现一个非编码键盘的时候遇到一个问题,请教各位大侠

  
楼 主:hydbw 2004年12月10日22:01
 在用单片机实现一个非编码键盘的时候遇到一个问题,请教各位大侠
以键盘的行P1口以及列P2口是否为低电平的时候来辨别按键是否按下,但我这个键盘行列接触时大约有2k欧姆的电阻,经程序处理后输出的键值老会出错,89C51单片机接没有电阻的键盘就正常。请问,我如何才能让那个按下时带2k欧姆电阻的键盘正常工作呢?,软件程序改了都没什么用,好象只有在硬件上做文章了(我在P1口加了各式上拉电阻,也没什么用)。请各位大侠们帮我一把,多谢了!    email:huayaod@163.com
  
2楼:hydbw 2004年12月12日20:10
 顶一下!!!
  
3楼:guest 2004年12月13日08:58
 P1口可以不接上拉電阻
只要P0口作爲輸出的時候才需要上拉。
  
4楼:hydbw 2004年12月14日15:31
 多谢了,那电阻的问题有没有方法解决(按键的电阻是没法减小或去掉的
  
5楼:hydbw 2004年12月19日16:09
 再顶一下!!
  
6楼:Lichunfu 2004年12月19日18:06
 试试看!
我想了一下,想了两个方案:
      1、把键盘的输出线接一只数十K的上拉电阻,然后通过74HC04后接入单片机的IO口;因为单片机的工作电压为5V时,其IO口输入低电平时的最大电压VIL(Max)=0.9V,
IO口经过2K电阻和另一个输出为“0”的IO口相连时,该IO口的电压可能会超过0.9V,从而导致键盘扫描时输入数据出错,而74HC04在工作电压为5V时,其VIL(Max)=1.35V,这样的话输入数据就应该会比较可靠。
      2、如图所示,MCU的P2口输出为“1”时,不管按不按键,三极管都不会导通,P1为“1”,如果P2中的一根为“0”,此时如果与该口线相连的按键按下,则与该按键另一端相连的三极管就会导同,相应的P1口线为”0“。
     因为时间的关系,我只是从理论上分析了一下,没有实际焊出电路,仅供参考。
  
7楼:Lichunfu 2004年12月19日18:20
 方案2中的74HC04用74HC244代替可能更好(1、2脚接地)!
74HC244刚好是8位,只用一片就可以,使用时让1、2脚直接接地或者用一根口线了来控制它,如果用74HC04的话,如果要驱动8位就需要两片,有点浪费,而且输入数据是反相的;

>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:PIC单片机开发学习板

[下一篇主题]:《8位单片机的无线时代和无线时代的8051单片机》