久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于stc12c5a60s2的ds1302掉電后繼續記錄時間
[打印本頁]
作者:
a164417839
時間:
2018-5-26 15:01
標題:
基于stc12c5a60s2的ds1302掉電后繼續記錄時間
#include"1302.h"
/uchar code READ_RTC_ADDR[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d}; //讀
uchar code WRITE_RTC_ADDR[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //寫
//---DS1302時鐘初始化2013年1月1日星期二12點00分00秒。---//
//---存儲順序是秒分時日月周年,存儲格式是用BCD碼---//
uchar TIME[7]={0,0x00,0x12,0x01,0x01,0x02,0x13};
/*******************************************************************************
* 函 數 名 : Ds1302Write
* 函數功能 : 向DS1302命令(地址+數據)
* 輸 入 : addr,dat
* 輸 出 : 無
*******************************************************************************/
void Ds1302Write(uchar addr, uchar dat)
{
uchar n;
RST = 0;
_nop_();
SCLK = 0;//先將SCLK置低電平。
_nop_();
RST = 1; //然后將RST(CE)置高電平。
_nop_();
for (n=0; n<8; n++)//開始傳送八位地址命令
{
DSIO = addr & 0x01;//數據從低位開始傳送
addr >>= 1;
SCLK = 1;//數據在上升沿時,DS1302讀取數據
_nop_();
SCLK = 0;
_nop_();
}
for (n=0; n<8; n++)//寫入8位數據
{
DSIO = dat & 0x01;
dat >>= 1;
SCLK = 1;//數據在上升沿時,DS1302讀取數據
_nop_();
SCLK = 0;
_nop_();
}
RST = 0;//傳送數據結束
_nop_();
}
/*******************************************************************************
* 函 數 名 : Ds1302Read
* 函數功能 : 讀取一個地址的數據
* 輸 入 : addr
* 輸 出 : dat
*******************************************************************************/
uchar Ds1302Read(uchar addr)
{
uchar n,dat,dat1;
RST = 0;
_nop_();
SCLK = 0;//先將SCLK置低電平。
_nop_();
RST = 1;//然后將RST(CE)置高電平。
_nop_();
for(n=0; n<8; n++)//開始傳送八位地址命令
{
DSIO=addr&0x01;//數據從低位開始傳送
addr >>= 1;
SCLK=1;//數據在上升沿時,DS1302讀取數據
_nop_();
SCLK = 0;//DS1302下降沿時,放置數據
_nop_();
}
_nop_();
for(n=0; n<8; n++)//讀取8位數據
{
dat1 = DSIO;//從最低位開始接收
dat = (dat>>1) | (dat1<<7);
SCLK = 1;
_nop_();
SCLK = 0;//DS1302下降沿時,放置數據
_nop_();
}
RST = 0;
_nop_(); //以下為DS1302復位的穩定時間,必須的。
SCLK = 1;
_nop_();
DSIO = 0;
_nop_();
DSIO = 1;
_nop_();
return dat;
}
/*******************************************************************************
* 函 數 名 : Ds1302Init
* 函數功能 : 初始化DS1302.
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Ds1302Init()
{
uchar n;
RST=0;
SCLK=0;
Ds1302Write(0x8E,0X00); //禁止寫保護,就是關閉寫保護功能
Ds1302Write(0x8F,0x80);
for (n=0; n<7; n++)//寫入7個字節的時鐘信號:分秒時日月周年
{
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
}
Ds1302Write(0x8E,0x80); //打開寫保護功能
}
void Ds1302ReadTime()
{
uchar n;
for (n=0; n<7; n++)//讀取7個字節的時鐘信號:分秒時日月周年
{
TIME[n]=Ds1302Read(READ_RTC_ADDR[n]);
}
}
請問如果要斷電顯示應該怎么編寫初始化函數比較好呢~謝謝
作者:
ahshmj
時間:
2018-5-28 08:50
斷電怎么可以顯示呢?難道顯示部分不需要電嗎?一般設計中,1302是有后備電源的,但僅僅能維持內部時鐘正常走時,不能維持外部的電路或芯片工作,更難以維持顯示部分工作。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区四区免费观看
|
日韩h
|
亚洲精品久久久蜜桃
|
懂色av一区二区三区在线播放
|
成人老司机
|
国产一区二区在线播放
|
国产一级在线
|
欧美激情欧美激情在线五月
|
综合久久一区
|
国产在线中文
|
av黄色在线
|
天堂在线中文
|
欧美一级片在线观看
|
午夜精品三区
|
天天看逼
|
欧美日韩成人在线
|
欧美三级不卡
|
欧美日韩成人影院
|
无毛av
|
久久9999久久
|
日韩在线三级
|
亚洲视频在线免费观看
|
成人午夜电影在线观看
|
九九国产
|
国产日韩久久
|
a黄在线观看
|
永久av
|
在线国产中文字幕
|
日韩中文字幕在线免费
|
欧美1区2区
|
国产亚洲成av人片在线观看桃
|
91久久北条麻妃一区二区三区
|
亚洲天堂成人在线视频
|
亚洲天堂精品久久
|
成人久久18免费网站麻豆
|
亚洲欧洲av在线
|
欧美日本韩国一区二区
|
日日操日日舔
|
97精品国产97久久久久久免费
|
国产精品久久久久一区二区三区
|
欧美aaaaaaaa
|