微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > E2Prom中的延时问题、

E2Prom中的延时问题、

时间:10-02 整理:3721RD 点击:
        程序、#include<reg52.h>#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit sda=P2^0;
sbit scl=P2^1;
void delay1()
{
        _nop_();
        _nop_();
}
void start()
{
        sda=1;
        delay1();
        scl=1;
        delay1();
        sda=0;
        delay1();       
}
void end()
{       
        sda=0;
        delay1();
        scl=1;
        delay1();
        sda=1;
        delay1();
}
void respons()
{        sda=1;
        delay1();
        scl=1;
        delay1();
        delay1();
        scl=0;
        delay1();
}
void write(uchar c)
{
        uchar i,temp,j;
        scl=0;
        //delay1();
        j=0;j++;
        temp=c;
        for(i=0;i<8;i++)
        {        temp=temp<<1;
                scl=0;
                j=0;j++;j++;
                sda=CY;
                for(j=0;j<3;j++);
                scl=1;
                j=0;j++;j++;               
        }
/*        scl=0;
        delay1();*/      
// 就是被注释掉的这句话、太重要了、没有就写入不进去、、为什么啊、请高手指点、
        sda=1;
        delay1();
}
uchar read()
{
        uchar i,k,j,x;
        scl=0;
        j=0;j++;
        sda=1;
        j=0;j++;
        for(i=0;i<8;i++)
        {
                scl=1;
                delay1();
                x=sda;
                j=0;j++;
                scl=0;
                j=0;j++;
                k=(k<<1)|x;
                delay1();
        }
        return k;
}
void delay(uchar c)
{
        uchar a,b;
        for(a=c;a>0;a--)
        for(b=110;b>0;b--);
}
main()
{        scl=1;
        delay1();
        sda=1;
        delay1();
        start();
        write(0xa0);
        respons();
        write(0x03);
        respons();
        write(0x55);
        respons();
        end();
        delay(500);
        start();
        write(0xa0);
        respons();
        write(0x03);
        respons();
        start();
        write(0xa1);
        respons();
        P1=read();
        end();
        while(1);
}

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

网站地图

Top