微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 74HC165读取按键键值的问题

74HC165读取按键键值的问题

时间:10-02 整理:3721RD 点击:

3 片74HC165读取按键,单片机与3片74HC165通过短线连接时没有问题,通过超过两米长的连接时,单片机只能识别一片74HC165的一个按键(D8键)!这是怎么原因造成的?有什么办法解决?
原理图如下:


程序如下:

  1. ulong hc165_cascade_drive(void)
  2. {  
  3.         uchar i=0;
  4.         ulong read_data=0;

  5.         HC165_PL_dr=0;                             //置入控制有效,锁存端口值   
  6.         _nop_();   
  7.         HC165_PL_dr=1;   
  8.         _nop_();
  9.         for(i=0;i<32;i++)  
  10.         {
  11.                 read_data<<=1;      
  12.                 if(HC165_QH_dr)
  13.                 {
  14.                         read_data|=HC165_QH_dr;
  15.                 }      
  16.                 HC165_CLK_dr=0;                  
  17.                 _nop_();
  18.                 HC165_CLK_dr=1;          //上升沿      
  19.                 _nop_();  
  20.         }
  21.         return ~read_data;
  22. }

复制代码


吧延时改长点试试

x线太长……

如果短线可以而长线不可以的话,应该是驱动能力不够,可以考虑加非门,增加驱动能力。

感谢楼上的热心回答!@武力戡乱 @sin88
小编的主意也不错,只是手中没有非门。没办法实验!
最终改写了驱动程序!

呵呵,基本上应该是驱动能力不够!可以加其他放大!

留个记号!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top