📄 x5045.h
字号:
/*
*********************************************************************************************************
*
* X5045源代码
*
* FILE : x5045.H
* By : CC
* DATE : 2008-04-05
* VERSION : 1.0
* 说明 : 1.看门狗:加电后需下降沿脉冲启动看门狗
* 2.EEPROM:spi接口,下降沿读SO,上升沿写SI,
* 3.每次写(寄存器和ROM)都需要使能写操作,写完需要等待10ms保存数据
*
*********************************************************************************************************
*/
#define uchr unsigned char
#define uint unsigned int
//X5045 命令
#define WIP 0x01 //X5045 写操作忙标志位掩码
#define WEL 0x02 //X5045 写保护标志位掩码
#define WDT 0x00 //X5045 看门狗时间:1.4s
//#define WDT 0x10 //X5045 看门狗时间:600ms
//#define WDT 0x20 //X5045 看门狗时间:200ms
//#define WDT 0x30 //X5045 关闭看门狗
#define BLA 0x00 //X5045 ROM块锁定范围:无
//#define BLA 0x04 //X5045 ROM块锁定范围:180H-1FFH
//#define BLA 0x08 //X5045 ROM块锁定范围:100H-1FFH
//#define BLA 0x0C //X5045 ROM块锁定范围:000H-1FFH
#define WREN 0x06 //允许X5045写操作
//#define WRDS 0x04 //禁止X5045写操作
#define RDSR 0x05 //读X5045状态寄存器
#define WRSR 0x01 //写X5045状态寄存器
//#define RDAD 0x03 //读出X5045指定地址的数据,0x00-0xFF
//#define WRAD 0x02 //写入X5045数据到指定地址,0x00-0xFF
//#define RDAD 0x0B //读出X5045指定地址的数据,0x100-0x1FF
//#define WRAD 0x0A //写入X5045数据到指定地址,0x100-0x1FF
//X5045 PINS
sbit cs = P3^4;
sbit sck = P3^0;
sbit si = P3^1;
sbit so = P3^5;
void delay()
{
uchr i;
for(i=0;i<10;i++)
{;}
}
void delay1()
{
uint i;
for(i=0;i<1000;i++)
{;}
}
void send(uchr tx)
{
uchr i;
uchr tmp=0x80;
for(i=0;i<8;i++)
{
sck = 0 ;
if(tx & tmp)
{
si = 1;
}
else
{
si = 0;
}
tmp = tmp >> 1;
delay();
sck = 1;
delay();
}
}
/*
uchr read(void)
{
uchr i;
uchr rx;
for(i=0;i<8;i++)
{
sck = 0 ;
delay();
rx= rx << 1;
rx= rx + (uchr)so;
sck = 1;
delay();
}
return(rx);
}
*/
/*
void wrwait()
{
send(RDSR);
while( read() & WIP )
{
delay1();
}
}
*/
/*
uchr save(uchr addr,uchr tx)
{
uchr rx;
cs = 0;
delay();
send(WREN);
cs = 1;
delay();
cs = 0;
delay();
send(WRAD);
send(addr);
send(tx);
cs = 1;
delay1();
cs = 0;
delay();
send(RDAD);
send(addr);
rx=read();
cs = 1;
delay();
if(rx!=tx) return(0);
else return(1);
}
*/
void x5045ini()
{
cs = 1;
delay();
cs = 0;
delay();
send(WREN);
cs = 1;
delay();
cs = 0;
delay();
send(WRSR);
send(WDT);//设置X5045
cs = 1;
delay1();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -