找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机+I2C通讯应答信号异常

查看数: 2520 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-30 17:07

正文摘要:

使用Proteus来进行89C52与24C02的I2C通讯仿真,实现将写入24C02的数据读出来点亮由P1控制的LED灯; 写数据后,应答信号SDA波形如图;仿真图如图。 目前问题是在proteus里面LED灯不能正常按照写入的数据来点亮,而 ...

回复

ID:420836 发表于 2021-1-2 01:34
感谢分享信息,非常有帮助。 看来时钟频率设置需要更改以匹配硬件规格。
ID:390416 发表于 2021-1-1 13:11
void IIC_Delay()
{
        _nop_();_nop_();_nop_();_nop_();_nop_();
}

void IIC_Init()
{
        P2M0&=0x3f;
        P2M1&=0x3f;
        SDA_GPIO=1;
        SCL_GPIO=1;
}

void IIC_Start()//IIC启动信号
{
        SDA_GPIO=1;
        SCL_GPIO=1;
        IIC_Delay();
        SDA_GPIO=0;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
}

void IIC_Stop()//IIC停止信号
{
        SDA_GPIO=0;
        SCL_GPIO=1;
       

        SDA_GPIO=1;
        IIC_Delay();
}

void IIC_Write_Byte(u8 IIC_Byte)//向总线发送一个字节
{
        u8 i;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                SDA_GPIO=(bit)(IIC_Byte&0x80);
                IIC_Byte<<=1;
                IIC_Delay();
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
}

u8 IIC_Read_Byte()
{
        u8 i,Value;
        SCL_GPIO=0;
        SDA_GPIO=1;
        for(i=0;i<8;i++)
        {
                Value=(Value<<1)|SDA_GPIO;
                IIC_Delay();
                SCL_GPIO=1;
                IIC_Delay();
                SCL_GPIO=0;
                IIC_Delay();
        }
        return Value;
}

u8 IIC_Read_Ack()//单片机检测IIC从机发来的应答信号
{
        u8 ack=1,i=0;
        SCL_GPIO=1;
        IIC_Delay();
        while((ack)&&(i<5))
        {
                ack=SDA_GPIO;
                i++;
        }
        SCL_GPIO=0;
        return ack;
}

void IIC_Write_Ack(bit ack)//单片机发送应答给从机
{
        SDA_GPIO=ack;
        IIC_Delay();
        SCL_GPIO=1;
        IIC_Delay();
        SCL_GPIO=0;
        IIC_Delay();
        SDA_GPIO=1;
        IIC_Delay();
}

ID:847776 发表于 2020-12-31 20:42
求大神指点,感激不尽!

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表