📄 x50.c
字号:
#include <reg51.h>
void write_data(uchar);
void read_data(uchar);
void comm(uchar);
void yanshi(uchar);
sbit cs=P1^0;
sbit so=P1^1;
sbit wp=P1^2;
sbit si=P1^3;
sbit clk=P1^4;
uchar sufw[17];
uchar sufr[16];
uchar read_sta()
/*读状态寄存器*/
{ yanshi(2);
comm(0x05);
read_data(1);
return(sufr[0]);
}
void yanshi(uchar tt) /*延时*/
{ uchar g,j;
g=tt;
while(g--)
{ for(j=0;j<125;j++);}
}
main()
{ uchar w,k,j,d;
for(k=0;k<3;k++)
{ p0_6=0;
yanshi(100);
p0_6=1;
yanshi(100);
}
/*指示灯闪三次*/
comm(0x06);
comm(0x01);
sufw[0]=0x00;
write_data(1);
cs=1;
/*write watch dog*/
d=read_sta();
while((d&0x01)!=0x00);
for(j=0;j<17;j=j+16)
{ sufw[0]=j;
for(k=1;k<17;k++)
{ sufw[k]=k+j;
}
d=read_sta();
while((d&0x01)!=0x00);
comm(0x06);
comm(0x02);
write_data(17);
cs=1; /*write data*/
}
d=read_sta();
while((d&0x01)!=0x00);
for(j=0;j<17;j=j+16)
{
comm(0x03);
sufw[0]=j;
write_data(1);
read_data(16);
}
cs=1;cs=0; /*read data*/
while(1);
}
void comm(uchar comm) /*write msb*/
{ uchar p;
wp=1;cs=1,cs=0;
for(p=0;p<8;p++)
{ clk=0;
comm=comm<<1;
si=CY;
clk=1;
}
}
void write_data(uchar num) /*write data*/
{ uchar m=0,p;
for(m=0;m<num;m++)
{ for(p=0;p<8;p++)
{ clk=0;
sufw[m]=sufw[m]<<1;
si=CY;
clk=1;
}
}
}
void read_data(uchar num) /*read data*/
{ uchar stat,l,n;
for(l=0;l<num;l++)
{ for(n=0;n<8;n++)
{ clk=1;
clk=0;
stat=stat<<1;
stat=stat|so;
}
sufr[l]=stat;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -