orangerx 发表于 2019-8-31 12:07:25

请教 74HC165的问题

接独立按键,在动态数码管输出
..前略发现读取出来的,只有最高位和最低位是正确的
按最高位的按键时可以识别 0111 1110;
按最低位的按键时可以识别 1111 1110;
但是中间的其他位,按下去也和最低位的情况 一样输出 1111 1110 求解?

orangerx 发表于 2019-8-31 12:09:41

不知道为什么没有显示代码,代码如下:
..前略
typedef unsigned char u8;

sbit QH=P0^5;        //数据接收
sbit CLK=P0^6; //时钟脉冲
sbit PL=P0^7;        //低电平时数据保存到165寄存器中

u8 Read74HC165(){ //调用函数,返回1个字节
    u8 i,dt;
    PL=0;
    _nop_();
    PL=1;
    _nop_();
    dt=0;
    for(i=0;i<8;i++){
      dt=dt<<1;       
      dt|=QH; //这个赋值放在CLK=0下面也是一样的情况
      CLK=0;
      _nop_();
      CLK=1;
    }
    return dt;
}
后略..

orangerx 发表于 2019-8-31 12:10:00

代码请看2楼
页: [1]
查看完整版本: 请教 74HC165的问题