在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            24c16的使用方法

            作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
            自己把24c16的使用結(jié)合代碼整理了一遍
            之前看pcf時發(fā)現(xiàn)其實有很多芯片和24c系列的芯片很像,所以就不得不整理一下了,發(fā)辮以后回顧
            r如果整理的不夠好,請不要噴我,我是弱菜

            #include
            #include //要用到_nop_()精準(zhǔn)延時
            #define uchar unsigned char
            #define uint unsigned int
            sbit scl=P2^1;//24c16時鐘線,數(shù)據(jù)線定義
            sbit sda=P2^0;
            uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管顯示
            uchar num,sec; //用來計時
            void usdelay()
            {
            _nop_();_nop_();
            _nop_();_nop_();
            _nop_();_nop_();
            }
            void delayms(uint z)
            {
            uint x,y;
            for(x=z;x>0;x--)
            for(y=110;y>0;y--);
            }
            void start() //起始信號 當(dāng)時鐘線為1,數(shù)據(jù)線有個下降沿
            {
            sda=1;
            usdelay();
            scl=1;
            usdelay();
            sda=0;
            usdelay();
            }

            void stop()//終止信號 當(dāng)時鐘線為1,數(shù)據(jù)線有個上升沿
            {
            sda=0;
            usdelay();
            scl=1;
            usdelay();
            sda=1;
            usdelay();
            }

            void ack() //應(yīng)答信號由從機發(fā)出信號為sda由1變?yōu)?
            {
            uchar i;
            scl=1;
            usdelay();
            while((sda==1)&&i<200)i++;
            scl=0;
            usdelay();
            }
            void init24c16()//24c16初始化
            {
            sda=1;
            usdelay();
            scl=1;
            usdelay();
            }
            void write_byte(uchar dat) //字節(jié)寫(寫數(shù)據(jù)或地址)數(shù)據(jù)線sda不變,scl有個上升沿,寫入數(shù)據(jù)
            {
            uchar i;
            for(i=0;i<8;i++)
            {
            scl=0;
            usdelay();
            sda=(bit)(dat&0x80);
            usdelay();
            scl=1;
            usdelay();
            dat<<=1;
            }
            scl=0;
            usdelay();
            }


            uchar read_byte() //字節(jié)讀 scl有下降沿讀出
            {
            uchar i,k;
            for(i=0;i<8;i++)
            {
            scl=1;
            usdelay();
            k=(k<<1)|sda;
            scl=0;
            usdelay();
            }
            return k;
            }
            void write_add(uchar add,uchar dat)
            {
            start();
            write_byte(0xa0);
            ack();
            write_byte(add);
            ack();
            write_byte(dat);
            ack();
            stop();
            }


            uchar read_add(uchar add)
            {
            uchar dat;
            start();
            write_byte(0xa0);
            ack();
            write_byte(add);
            ack();
            start();
            write_byte(0xa1);
            ack();
            dat=read_byte();
            usdelay();
            stop();
            return dat;
            }

            void main()
            {
            init24c16();
            sec=read_add(2);
            if(sec>9) sec=0;
            TMOD=0x01;//定時器選擇軟件啟動,工作方式為1
            ET0=1;//開定時器0允許
            EA=1;//開總中斷允許
            TH0=(65536-50000)/256;
            TL0=(65536-50000)%6;//給定時器賦初值,定時50ms
            TR0=1;//啟動定時器0
            while(1)
            {
            if(num==20)
            {
            num=0;
            sec++;
            if(sec>9)
            sec=0;
            }
            P3=table[sec];
            write_add(2,sec);
            }
            }
            void t0() interrupt 1
            {
            TH0=(65536-50000)/256;
            TL0=(65536-50000)%6;
            num++;
            }



            關(guān)鍵詞: 24c16使用方

            評論


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

            關(guān)閉