#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();
}
}
大家看看那里有错
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>