微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机74165并转串芯片编程中的疑问

51单片机74165并转串芯片编程中的疑问

时间:10-02 整理:3721RD 点击:
小弟新人,以前没玩过单片机,最近买了个开发板自学,看到讲并转串74H165C编程时有点疑问。
它教程中的读取串口数据的语句如下:
//它的程序中SCK连接74165芯片时钟管脚,定义了个字符型indata存放读取的数值;IN_Data为连接芯片输出端的管脚;其时序图不知道怎么贴。

for(i=0; i<8; i++)
    {
          indata = indata<<1;           //<<左移一位,空出的地方补0.
          SCK = 0;   //时钟置0         
      _nop_();
          indata |= IN_Data;//我很疑惑为什么这里要在时钟置1前或等于?不是应该时钟置1,才能发生跳变吗?
然后芯片才有移位数据输出吗?然后我把这个句子移到SCK=1后,读取的数值少了一位,怎么也想不明白,求前辈们指点。
      SCK = 1;   //时钟置1                   
        }


都没人理吗?

我也有同样的疑问,遇到了同样的问题。题主你解决了吗?如果解决了的话,可以指导下我吗?留下邮箱a998229239@126.com 谢谢

问题找到了吗

我也是个新手。我个人理解是:传输8个数据需要8个clock;如果把indata |= IN_Data放在SCK = 1之前,就是第一个clock就会传输1个数据,8个clock传输8个数据;当indata |= IN_Data放在SCK = 1之后,也就是第一个clock到第二个clock之间传输1个数据;这样就会导致8个clock只传输了7个数据。

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

网站地图

Top