新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C實(shí)時(shí)時(shí)鐘/日歷芯片在8051系統(tǒng)中的應(yīng)用

        I2C實(shí)時(shí)時(shí)鐘/日歷芯片在8051系統(tǒng)中的應(yīng)用

        作者: 時(shí)間:2012-03-07 來源:網(wǎng)絡(luò) 收藏

        3 概述

        圖7所示為PCF8563的具體電路圖,對(duì)圖中石英晶片頻率的調(diào)整,筆者給出3種可行性方法,供參考:

        51.gif

        方法1:定值OSCI電容。計(jì)算所需的電容平均值,用此值的定值電容,通電后在CLKOUT管腳上測(cè)出的頻率應(yīng)為32.768kHz,測(cè)出的頻率值偏差取決于石英晶片本身,電容偏差和器件之間的偏差平均為±5×10 -6。平均偏差可達(dá)5分鐘/年。

        方法2:OSCI微調(diào)電容。可通過調(diào)整OSCI管腳的微調(diào)電容式振蕩器的頻率來獲得更高的精度,此時(shí)可測(cè)出通電時(shí)管腳CLKOUT上的信號(hào)頻率為32.768kHz。

        方法3:OSCI輸出。直接測(cè)量管腳OSCI的輸出。

        4 程序范例

        以下的C語言源程序是用8051單片機(jī)的普通I/O口(如P0.0/P0.4)模擬實(shí)現(xiàn) PCF8563的/的操作,有字節(jié)寫/讀兩種狀態(tài)。程序中從地址的讀地址為0A3H,寫地址為0A2H.所發(fā)送的數(shù)據(jù)字節(jié)為9個(gè),發(fā)送的初始數(shù)據(jù)在rom_sed[9]中,rom_sed[9]定義了寄存器中當(dāng)前發(fā)送的值:控制/狀態(tài)寄存器1為0,控制/狀態(tài)寄存器2為0,秒寄存器為 0,分鐘寄存器55,小時(shí)寄存器為23,日寄存器為31,星期寄存器為6,月/世紀(jì)寄存器為0x12,年寄存器為0x99(即1999年12月31日23 點(diǎn)55分0秒),當(dāng)程序運(yùn)行一段時(shí)間(5分鐘)后,從地址寄存器 02H開始讀數(shù)據(jù),數(shù)據(jù)存放在rom_rec7中,發(fā)現(xiàn)變量rom_rec7變?yōu)?000年1月1日0點(diǎn)0分。若外轉(zhuǎn)帳電路有顯示,則時(shí)間可以顯示在面板上。
        #included:.h>
        #define byte unsigned char
        sbit scl=0x81; //定義串行I/O口
        sbit sda=0x80;
        idata byte rom_sed[9];
        idata byte rom_rec[7];
        idata byte j,k;
        bit flag,flag1;
        void delay(void) //延時(shí)子程序
        {data byte i;
        for(i=0;i6;i++);
        }
        void I_start(void) //發(fā)送總線起始條件子程序
        {sda=1;
        ;
        scl=1;
        delay();
        sda=0;
        delay();
        scl=0;
        ;
        }



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 恩施市| 星座| 唐山市| 根河市| 壤塘县| 神农架林区| 德兴市| 塔城市| 桐庐县| 竹山县| 松潘县| 石泉县| 遵义县| 江门市| 萨嘎县| 新宾| 德昌县| 钟山县| 古田县| 家居| 雷山县| 望江县| 河北省| 陆良县| 江阴市| 布尔津县| 略阳县| 婺源县| 庆阳市| 柏乡县| 延寿县| 崇阳县| 育儿| 睢宁县| 蒙阴县| 泌阳县| 会东县| 晋宁县| 田林县| 石门县| 平湖市|