单片机
返回首页

ds1302时钟-AVR程序代码

2017-11-23 来源:eefocus

#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);//去除写保护

    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);

    

}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章