久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 998|回復(fù): 0
收起左側(cè)

DS1302

[復(fù)制鏈接]
ID:345165 發(fā)表于 2018-6-5 08:56 來自觸屏版 | 顯示全部樓層 |閱讀模式

#include "ds1302.h"

unsigned char time_buf1[8] = {20,10,6,5,12,55,00,6};//空年月日時(shí)分秒周
unsigned char time_buf[8] ;                         //空年月日時(shí)分秒周
/*------------------------------------------------
           向DS1302寫入一字節(jié)數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Byte(unsigned char addr, unsigned char d)
{

        unsigned char i;
        RST_SET;       
       
        //寫入目標(biāo)地址:addr
        addr = addr & 0xFE;     //最低位置零
        for (i = 0; i < 8; i ++)
            {
                if (addr & 0x01)
                    {
                        IO_SET;
                        }
                else
                    {
                        IO_CLR;
                        }
                SCK_SET;
                SCK_CLR;
                addr = addr >> 1;
                }
       
        //寫入數(shù)據(jù):d
        for (i = 0; i < 8; i ++)
           {
                if (d & 0x01)
                    {
                        IO_SET;
                        }
                else
                    {
                        IO_CLR;
                        }
                SCK_SET;
                SCK_CLR;
                d = d >> 1;
                }
        RST_CLR;                                        //停止DS1302總線
}
/*------------------------------------------------
           從DS1302讀出一字節(jié)數(shù)據(jù)
------------------------------------------------*/

unsigned char Ds1302_Read_Byte(unsigned char addr)
{

        unsigned char i;
        unsigned char temp;
        RST_SET;       

        //寫入目標(biāo)地址:addr
        addr = addr | 0x01;//最低位置高
        for (i = 0; i < 8; i ++)
            {
             
                if (addr & 0x01)
                   {
                        IO_SET;
                        }
                else
                    {
                        IO_CLR;
                        }
                SCK_SET;
                SCK_CLR;
                addr = addr >> 1;
                }
       
        //輸出數(shù)據(jù):temp
        for (i = 0; i < 8; i ++)
            {
                temp = temp >> 1;
                if (IO_R)
                   {
                        temp |= 0x80;
                        }
                else
                   {
                        temp &= 0x7F;
                        }
                SCK_SET;
                SCK_CLR;
                }
       
        RST_CLR;        //停止DS1302總線
        return temp;
}

/*------------------------------------------------
           向DS1302寫入時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Write_Time(void)
{
     
    unsigned char 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;
            }
        Ds1302_Write_Byte(ds1302_control_add,0x00);                        //關(guān)閉寫保護(hù)
        Ds1302_Write_Byte(ds1302_sec_add,0x80);                                //暫停
        //Ds1302_Write_Byte(ds1302_charger_add,0xa9);                        //涓流充電
        Ds1302_Write_Byte(ds1302_year_add,time_buf[1]);                //年
        Ds1302_Write_Byte(ds1302_month_add,time_buf[2]);        //月
        Ds1302_Write_Byte(ds1302_date_add,time_buf[3]);                //日
        Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);                //周
        Ds1302_Write_Byte(ds1302_hr_add,time_buf[4]);                //時(shí)
        Ds1302_Write_Byte(ds1302_min_add,time_buf[5]);                //分
        Ds1302_Write_Byte(ds1302_sec_add,time_buf[6]);                //秒
        Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);                //周
        Ds1302_Write_Byte(ds1302_control_add,0x80);                        //打開寫保護(hù)
}

/*------------------------------------------------
           從DS1302讀出時(shí)鐘數(shù)據(jù)
------------------------------------------------*/
void Ds1302_Read_Time(void)  
{
               unsigned char i,tmp;
        time_buf[1]=Ds1302_Read_Byte(ds1302_year_add);                //年
        time_buf[2]=Ds1302_Read_Byte(ds1302_month_add);                //月
        time_buf[3]=Ds1302_Read_Byte(ds1302_date_add);                //日
        time_buf[4]=Ds1302_Read_Byte(ds1302_hr_add);                //時(shí)
        time_buf[5]=Ds1302_Read_Byte(ds1302_min_add);                //分
        time_buf[6]=(Ds1302_Read_Byte(ds1302_sec_add))&0x7F;//秒
        time_buf[7]=Ds1302_Read_Byte(ds1302_day_add);                //周


        for(i=0;i<8;i++)
           {           //BCD處理
                tmp=time_buf[i]/16;
                time_buf1[i]=time_buf[i]%16;
                time_buf1[i]=time_buf1[i]+tmp*10;
           }
}

/*------------------------------------------------
                DS1302初始化
------------------------------------------------*/
void Ds1302_Init(void)
{
       
        RST_CLR;                        //RST腳置低
        SCK_CLR;                        //SCK腳置低
    Ds1302_Write_Byte(ds1302_sec_add,0x00);                                 
}
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91中文字幕在线 | 亚洲自拍偷拍免费视频 | 草久在线视频 | 精品三区| 免费骚视频 | 欧美成年网站 | 欧州一区二区三区 | 国产一级在线 | 欧美精品在线视频 | 精品伊人久久 | 91精品国产91久久久久久最新 | 涩爱av一区二区三区 | 亚洲精品久久久一区二区三区 | 日韩视频在线一区 | 天堂色 | 欧美久久久久久 | 午夜视频一区二区三区 | 日韩视频在线观看 | 国产视频1区2区 | 一区二区精品视频 | 日本精品视频在线 | 97精品国产97久久久久久免费 | 91精品国产综合久久久动漫日韩 | 久久综合影院 | 成人免费看片又大又黄 | 福利久久| 91色视频在线观看 | 少妇午夜一级艳片欧美精品 | 一级黄a视频 | 国产免费又色又爽又黄在线观看 | 亚洲精品国产成人 | 欧美福利视频一区 | 亚洲国产激情 | 日韩免费1区二区电影 | 亚洲国产精品区 | 日韩福利片 | 精品久久久久香蕉网 | 在线看日韩av | 国产成人99av超碰超爽 | 成年人黄色一级毛片 | 丁香久久|