微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机模拟I2C总线

51单片机模拟I2C总线

时间:10-02 整理:3721RD 点击:
EEPROM与单片机通信,前者用的芯片是AT24C02,在启动程序遇到问题。
根据时序图,“在scl为高电平期间,sda出现下降沿则为启动信号。”
我的程序:
void start()
{
        scl=1;
        delayms();
        sda=1;
        delayms();
        sda=0;
        delayms();
}
而且调用之前做了scl=1和sda=1的初始化,烧尽单片机后无效。
后来有效,是把程序改成:
void start()
{
        sda=1;
        delayms();
        scl=1;
        delayms();
        sda=0;
        delayms();
}
我有点想不通,这两个程序貌似差不多,为什么我的程序会不对?哪里理解错了?求助各位大虾~~

总的来说没有区别,如果你上个程序,sda延时由高到低稍微长一点就有效了

程序上电复位后,电压没有完全升起来,操作EEPROM是有问题!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top