595编程出现问题,求助

2019-07-16 03:45发布

#include <at89x51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define  SI   P2_1
#define  SCK  P2_0
#define  RCK  P2_2
void delaynms( int num )     //延时NMS
{ char i,j;
  while(--num!=0)
   {
     for(i=10;1>0;i--)
   for(j=33;j>0;j--);
   }
}
void xie(uchar shuju)   //595写入数据
{
   char i=0;
   SCK=0;
   for(i=0;i<8;i++)
{   
  if(shuju&0x80==0x80)
    SI=1;
    else
    SI=0;
  delaynms(2);
   shuju=shuju<<1;
    SCK=0;
    SCK=1;
}
  SCK=0;
}
void out()    //595输出
{
    RCK=0;
    delaynms(1);
RCK=1;
delaynms(1);
RCK=0;

}
void main()
{
  uint M=0x3F;  //调试显示0
  while(1)
   {
      xie(M);
     out();
     }
}


大家看看那里有错

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lstcspring
1楼-- · 2019-07-16 07:02
你现在是个什么效果,电路是怎么样的,确保硬件没问题
liuyuliuyuliuyu
2楼-- · 2019-07-16 11:08
延时程序里,for循环里是i>0吧

一周热门 更多>