}
//--------------------------------------------------------------------------------------------------
// 函数名称:EWDS
// 函数功能: 擦写截止
// 使用该指令可对写入的数据进行保护
//--------------------------------------------------------------------------------------------------
void EWDS(void)
{
_nop_();
CS_93=1;
start_operation(EWDS_c);
SEND_BYTE(0x00);
CS_93=0;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: ERAL
// 函数功能: 片擦
// 该指令可将整个存贮器阵列置为1,其它功能与地址擦指令相同
// 要求VCC = 4.5V to 5.5V。
//--------------------------------------------------------------------------------------------------
void ERAL(void)
{
_nop_();
CS_93=1;
start_operation(ERAL_c);
SEND_BYTE(0x80);
CS_93=0;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: READ_BYTE
// 函数功能: 从存储区读一字节数据
//--------------------------------------------------------------------------------------------------
unsigned char READ_BYTE(unsigned char address)
{
unsigned char dat;
CS_93=CLK_93=0;
CS_93=1;
start_operation(READ_c);
SEND_BYTE(address);
dat=RECEIVE_BYTE();
CS_93=0;
return(dat);
}
//--------------------------------------------------------------------------------------------------
// 函数名称: WRITE_BYTE
// 入口参数: address。dat
// 返回值: 1或0,表示成功写入
// 函数功能: 写一字节数据到存储区
//--------------------------------------------------------------------------------------------------
bit WRITE_BYTE(unsigned char address,unsigned char dat)
{
unsigned char e,time,temp=address;
e=0;
while (e<3)
{
CS_93=CLK_93=0;
CS_93=1;
EWEN();
_nop_();
CS_93=1;
_nop_();
start_operation(WRITE_c);
SEND_BYTE(address);
SEND_BYTE(dat);
CS_93=0;
_nop_();
CS_93=1;
time=0;
DO_93=1;
while (1)
{
if (DO_93==1) break;
if (time>20) break;
time++;
}
CS_93=0;
if (READ_BYTE(temp)==dat)
{
return(0);
}
e++;
}
return(1);
}
上一页 [1] [2]
本文关键字:程序 接口 51单片机,单片机-工控设备 - 51单片机