在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用E2PROM寫的一個(gè)時(shí)鐘

            利用E2PROM寫的一個(gè)時(shí)鐘

            作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
            E2PROM是基于I2C總線的數(shù)據(jù)存儲器,網(wǎng)上很容易查到I2C總線協(xié)議的相關(guān)資料。

            本實(shí)驗(yàn)主要是實(shí)驗(yàn)的E2PROM的型號是AD24C02,其存儲容量為2K??芍貜?fù)擦寫1,000,000次,數(shù)據(jù)可以保存100年。其引腳圖如下:

            本文引用地址:http://www.biyoush.com/article/201611/321147.htm

            其芯片固定的地址高四位為1010,由于此處僅僅使用了一塊,因此A0,A1,A2均接地。此處在讀寫E2PROM的程序主要是采用祥哥的思想,加以改進(jìn)后的一個(gè)時(shí)鐘。程序如下:

            =================================================================================================
            #include
            #define uchar unsigned char
            #define uint unsigned int
            sbit sda=P3^7; //端口定義
            sbit scl=P3^6;
            int t;
            uchar code table[]={
            0x3F, //"0" //數(shù)碼管顯示字庫
            0x06, //"1"
            0x5B, //"2"
            0x4F, //"3"
            0x66, //"4"
            0x6D, //"5"
            0x7D, //"6"
            0x07, //"7"
            0x7F, //"8"
            0x6F, //"9"
            };
            void delay()
            { ; ;}
            void delay1(uint z)
            {
            uint x,y;
            for(x=z;x>0;x--)
            for(y=110;y>0;y--);
            }
            void start() //起始信號
            {
            sda=1;
            delay();
            scl=1;
            delay();
            sda=0;
            delay();

            }
            void stop()//終止信號
            {
            sda=0;
            delay();
            scl=1;
            delay();
            sda=1;
            delay();
            }

            void respons() //應(yīng)答信號
            {
            uchar i;
            scl=1;
            delay();
            while((sda==1) && (i<250))i++;//二者如果同時(shí)成立,則等待,如果有一個(gè)不成立則退出。
            scl=0;
            delay();
            }
            void init()
            {
            sda=1;
            delay();
            scl=1;
            delay();

            }
            void write_byte(uchar dat)//寫一個(gè)字節(jié)
            {
            uchar i,temp;
            temp=dat;

            for(i=0;i<8;i++)
            {
            temp=temp<<1;
            scl=0;
            delay();
            sda=CY;//將溢出位送走 ,高位送走,溢出位在CY寄存器中
            delay();
            scl=1;
            delay(); //高電平時(shí)數(shù)據(jù)保持穩(wěn)定
            }
            scl=0;
            delay();
            sda=1;//釋放總線,方便讀取應(yīng)答信號
            delay();
            }

            uchar read_byte() //讀取一個(gè)字節(jié)數(shù)據(jù)
            {
            uchar i,k;
            scl=0;
            delay();
            sda=1;
            delay();
            for(i=0;i<8;i++) //高位在前
            {
            scl=1;
            delay();
            k=(k<<1)|sda;
            scl=0;
            delay();
            }
            return k;
            }

            void write_add(uchar datadd,uchar date)//寫存儲器地址和數(shù)據(jù)
            {
            start();
            write_byte(0xa0);//寫芯片地址
            respons();
            write_byte(datadd);//向第三個(gè)存儲器地址寫數(shù)據(jù)
            respons();
            write_byte(date);
            respons();
            stop();

            }
            uchar read_date(uchar datadd)//讀取存儲器中的數(shù)據(jù),參數(shù)為存儲器的地址
            {
            uchar dat;
            start();
            write_byte(0xa0); //寫芯片地址
            respons();
            write_byte(datadd);//寫存儲器地址
            respons();
            start();
            write_byte(0xa1); //再次寫芯片地址,改變數(shù)據(jù)方向
            respons();
            dat=read_byte();
            stop();
            return(dat);

            }
            void display(int shi,int fen,int miao) //顯示時(shí)間
            {
            int a,b,c,d,e,f;
            a=shi/10;
            b=shi;
            c=fen/10;
            d=fen;
            e=miao/10;
            f=miao;

            P2=read_date(a);//讀取相應(yīng)數(shù)字的地址
            P1=0xf0;
            delay1(1);
            P2=read_date(b);
            P1=0xf1;
            delay1(1);
            P2=0x40;
            P1=0xf2;
            delay1(1);
            P2=read_date(c);
            P1=0xf3;
            delay1(1);
            P2=read_date(d);
            P1=0xf4;
            delay1(1);
            P2=0x40;
            P1=0xf5;
            delay1(1);
            P2=read_date(e);
            P1=0xf6;
            delay1(1);
            P2=read_date(f);
            P1=0xf7;
            delay1(1);

            }
            void main()
            {
            int num;
            int i;
            int shi,fen,miao;
            TMOD=0x01;//定時(shí)器0為工作方式1
            TH0=(65535-50000)/256;
            TL0=(65535-50000)%6;
            EA=1; //開總中斷
            ET0=1;//開定時(shí)器0中斷
            TR0=1;//啟動(dòng)定時(shí)器0
            //*******此處運(yùn)行一次即可*********
            init();
            for(i=0;i<10;i++)
            {
            write_add(i,table[i]);//依次寫進(jìn)數(shù)碼管要顯示的數(shù)據(jù) ,存到E2P的前10個(gè)地址中
            delay1(50);
            }
            //******************************
            while(1)
            {
            if(t==20)
            {
            t=0;
            miao++;
            if(miao==60)
            {
            miao=0;
            fen++;
            if(fen==60)
            {
            fen=0;
            shi++;
            if(shi==24)
            shi=0;
            }
            }
            }
            display(shi,fen,miao);//顯示時(shí)間
            }


            }

            void timer_0() interrupt 1 //定時(shí)器0中斷
            {
            TH0=(65535-50000)/256;
            TL0=(65535-50000)%6;
            t++;
            }



            關(guān)鍵詞: E2PROM時(shí)

            評論


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

            關(guān)閉