帮我看看程序那里出错
菲利浦IAP功能的运用,对flash进行写操作,采用混合编程。
现在程序编译的时候总是通不过,什么原因???
unsigned char WRITE_FLASH(unsigned int a,unsigned char n)
{
unsigned char ADDR_L,ADDR_H;
unsigned char k;
ADDR_L=a&0x0ff;
ADDR_H=a> > 8;
k=n;
#pragma asm
CLR C
MOV AUXR1,#20H //AUXR1 的位ENBOOT=1 寻址到固件
MOV R0,#18 //晶振为18.432,取18
MOV R1,#02H //R1=02H 字节编程功能
MOV DPH,ADDR_H //高8 位地址
MOV DPL,ADDR_L //低8 位地址
MOV A,k //被编程数据
LCALL 0fff0H //调用返回参数ACC=0 调用成功非0 调用失败
#pragma endasm
return ;
}
main()
{
for(i=0; i <28; i++)
{
ch=*(p+i);
EA=0;
if(WRITE_FLASH((p1+i),ch);!=0)//调用失败
{
EA=1;
return 0;
}
/* WRITE_FLASH((p1+i),ch);*/
EA=1;
}
}
发表时间:2004年2月15日11:31:16