GIE=0;
SSP1STAT=0x80;
//
SSP1CON1=0x38;
//
SSP1CON2=0;
//
SSP1ADD=0x09;
//iic时钟控制
SEN=1;
SSP1IF=0;
//111
while(!SSP1IF); //111 程序到此死机
SSP1IF=0;
SSP1BUF=0xa0;
//因为只得1颗24c01,所以该芯片地址为写时为0xa0,读时为0xa1
while(!SSP1IF);
SSP1IF=0;
SSP1BUF=wadd; //写或读进24c02内部的地址命令??
while(!SSP1IF);
SSP1IF=0;
SSP1BUF=data;
while(!SSP1IF);
SSP1IF=0;
/*
for(i=0;i<2;i++){
SSP2BUF=wdate[i];
while(!SSP1IF);
}
*/
PEN=1; //停止
while(!SSP1IF);
SSP1IF=0;
//
GIE=1;
见上面程序所示,程序走到经常走到111处死机,只是很偶尔能通过 |