标题: 74ls164输出问题 [打印本页]

作者: abeimao    时间: 2014-11-12 21:49
标题: 74ls164输出问题
#include<reg52.h>
sbit TDAD1=P0^0;//  l数据
sbit CLK1=P0^1; //  l时钟移位
sbit CLR1=P0^2; //  l复位
main()
{
    unsigned char t, a;
    t=0x02;
    CLR1=1; CLR2=1;
    for(a=0;a<8;a++)
      {
         CLK1=0;
         TDAD1=t&0x80;
          CLK1=1;
        t=t<<1;
         while (1);
      }
}
为什么我用万用表测164输出不对呀,全是低电平呀。求助。

作者: 明白    时间: 2014-11-13 09:20
#include<reg52.h>
sbit TDAD1=P0^0;//  l数据
sbit CLK1=P0^1; //  l时钟移位
sbit CLR1=P0^2; //  l复位
main()
{
    unsigned char t, a;
       t=0x02;
       CLR1=1; CLR2=1;
       for(a=0;a<8;a++)
        {
         CLK1=0;
         TDAD1=t&0x80;
         CLK1=1;
         t=t<<1;
        }   
      while (1);
}


作者: jiege    时间: 2014-11-13 12:22
很好用学习到新的知识了
作者: abeimao    时间: 2014-11-13 13:23
多方面找程序,找出原因了,CLK1=1的前后各加一个空语句_nop_(),唉,我也不知为什么这样子。。我百度别人164程序和视频大多数也没有提到要加空语句延时的,,。。。不过还是谢谢各位。
作者: abeimao    时间: 2014-11-13 13:24
多方面找程序,找出原因了,CLK1=1的前后各加一个空语句_nop_(),唉,我也不知为什么这样子。。我百度别人164程序和视频大多数也没有提到要加空语句延时的,,。。。不过还是谢谢各位。
作者: 明白    时间: 2014-11-13 16:15
循环无数次输出:
#include<reg52.h>
sbit TDAD1=P0^0;//  l数据
sbit CLK1=P0^1; //  l时钟移位
sbit CLR1=P0^2; //  l复位
main()
{
    unsigned char t, a;
         while (1)
          {
             t=0x02;
              CLR1=1; CLR2=1;
              for(a=0;a<8;a++)
             {
             CLK1=0;
             TDAD1=t&0x80;
             CLK1=1;
             t=t<<1;
            }   
        }
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1