原创 【原创】stm32f的ht1380日历芯片驱动

2008-11-6 20:53 4468 11 12 分类: MCU/ 嵌入式
ht1380和ds1302的时序基本一样,送给和我一样不太愿意用rtc的朋友!
#include "ht1380.h"
GPIO_InitTypeDef GPIO_InitStructure;

unsigned char week ;//?ü

void HT1380_write(unsigned char data);
int HT1380_read(void);
void dly_HT1380(void);

/*************?ìê±???óê±***********************************/
void dly_HT1380(void)
{
    unsigned long i ;
    for(i = 32;i > 0;i--); 
}

/*************?òHT1380?DD′ò???×??ú*************************/
void HT1380_write(unsigned char data)
{
    unsigned char i="0";
    clr_HT1380_io();
    for(i=8;i>0;i--)
    {
        dly_HT1380();
        if(data&0x01)
        {
            set_HT1380_io();
        }
        dly_HT1380();
        set_HT1380_sclk();
        dly_HT1380(); 
        clr_HT1380_sclk();
        dly_HT1380(); 
        clr_HT1380_io();
        data>>=1;
    }
}

/************************************************************
oˉêy1|?ü£o′óHT1380?D?áò???×??ú
ê?è?2?êy£o?T
·μ??2?êy£odata
*************************************************************/
int HT1380_read(void)
{
    unsigned char data="0";
    unsigned char i="0";
    set_HT1380_io();
    for(i=8;i>0;i--)
    {
        set_HT1380_sclk();
        dly_HT1380();
        data>>=1;     
        if(in_HT1380_io())
        {
            data |= 0x80;
        }
        else
        {
            data &= 0x07f;
        }
        clr_HT1380_sclk();
        dly_HT1380();
    }  
    return(data);   
}

/**********′óHT1380?D?áè??úoíê±??******************************/
void HT1380_read_time(void)
{
    clr_HT1380_rst();
    dly_HT1380();
    set_HT1380_rst(); //
    dly_HT1380();
    clr_HT1380_sclk();
    dly_HT1380();
    HT1380_write(0xbf); 
    dly_HT1380();

    second="HT1380"_read(); //??
    minute="HT1380"_read(); //·?
    hour="HT1380"_read(); //ê±
    day="HT1380"_read(); //è?
    month="HT1380"_read();//??
    week="HT1380"_read(); //?ü
    year="HT1380"_read(); //?ê
    dly_HT1380();
    clr_HT1380_rst();
}
/**********?òHT1380D′è??úoíê±??******************************/
void HT1380_write_time(void)
{
    clr_HT1380_rst();
    dly_HT1380();
    set_HT1380_rst(); //
    dly_HT1380();
    clr_HT1380_sclk();
    dly_HT1380();
    HT1380_write(0x8e);
    HT1380_write(0x00);  
    dly_HT1380();
    clr_HT1380_rst();
    dly_HT1380();
    set_HT1380_rst(); //
    HT1380_write(0x80);
    HT1380_write(0x00);
    dly_HT1380();
    clr_HT1380_rst();
    dly_HT1380();
    set_HT1380_rst(); //
    HT1380_write(0xbe);
    HT1380_write(second); // ??
    HT1380_write(minute); //·?
    HT1380_write(hour); //ê±
    HT1380_write(day); //è?
    HT1380_write(month); //??
    HT1380_write(week); //?ü
    HT1380_write(year); //?ê
    HT1380_write(0x00);  
    dly_HT1380();
    clr_HT1380_rst();
}
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户171514 2008-12-14 16:32

楼主的共享精神可嘉啊
相关推荐阅读
小可歌 2016-05-31 13:54
【转帖】模拟电路的四重境界
无意中看到这个文章,虽然自己也搞了4 年模电了,但后看完之后发现自己原来根本就没有入门阿!现发上来和大家共享!·············   复旦攻读微电子专业模拟芯片设计方向研究生开始到...
小可歌 2016-05-28 07:14
发帖庆祝用app inventor的录音机保存MP3格式录音成功!
看似简单的功能,可是把我难够呛,刚学APP INVENTOR没几天,手里的两本书翻来掉去的看了N遍。APP INVENTOR的录音机默认是保存录音文件为3GP格式,我想保存成MP3文件就没有地方找...
小可歌 2016-02-22 08:56
C语言Printf格式,调试最好的助手!
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为...
小可歌 2016-02-19 15:19
对于SRAM的地址线和数据线是可以打乱顺序用的!!!!
因为SRAM的地址具有唯一性,其实数据线也有唯一性。 也就是A0~A18,D0~D15,都是唯一的。 正常是:A0~A18,接FSMC的A0~A18。 D0~D15,接FSMC的D0~D15. 假...
小可歌 2016-02-02 11:29
Linux系统下基本命令
Linux系统下基本命令: 要区分大小写  uname 显示版本信息(同win2K的 ver)  dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)  pwd...
小可歌 2016-02-02 11:28
DOS命令大全
对于一般的网民来说,dos命令是什么真的不知道,dos命令有些什么作用也不知道。但是黑客们却精通dos命令,经常利用dos命令进行各种任务,以达到自己的目的。下面笔者为大家汇总出dos命令大全,希...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条