74hc165求助
时间:10-02
整理:3721RD
点击:
这段程序是不是74HC165只读取了7次数据? 应该把 i<8 该成 i<=8 吧?
//函数名称: 74HC165
unsigned long ReHC74165(void)
{
unsigned char i;
unsigned int indata;
IN_PL=0;
NOP(); //短暂延时 产生一定宽度的脉冲
IN_PL=1; //将外部信号全部读入锁存器中
NOP();
indata=0; //保存数据的变量清0
for(i=0; i<8; i++)
{
indata=indata<<1; //左移一位
if(IN_Dat==1)indata=indata+1; //如果IN_Dat检测到高电平 保存数据的变量加1
CLK=0; //时钟置0
NOP();
CLK=1; //时钟置1
}
return(~indata); //将保存数据的变量取反后返回
}
这段程序是不是74HC165只读取了7次数据? 应该把 i<8 该成 i<=8 吧?
//函数名称: 74HC165
unsigned long ReHC74165(void)
{
unsigned char i;
unsigned int indata;
IN_PL=0;
NOP(); //短暂延时 产生一定宽度的脉冲
IN_PL=1; //将外部信号全部读入锁存器中
NOP();
indata=0; //保存数据的变量清0
for(i=0; i<8; i++)
{
indata=indata<<1; //左移一位
if(IN_Dat==1)indata=indata+1; //如果IN_Dat检测到高电平 保存数据的变量加1
CLK=0; //时钟置0
NOP();
CLK=1; //时钟置1
}
return(~indata); //将保存数据的变量取反后返回
}
这段程序是不是74HC165只读取了7次数据? 应该把 i<8 该成 i<=8 吧?
这个i是从0开始到7,共8次,没错
看好初值啊以后。
i=0的时候,是第一次进行移位 并读取数据线上的电平, 但是时钟线并没有在读取前产生上升沿啊,,也就是说 没产生上升沿 ,数据没放出来,就进行了一次读取, 所以我认为第一次没有读取出来数据 求指导?@!?!
i=0的时候,是第一次进行移位 并读取数据线上的电平, 但是时钟线并没有在读取前产生上升沿啊,,也就是说 没产生上升沿 ,数据没放出来,就进行了一次读取, 所以我认为第一次没有读取出来数据 求指导?@!?!
