|
【求助】74HC165的操作,只能控制一个按键,其他的控制不了,搞不明白
[复制链接]
#define PL P2_3//SHIFT/LOAD引脚
#define CLOCK P2_4
#define SETBSC P2_5//OUTPUT QH引脚
read74hc165m()
{uchar basic,c;
PL=1;
nop();
PL=0;//使能端为低电平时8位数据进入寄存器
nop();
PL=1;//高电平数据锁存,同时165数据自动移1位
basic=0;
basic=basic<<1;
if(SETBSC) basic|=1;//当输出为1时,该位置1,0时不变,其他7位不变,这样使得最后的basic就为寄存器里面的8位数据
for(c=0;c<7;c++)
{
CLOCK=0;
CLOCK=1;
basic=basic<<1;
if(SETBSC)
basic|=1;
}
return basic;
}
void main(void){
while(1)
{
a=read74hc165m();//读取165的数据
if((a>>3)==0x00)//判断第4位(右移3位),若为0说明该键按下,显示值加1}//改成a>>2就不行了
|
|