新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STC89C52與AT24C02按字節(jié)寫(C51)

        STC89C52與AT24C02按字節(jié)寫(C51)

        作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
        #include

        #include
        #define uchar unsigned char
        uchar i,a;
        uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};
        sbit wp=P1^0;
        sbit scl=P1^1;
        sbit sda=P1^2;
        sbit led=P2^0;

        本文引用地址:http://www.104case.com/article/201611/317450.htm

        void delay()
        {
        _nop_();
        _nop_();
        _nop_();
        }

        void de1s() //誤差 0us
        {
        unsigned char a,b,c;
        for(c=167;c>0;c--)
        for(b=171;b>0;b--)
        for(a=16;a>0;a--);
        _nop_(); //if Keil,require use intrins.h
        }

        void d10ms() //誤差 0us
        {
        unsigned char a,b,c;
        for(c=1;c>0;c--)
        for(b=38;b>0;b--)
        for(a=130;a>0;a--);
        }

        void write(uchar t)
        {
        for(i=0;i<8;i++)
        {
        sda=(bit)(t&0x80); //等價(jià)于RLC
        scl=1;
        scl=0;
        t<<=1;
        }
        sda=1;
        scl=1;
        delay();
        while(sda!=0);
        scl=0;
        }

        void start()
        {
        sda=1;
        scl=1;
        delay();
        sda=0;
        delay();
        scl=0;
        }

        void stop()
        {
        sda=0;
        delay();
        scl=1;
        delay();
        sda=1;
        scl=0;
        }

        void wriic()
        {
        uchar j;
        start();
        write(0xae);
        write(0x00);
        for(j=0;j<8;j++)
        {
        write(table[j]);
        }
        stop();
        }

        uchar read()
        {
        uchar n,rbyte=0;
        for(n=0;n<8;n++)
        {
        sda=1;
        scl=1;
        rbyte<<=1;
        rbyte|=(uchar)(sda);
        scl=0;
        }
        sda=0;
        delay();
        scl=1;
        delay();
        scl=0;
        return(rbyte);
        }

        void reiic()
        {
        start();
        write(0xae);
        write(0x00);
        start();
        write(0xaf);
        for(i=0;i<8;i++)
        {
        P0=read();
        de1s();
        }
        stop();
        }

        void main()
        {
        wp=0;
        led=0;
        SP=0x50;
        wriic();
        d10ms();
        reiic();
        while(1);
        }



        關(guān)鍵詞: STC89C52AT24C02按字節(jié)

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 澄江县| 尼玛县| 红河县| 云龙县| 泸定县| 长兴县| 余庆县| 广东省| 凌云县| 区。| 卫辉市| 新疆| 靖安县| 江永县| 梅州市| 新龙县| 石首市| 仁布县| 宝鸡市| 涪陵区| 丰城市| 诸暨市| 青海省| 都江堰市| 嘉鱼县| 江永县| 甘南县| 尤溪县| 渭南市| 宝应县| 大足县| 珲春市| 松潘县| 涞源县| 清远市| 当雄县| 体育| 黄山市| 分宜县| 神农架林区| 万源市|