找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3032|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ds1302時鐘-AVR程序代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51024 發(fā)表于 2014-7-12 01:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式


學(xué)AVR時候?qū)懙囊恍┏绦,分享一?br />








#include

#include "DS1302.h"

#include



void ds1302_init(void)

{

    PORTX=0x00;

    DDRX=0x07;

}



void write_ds1302_byte(unsigned char dat)

{



    unsigned char i;

    for(i=0;i<8;i++)

    {

    SCK=0;

    IO_out=dat&0x01;

    dat=dat>>1;

    SCK=1;

    }

}



void write_ds1302(unsigned char add,unsigned char dat)

{

    RST=1;

    delay_us(1);

    write_ds1302_byte(add);

    write_ds1302_byte(dat);   

    RST=0;

    delay_us(2);

    IO_out=0;  

    SCK=0;     

}



unsigned char read_ds1302(unsigned char add)

{

    unsigned char i,value=0;

    RST=1;

    write_ds1302_byte(add);

    IO_setting=0;

    for(i=0;i<8;i++)

    {

    value=value>>1;

    SCK=0;

    SCK=0; //必須給兩次!

    if(IO_in) value=value|0x80;

    SCK=1;   

    }

    IO_setting=1;

    SCK=0;

    RST=0;

    delay_us(2);

    IO_out=0;

    return value;   

}



void set_rtc(unsigned char* time_data)

{

    unsigned char i,j,write_add;

    for(i=0;i<7;i++)

    {

        j=time_data[i]/10;

        time_data[i]=time_data[i];

        time_data[i]=time_data[i]+j*16;

    }   

    write_ds1302(0x8e,0x00);//去除寫保護(hù)

    for(i=0,write_add=0x8c;i<7;i++,write_add-=2)

        write_ds1302(write_add,time_data[i]);

    write_ds1302(0x8e,0x80);        

}



void read_rtc(unsigned char* time_data)

{

    unsigned char i,j,read_add;

    write_ds1302(0x8e,0x00);

    for(i=0,read_add=0x8d;i<7;i++,read_add-=2)

        time_data[i]=read_ds1302(read_add);

    for(i=0;i<7;i++)

    {

        j=time_data[i]/16;

        time_data[i]%=16;

        time_data[i]+=j*10;

    }  

    write_ds1302(0x8e,0x80);



}


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

使用道具 舉報

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

本版積分規(guī)則

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

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

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