找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3861|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

RTC(rx8010sj)的讀寫相關(guān)代碼,利用NXF8563的代碼進行修改的。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:368032 發(fā)表于 2018-7-9 16:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*--------------------------------
  NXF8563初始化
--------------------------------*/
void NXF8563_init()
{
        sda=1;
        delayus();
        scl=1;
        delayus();
        _write_add(0x10,0x00);
        _write_add(0x11,0x32);
        _write_add(0x12,0x10);
        _write_add(0x13,0x10);           //周四
        _write_add(0x14,0x05);
        _write_add(0x15,0x07);
        _write_add(0x16,0x18);
}

/*--------------------------
         開始信號
--------------------------*/
void start()
{
        sda=1;
        delayus();
                scl=1;
        delayus();
        sda=0;
        delayus();
        scl=0;
        delayus();
}

/*-----------------------
        停止
-----------------------*/
void stop()   
{
        sda=0;
        delayus();
        scl=1;
        delayus();
        sda=1;
        delayus();
}

/*-----------------------
        應(yīng)答
-------------------------*/
void respons()  
{
        unchar i;
        scl=1;
        delayus();
        while((sda==1)&&(i<250))i++;
        scl=0;
        delayus();
}

/*------------------------------------
           寫一個字節(jié)子函數(shù)
------------------------------------*/
void write_byte(unchar date)
{
        unchar i,temp;
        temp=date;
        for(i=0;i<8;i++)
        {
                temp=temp<<1;
                scl=0;
                delayus();
                sda=CY;
                delayus();
                scl=1;
                delayus();
        }

        scl=0;
        delayus();
        sda=1;
        delayus();
}

/*------------------------------------
         讀一個字節(jié)函數(shù)
------------------------------------*/
unchar read_byte()  
{
        unchar i,k;
        scl=0;
        delayus();
        sda=1;
        delayus();
        for(i=0;i<8;i++)
        {
                scl=1;
                delayus();
                k=(k<<1)|sda;
                scl=0;
                delayus();
        }
        return k;
}

/*--------------------------------------------------
         往一個單元里寫內(nèi)容函數(shù)
---------------------------------------------------*/
void _write_add(unchar address,unchar date)   
{
        start();
        write_byte(0x64);
        respons();
        write_byte(address);
        respons();
        write_byte(date);
        respons();
        stop();
}

/*----------------------------------------------
                讀一個單元的內(nèi)容
---------------------------------------------*/
unchar read_add(unchar address)      
{
        unchar date;
        start();
        write_byte(0x64);
        respons();
        write_byte(address);
        respons();
        start();
        write_byte(0x65);
        respons();
        date=read_byte();
        stop();
        return date;
}

/*------------------------------------------------
           向nxf8563寫入時鐘數(shù)據(jù)
------------------------------------------------*/
void Write8563(void)
{

        unchar i,tmp;
        for(i=0;i<8;i++)
            {                  //BCD處理
                tmp=time_buf1[i]/10;
                time_buf[i]=time_buf1[i]%10;
                time_buf[i]=time_buf[i]+tmp*16;
            }
//        write_add(0x00,0x00);                            //關(guān)閉寫保護
//        write_add(0x01,0x00);                                //暫停
        _write_add(0x10,time_buf[7]);                //秒
        _write_add(0x11,time_buf[6]);                //分
        _write_add(0x12,time_buf[5]);                //時
        _write_add(0x13,time_buf[4]);                //周
        _write_add(0x14,time_buf[3]);                //日
        _write_add(0x15,time_buf[2]);                //月
        _write_add(0x16,time_buf[1]);                //年
//        write_add(0x00,0x00);                        //打開寫保護
}

/*-----------------------------------------
   讀出時鐘數(shù)據(jù)
----------------------------------------*/
void read8563()   
{
        time_buf[7]=read_add(0x16);                //秒
        time_buf[6]=read_add(0x15);                //分
        time_buf[5]=read_add(0x14);                //時
        time_buf[4]=read_add(0x13);                //周
        time_buf[3]=read_add(0x12);                //日
        time_buf[2]=read_add(0x11);                //月
        time_buf[1]=read_add(0x10);                //年

        //time_buf1[7]=time_buf[1]%16+(time_buf[1]/16)*10;
        //time_buf1[6]=(time_buf[2]&0x1f)%16+((time_buf[2]&0x1f)/16)*10;
        //time_buf1[5]=(time_buf[3]&0x3f)%16+((time_buf[3]&0x3f)/16)*10;
        //time_buf1[3]=(time_buf[4]&0x3f)%16+((time_buf[4]&0x3f)/16)*10;
        //time_buf1[2]=(time_buf[5]&0x7f)%16+((time_buf[5]&0x7f)/16)*10;
        //time_buf1[1]=(time_buf[6]&0x7f)%16+((time_buf[6]&0x7f)/16)*10;
        //time_buf1[7]=(time_buf[7]&0x07)%16+((time_buf[7]&0x07)/16)*10;

}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:368032 發(fā)表于 2018-7-9 16:14 | 只看該作者
本代碼剛測試通過
回復(fù)

使用道具 舉報

板凳
ID:399111 發(fā)表于 2020-6-13 14:23 | 只看該作者
你這不能用啊,,能把全部的上傳看下嗎,我測試了,顯示55
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表