[PIC®/AVR®/dsPIC®产品] 各位高手大侠进来看看吧!!!

[复制链接]
1738|10
 楼主| W_fantasy 发表于 2014-10-23 11:25 | 显示全部楼层 |阅读模式
各位大神帮帮小弟吧!
我想用PIC16F887的I2C通讯,可是搞了一天了,SDA,SCL根本没有任何波形出来!我的端口初始化如下:
OPTION=0X88;                                                //禁止B口上拉,内部指令周期作为时钟源
        OSCCON=0x67;
        TRISB=0X00;                                                        //RB1口作为输出口
        PORTB=0x00;
        TRISC=0B00011000;                                                        //RC3,RC4输入端,其它全部为输出
        PORTC=0X00;
        TRISD=0XE4;                                                        //
        PORTD=0x00;                                                       
        TRISA=0XDD;
        PORTA=0X00;
        TRISE=0X06;                                                        //E端口全部设定为输入状态,用于检测NTC检测
        PORTE=0X00;
        INTCON=0X00;                       
        CM1CON0=0;
        CM2CON0=0;
        CM2CON1=0;
        CCP1CON=0;
        ANSEL=0X00;                                                        //AN7为模拟输入端
        ANSELH=0X00;                                                //AN8,AN11为AD输入
        TMR2=0;
        T2CON=0;
        T1CON=0;
然后寄存器配置是如下:
SSPSTAT=0B10000000;
        SSPCON=0B00111000;
        SSPCON2=0B00000000;
        SSPADD=0X09;
程序是这样写的:
while(1)
{
        SEN=1;
        red_on;
        while(SSPIF==0);
        SSPIF=0;yellow_on;
        SSPBUF=0B0001111;        //移入地址
        while(SSPIF==0);
        SSPIF=0;green_on;
        while(ACKSTAT==1); //等待从器件响应
        SSPBUF=0x66;   //移入数据
        while(SSPIF==0);
        SSPIF=0;
        while(ACKSTAT==1);
        PEN=1;
        while(SSPIF==0);
        SSPIF=0;                       
}//while结束点
配置位是下面这样的:
__CONFIG(LVPDIS&FCMEN&IESODIS&BORDIS&DUNPROTECT&UNPROTECT&MCLRDIS&PWRTDIS&WDTDIS&INTIO);
        __CONFIG(WP2);
各位大神帮帮我吧!在线等!!!看看我到底哪里没弄好!跪谢!!!
 楼主| W_fantasy 发表于 2014-10-23 11:26 | 显示全部楼层
先自己顶一下!!!1
 楼主| W_fantasy 发表于 2014-10-23 11:26 | 显示全部楼层
 楼主| W_fantasy 发表于 2014-10-23 11:27 | 显示全部楼层
做测试设备用
 楼主| W_fantasy 发表于 2014-10-23 11:28 | 显示全部楼层
高手快来啊!
 楼主| W_fantasy 发表于 2014-10-23 11:28 | 显示全部楼层
sunightms 发表于 2014-10-23 15:16 | 显示全部楼层
I2C的时钟和数据都是OD/OC门,需要连接上拉电阻,不知是否是这个原因

评分

参与人数 1威望 +1 收起 理由
W_fantasy + 1 很给力!

查看全部评分

964938881 发表于 2014-11-8 23:21 | 显示全部楼层
最近也在研究PIC16F877 IIC通信,同样问题,我是用Proteus仿真出现的这种现象,没有波形输出,准备用硬件开发板测试一下
MIKEZHONG 发表于 2014-11-10 11:56 | 显示全部楼层
用摸拟的I2C好用点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

83

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部