74HC165读取按键键值的问题

2019-07-15 14:45发布

本帖最后由 giakou 于 2016-3-15 14:28 编辑

3 片74HC165读取按键,单片机与3片74HC165通过短线连接时没有问题,通过超过两米长的连接时,单片机只能识别一片74HC165的一个按键(D8键)!这是怎么原因造成的?有什么办法解决?
原理图如下:
165.png
程序如下:
  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. }
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。