📄 x5045.c
字号:
#include <reg52.h>
extern unsigned char read_portC(void);
sbit CS = P2^6;
sbit SI = P2^0;
sbit SCK = P2^1;
void X5045_Input(unsigned char d);
unsigned char X5045_Output(void);
void X5045_ENW(void);
void X5045_DISW(void);
void X5045_Input(unsigned char d)
{ unsigned char i=8;
while(i--)
{ SCK=0;
if(d & 0x80)
{SI=1;SI=1;}
else
{SI=0;SI=0;}
SCK=1;
d <<=1;
}
}
unsigned char X5045_Output(void)
{ unsigned char i=8, d;
while(i--)
{ d <<=1;
SCK=1;
SCK=0;
if((read_portC() & 0x08))
d++;
}
return d;
}
void X5045_ENW(void)
{ CS=0;
X5045_Input(0x06);
CS=1;
}
extern unsigned char WD_RDSR(void)
{ unsigned char status;
CS=0;
X5045_Input(0x05);
status=X5045_Output();
CS=1;
return status;
}
extern void WD_WRSR(unsigned char status)
{ X5045_ENW();
CS=0;
X5045_Input(0x01);
X5045_Input(status);
CS=1;
while(WD_RDSR() &0x01);
}
extern void WD_RST(void)
{ CS=1;
CS=0;
CS=1;
}
extern void WD_WRITE(unsigned char val,unsigned char address)
{
X5045_ENW();
CS=0;
X5045_Input(0x02 | ((address & 0x0100) >>5 ));
X5045_Input(address & 0xff);
X5045_Input(val);
CS=1;
while(WD_RDSR() &0x01);
}
extern unsigned int WD_READ(unsigned char address)
{
unsigned char retval;
CS=0;
X5045_Input(0x03 | ((address & 0x0100) >>5 ));
X5045_Input(address & 0xff);
retval=X5045_Output();
CS=1;
return retval;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -