打印
[PIC®/AVR®/dsPIC®产品]

各位高手大侠进来看看吧!!!

[复制链接]
1401|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 | 只看该作者
做测试设备用

使用特权

评论回复
5
W_fantasy|  楼主 | 2014-10-23 11:28 | 只看该作者
高手快来啊!

使用特权

评论回复
6
W_fantasy|  楼主 | 2014-10-23 11:28 | 只看该作者

使用特权

评论回复
7
sunightms| | 2014-10-23 15:16 | 只看该作者
I2C的时钟和数据都是OD/OC门,需要连接上拉电阻,不知是否是这个原因

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
W_fantasy + 1 很给力!
8
964938881| | 2014-11-8 23:21 | 只看该作者
最近也在研究PIC16F877 IIC通信,同样问题,我是用Proteus仿真出现的这种现象,没有波形输出,准备用硬件开发板测试一下

使用特权

评论回复
9
MIKEZHONG| | 2014-11-10 11:56 | 只看该作者
用摸拟的I2C好用点。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

83

帖子

0

粉丝