新人求问~74hc595的串行数据怎么输出的

2020-01-25 15:24发布

如题,操作数码管时总是乱码,或者是不闪,但是关掉了重新开数据就又不一样了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
墨逸、
2020-01-26 07:08
dlmaowf 发表于 2013-12-23 16:25
这是4片595级联的,所以for循环32次,只有一片的话,把for循环改为8次

#include <reg52.h>
#include <intrins.h>

sbit SCLK=P2^4;   
sbit DAT=P2^5;   
sbit SLCK=P2^6;   

unsigned char code tab[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};


void out595(void)
{
        SLCK=0;
                                _nop_();
        SLCK=1;
}


void sendbyte(unsigned char a)

{
  unsigned char i;
    for(i=0;i<32;i++)
        {
         SCLK=0;
         DAT=a&0x80;
         a=a<<1;
         SCLK=1;
                                }
}



main()
{
      unsigned char i;
      unsigned int  f=60000;
      while(1)
      {
                                        for(i=0;i<9;i++)
                                        {
            sendbyte(tab);
            out595();
            while(f--);
                                        }
            }
}



大神你帮我看看,哪里不对呢

一周热门 更多>