本帖最后由 erics0708 于 2015-8-25 01:42 编辑
小弟刚学PIC单片机求大神帮忙!
编译环境: MPLAB IDE 8.92+PICC18 9.8
烧写工具: PICKit 2
问题1:程序编译没有问题,烧写以后不能正常工作.
问题2:用PICkit 2仿真发现SSPCON2第0位不能置1,也就是SEN=1不起作用.试了好多种写法都不行
搞了好几天了快崩溃了,有人会吗能帮我看看怎么回事吗??
自己写的程序如下:
void i2c_init()
{
TRIS_I2C_SCL=0;
TRIS_I2C_SDA=0;
SSPSTAT=0x80;
SSPCON1=0x28;
SSPCON2=0x0;
SSPADD=0x0;
}
void i2c_write(unsigned char addr,unsigned char rdata)
{
SSPIF=0;
SEN=1;
SSPBUF=0xA0;
while(!SSPIF);
SSPIF=0;
SSPBUF=addr;
while(!SSPIF);
SSPIF=0;
SSPBUF=rdata;//数据
while(!SSPIF);
PEN=1;
while(!SSPIF);
SSPIF=0;
delay10ms();
}
unsigned char i2c_read(unsigned char addr)
{
unsigned char i;
SEN=1;
SSPIF=0;
SSPBUF=0xA0;//a0
while(!SSPIF);
SSPIF=0;
SSPBUF=addr;
while(!SSPIF);
SSPIF=0;
SEN=1;
while(!SSPIF);
SSPIF=0;
SSPBUF=0xA0+1;//a1
while(!SSPIF);
SSPIF=0;
RCEN=1;
while(!SSPIF);
SSPIF=0;
i=SSPBUF;
PEN=1;
while(!SSPIF);
SSPIF=0;
return i;
}
|