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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10622|回復: 4
打印 上一主題 下一主題
收起左側

DS1302是怎么初始化時間的

[復制鏈接]
跳轉到指定樓層
樓主
ID:301330 發表于 2018-6-1 10:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
20黑幣
程序如下
      DS1302頭文件

實現功能:DS1302的控制

補充說明:
***************************************************************/
#ifndef _DS1302_H_
#define _DS1302_H_
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

/*****************DS1302引腳定義*******************/
sbit SCLK = P1^7;        // DS1302時鐘信號         7腳
sbit DIO  = P3^2;        // DS1302數據信號         6腳
sbit CE   = P3^4;        // DS1302片選             5腳

/*****************位尋址寄存器定義*******************/
sbit ACC_7 = ACC^7;

/*****************DS1302寄存器宏定義*****************/
#define WRITE_SECOND            0x80
#define WRITE_MINUTE                0x82
#define WRITE_HOUR              0x84
#define WRITE_DAY                      0x86
#define WRITE_MONTH                    0x88
#define WRITE_WEEK              0x8a
#define WRITE_YEA               0x8c

#define READ_SECOND             0x81
#define READ_MINUTE             0x83
#define READ_HOUR               0x85
#define READ_DAY                      0x87
#define READ_MONTH                    0x89
#define READ_WEEK               0x8b
#define READ_YEA                0x8d

#define WRITE_PROTECT           0x8E

/*****************DS1302函數定義*********************/
void Writeds1302 ( uchar addr,dat);        //DS1302指定地址,寫數據
uchar Read1302 ( uchar addr );                  //DS1302指定地址,讀數據
uchar Read1302_yuanshi(uchar addr);        //DS1302讀原始數據函數
void Read_time(void);                                //DS1302讀時間日期函數
void DS1302_init(void);                                //DS1302初始化函數

/*****************DS1302變量定義*********************/
uchar data time[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};  //存儲秒,分,時,日,月,星期,年
/********************************************************
函數名稱:void Writeds1302 ( unsigned char addr,dat )
函數作用:DS1302發送地址,數據
參數說明:addr:地址,dat:數據
********************************************************/
void Writeds1302 ( uchar addr,dat )   
{
        unsigned char i,temp;
        CE=0;         //CE引腳為低,數據傳送中止
        SCLK=0;       //清零時鐘總線
        CE = 1;       //CE引腳為高,邏輯控制有效
        //發送地址
        for ( i=8; i>0; i-- ) //循環8次移位
        {   
                SCLK = 0;
                temp = addr;
                DIO = (bit)(temp&0x01); //每次傳輸低字節
                addr >>= 1;             //右移一位
                SCLK = 1;
        }
       
        //發送數據
        for ( i=8; i>0; i-- )
        {   
             SCLK = 0;
             temp = dat;
             DIO = (bit)(temp&0x01);         
             dat >>= 1;                  
             SCLK = 1;
        }
        SCLK=1;
        CE = 0;        
}

/********************************************************
函數名稱:uchar Read1302 ( uchar addr )
函數作用:DS1302讀取數據并轉化成十進制
參數說明:addr參考DS1302寄存器宏定義
********************************************************/
uchar Read1302 ( uchar addr )
{
       unsigned char i,temp,dat1,dat2;
       CE=0;         
       SCLK=0;            
       CE = 1;
       //發送地址
       for ( i=8; i>0; i-- )                      //循環8次移位
       {   
              SCLK = 0;
              temp = addr;
              DIO = (bit)(temp&0x01);          //每次傳輸低字節
              addr >>= 1;                              //右移一位
              SCLK = 1;
       }
       //讀取數據
       for ( i=8; i>0; i-- )
       {
              ACC_7=DIO;
              SCLK = 1;
             ACC>>=1;
              SCLK = 0;
       }
                SCLK=1;   
       CE=0;
       dat1=ACC;
       dat2=dat1/16;                           //數據進制轉換
       dat1=dat1%16;                         //十六進制轉十進制
       dat1=dat1+dat2*10;
       return (dat1);
}

/********************************************************
函數名稱:void Read_time(void)
函數作用:DS1302讀取時間日期
參數說明:
********************************************************/
void Read_time(void)
{
        time[0]=Read1302(0x81);
        time[1]=Read1302(0x83);
        time[2]=Read1302(0x85);
        time[3]=Read1302(0x87);
        time[4]=Read1302(0x89);
        time[5]=Read1302(0x8b);
        time[6]=Read1302(0x8d);
}
#endif

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

使用道具 舉報

沙發
ID:265843 發表于 2019-3-14 14:58 | 只看該作者
unsigned char time_buf[8] = {0x20,0x18,0x08,0x01,0x00,0x00,0x00,0x03};//20180801  00:00:00 周三
ds1302_init(); //DS13023õê¼»ˉ
                ds1302_write_byte(ds1302_control_add,0x00);                        //關寫保護
                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_hr_add,time_buf[4]);                //時
                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);                        //開寫保護
回復

使用道具 舉報

板凳
ID:461137 發表于 2019-3-14 17:50 | 只看該作者
可以自己寫進初始時間
回復

使用道具 舉報

地板
ID:307851 發表于 2019-7-11 00:00 | 只看該作者
lml0508 發表于 2019-3-14 17:50
可以自己寫進初始時間

這個初始化時間是怎么計算的啊
回復

使用道具 舉報

5#
ID:789560 發表于 2020-7-4 17:56 | 只看該作者
stc89cxx 發表于 2019-7-11 00:00
這個初始化時間是怎么計算的啊

初始時間順序是秒分時日月周年,格式是用BCD碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久这里只有 | 国产视频久久 | 视频一区在线播放 | 午夜免费在线电影 | 亚洲精品在线免费观看视频 | 日韩av一区二区在线 | 亚洲第一在线 | av毛片| 男女羞羞网站 | www亚洲免费国内精品 | 91久久国产综合久久 | aaa一区 | www.9191| 亚州精品天堂中文字幕 | 亚洲欧美在线观看 | 亚洲免费在线 | 精品国产乱码一区二区三区 | 欧美一级片在线看 | 国产高清在线 | 97国产精品视频 | 在线日韩不卡 | 狠狠干在线 | 免费午夜视频在线观看 | 日韩在线免费视频 | 久色网| 久久精品久久久 | 国产精品美女视频 | 国产一区二区三区在线 | 中文字幕在线免费 | 精品欧美一区二区在线观看欧美熟 | 国产98色在线 | 日韩 | 国产亚洲精品久久久久动 | 久久不射电影网 | 伊人欧美视频 | 99reav| 欧美不卡视频一区发布 | 天天射美女 | 日韩成人av在线播放 | 91观看 | jizz在线免费观看 | 婷婷激情综合 |