新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > I2C實時時鐘/日歷芯片在8051系統中的應用

        I2C實時時鐘/日歷芯片在8051系統中的應用

        作者: 時間:2012-03-07 來源:網絡 收藏

        3 概述

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

        51.gif

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

        方法2:OSCI微調電容??赏ㄟ^調整OSCI管腳的微調電容式振蕩器的頻率來獲得更高的精度,此時可測出通電時管腳CLKOUT上的信號頻率為32.768kHz。

        方法3:OSCI輸出。直接測量管腳OSCI的輸出。

        4 程序范例

        以下的C語言源程序是用8051單片機的普通I/O口(如P0.0/P0.4)模擬實現 PCF8563的/的操作,有字節寫/讀兩種狀態。程序中從地址的讀地址為0A3H,寫地址為0A2H.所發送的數據字節為9個,發送的初始數據在rom_sed[9]中,rom_sed[9]定義了寄存器中當前發送的值:控制/狀態寄存器1為0,控制/狀態寄存器2為0,秒寄存器為 0,分鐘寄存器55,小時寄存器為23,日寄存器為31,星期寄存器為6,月/世紀寄存器為0x12,年寄存器為0x99(即1999年12月31日23 點55分0秒),當程序運行一段時間(5分鐘)后,從地址寄存器 02H開始讀數據,數據存放在rom_rec7中,發現變量rom_rec7變為2000年1月1日0點0分。若外轉帳電路有顯示,則時間可以顯示在面板上。
        #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) //延時子程序
        {data byte i;
        for(i=0;i6;i++);
        }
        void I_start(void) //發送總線起始條件子程序
        {sda=1;
        ;
        scl=1;
        delay();
        sda=0;
        delay();
        scl=0;
        ;
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新宁县| 宿迁市| 淮滨县| 桑日县| 曲周县| 镇雄县| 闵行区| 德庆县| 巫溪县| 平谷区| 安远县| 上饶市| 会同县| 平塘县| 荣昌县| 麻栗坡县| 南投市| 连山| 永胜县| 林周县| 荔波县| 南雄市| 会昌县| 肃北| 威宁| 新兴县| 正阳县| 绍兴县| 玉屏| 南平市| 甘孜县| 商丘市| 广宗县| 冕宁县| 红桥区| 漯河市| 常德市| 琼结县| 班玛县| 富蕴县| 密云县|