微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AT45DB021B在电力参数监测中的应用

AT45DB021B在电力参数监测中的应用

时间:08-06 来源:互联网 点击:

读一字节子程序:

unsigned char Rd1byte(void)
{unsigned char i,medBit=0;
char Data=0;
for (i=0; i8; i++)
{ HIGHTOLOW;
_NOP();
if (SO_IN )
medBit = 1; //if(SO==1)medBit=1;
else
medBit = 0;
Data = (Data 1) medBit;
return Data;
}
}
对AT45DB021进行写操作子函数: (通过缓冲存储器2对主存储器写操作)
参数:pInData 指向要写入数据的指针
mm 写入数据数组的大小
startPage 将数据写入主存的起始页地址
startByte 将数据写入主存的起始页地址中的起始字节地址
void WriteMemory(const int *pInData, unsigned char mm, unsigned int startPage, unsigned int startByte)
{
unsigned char i, j;
unsigned char opCode;
char lowData;
char highData;
opCode = 0x85; //opCode=0x82 is also available.
lowData = highData = 0;
SCK_0;
_NOP();
STARTOP;
_NOP();
Wr1byte(opCode );
for (j=0; j5; j++)
HIGHTOLOW;
//send startPage address //发送起始页地址子程序;
//send startByte address //发送页内起始地址子程序;
for (j=0; jmm; j++) //对目的地址写操作,先写低字节后写高字节
{
lowData = (char)(*(pInData + j));
Wr1byte(lowData);
highData = (char)((*(pInData + j)) >> 8);
Wr1byte(highData);
}

ENDOP;
_NOP();
SI_1;
}
读出AT45DB021存储的数据(主存储器页读, 读出字)
参数:mm 读出数据数组的大小
startPage 读出数据的起始页地址
startByte 读出数据的起始页地址中的起始字节地址
返回值:无
void ReadMemory(unsigned char mm, unsigned int startPage, unsigned int startByte)
{
unsigned char i, j;
unsigned char opCode;
unsigned char medBit;
char lowData;
char highData;
opCode = 0x52;
lowData = highData = 0;
medBit = 0;
SCK_0;
_NOP();
STARTOP;
_NOP();
Wr1byte(opCode );
for (j=0; j5; j++)
HIGHTOLOW; //5位保留码;
//send startPage address //发送起始页地址子程序;
//send startByte address //发送页内起始地址子程序;
for (j=0; j32; j++)
HIGHTOLOW; //32位无关码;
DIR_IN;
for (j=0; jmm; j++)
{
lowData= Rd1byte();
highData= Rd1byte();
tempArray[j] = ((int)highData 8) + lowData;
}
ENDOP;
SI_1;
_NOP();
DIR_OUT;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top