请帮我看看这个时序图,看我说得对不?

2020-02-04 09:02发布

我看的是发送12位串行数据,从低位开始发送到最高位完,然后LD1,LD2拉低数据被锁存到寄存器中,不知道我说的对不对,不过写出来的程序不能用。请大家帮我分析一下这时序?谢谢了O(∩_∩)O~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
mkliop
2020-02-04 17:52
呵呵谢谢大家已经弄好了确实应该是从最高位开始发的。被网上的文章误导了
#include<reg52.h>
sbit LD=P1^0;
sbit STB=P1^1;
sbit CLR=P1^2;
sbit SRI=P1^3;
void delay()
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=100;a>0;a--);
}
void main()
  {
  unsigned char a;
  unsigned int b;
  unsigned int i=4000;
  LD=1;
  STB=1;
  CLR=1;
  SRI=1;
  for(a=0;a<12;a++)
  {
   b=i&0x0800;   
   if(b>0)
   {
            SRI=1;
   }
   else
   {
           SRI=0;
   }
   STB=0;
  delay();
   STB=1;
  delay();
   i=i<<1;
  }
  LD=0;
  delay();
  LD=1;
  delay();
  while(1);
}

这是测试代码

一周热门 更多>