小弟写的FLASH块檫除、块写、块读程序(C)大家给点意见
各位大哥看看程序是否有毛病。谢谢了!void Flash_Erase()
{
AUXR1=0x20h; //ENBOOT置位,寻址固件
R0=18; //18.432M晶振
R1=0x01; //檫除块4内容
DPH=0xc0;
DPL=0;
pgm_mip(); //调用BOOTROM子程序
//AUXR1=0; //清ENBOOT 此语句是否有必要???????
}
/*********************************************
*选中的flash 有16K字节
*传进写的地址和数据
**********************************************/
void Flash_Write(unsigned int add,unsigned char num)
{
unsigned char address1;
unsigned char address2;
unsigned char number;
address1=add/256;
address2=add%256;
number=num;
AUXR1=0x20; //ENBOOT置位,寻址固件
R0=18; //18.432M晶振
R1=0x02; //把数据写到块4
DPH=0xc0+address1;
DPL=0+address2;
ACC=number;
pgm_mip(); //调用BOOTROM子程序
//AUXR1=0; //清ENBOOT
}
/*********************************************
*选中的flash 有16K字节
*传入需要读出数据的地址,返回读出的数据
**********************************************/
unsigned char Flash_Read(unsigned int add)
{
unsigned char address1;
unsigned char address2;
address1=add/256;
address2=add%256;
ACC=0;
AUXR1=0x20; //ENBOOT置位,寻址固件
R0=18; //18.432M晶振
R1=0x03; //把块4内容
DPH=0xc0+address1;
DPL=0+address2;
pgm_mip(); //调用BOOTROM子程序
//AUXR1=0; //清ENBOOT
}
发表时间:2004年1月15日16:06:53