#include<pic.h> char i,j,k,a; void first() { TRISC=0xff; SSPADD=9; STAT_SMP=1; STAT_CKE=0; SSPCON=0B00111000; } void test() { SSPIF=0; while(SSPIF==0){;} } void cc() { SEN=1; test(); SSPBUF=0B10100000; while(ACKSTAT==1) { SEN=1; test(); SSPBUF=0B10100000; } SSPBUF=j; test(); for (i=1;i<17;++i) { SSPBUF=i; test(); j++; } PEN=1; test(); SSPIF=0; } void main() { first(); j=0b00000000; for (k=1;k<5;k++) {cc(); for (a=1;a<200;a++) {asm("nop");} } for (i=1;i<100;i++) {;} SEN=1; test(); SSPBUF=0B10100000; test(); SSPBUF=0B00000000; test(); RSEN=1; test(); SSPBUF=0B10100001; test(); FSR=0X30; for (i=1;i<65;i++) { RCEN=1; test(); INDF=SSPBUF; if (i!=64) {ACKDT=0; ACKEN=1;} else {ACKDT=1; ACKEN=1;} test(); FSR++; } PEN=1; test(); SSPIF=0; asm("nop"); } PIC16F873A + 24C16
连续写4组16个数据,但只有第一组、第三组能够写成功,而二、 四组则无法写成功,
请帮忙看看问题在哪??
谢谢 |