資源簡介
stm8s003與ds1307時(shí)鐘芯片程序,硬件IIC模式,連對SCL,SDA即可。

代碼片段和文件信息
//******************************************************************************
//?釀嚅忮?RTC?DS1307?瀠?扈牮鈮銬蝠鈹脲疣?STM8S003F
//
//?棱蠑??務(wù)欒鉬?理漯彘
//?泥蜞:??18?棹??2014
//?URL:???http://hamlab.net/
//******************************************************************************
#include?“ds1307_drv.h“
//******************************************************************************
//襄皰忸?麒耠?榿?溴?蜩黜鉭?鑣邃耱噔脲龕??BCD-覲?
//******************************************************************************
static?unsigned?int?ds1307_dec2bcd(unsigned?int?dec){
??unsigned?int?temp?=?dec?result;
??
??result?=?(unsigned?int)(temp?/?1000)?<12;
??temp?%=?1000;
??result?|=?(temp/100)?<8;
??temp?%=?100;
??result?|=?(temp/10)?<4;
??result?|=?temp?%?10;
??
??return?result;
}
//******************************************************************************
//襄皰忸?麒耠?榿?BCD-覲溧??溴?蜩黜鑠?鑣邃耱噔脲龕?
//******************************************************************************
static?unsigned?int?ds1307_bcd2dec(unsigned?int?bcd){
??unsigned?int?temp?=?bcd?result;
??
??result?=?(temp?>>?12)?*?1000;
??temp?&=?0x0FFF;
??result?+=?(temp?>>?8)?*?100;
??temp?&=?0x00FF;
??result?+=?(temp?>>?4)?*?10;
??temp?&=?0x000F;
??result?+=?temp;
??
??return?result;
}
//******************************************************************************
//澤黻鯊?懨溧麒?耦耱?龕?懨鐿腠屙??鉺屨圉梃?ds1307?磬?鋮眍忮?耦耱?龕
//懨鐿腠屙??鉺屨圉梃??I2C
//******************************************************************************
static?t_ds1307_status?ds1307_i2c_error(t_i2c_status?status){
????if(status?!=?I2C_SUCCESS){
??????switch(status){
????????case?I2C_TIMEOUT:??return?DS1307_TIMEOUT;?break;
????????case?I2C_ERROR:????return?DS1307_ERROR;???break;
????????default:???????????return?DS1307_ERROR;???break;
??????}
????}?else?{
????????return?DS1307_SUCCESS;
????}
}
//******************************************************************************
//橡鉬屨賅?磬?磬腓麒?鎧栳鈮?懨鐿腠屙??鉺屨圉梃?I2C
//******************************************************************************
#define?ds1307_check_error(i2c_status)\
??if(i2c_status?!=?I2C_SUCCESS)\
????return?ds1307_i2c_error(i2c_status)
//******************************************************************************
//軟桷栲腓玎鯊?鬣耦?DS1307
//******************************************************************************??????
t_ds1307_status?ds1307_init(t_ds1307_time_mode?time_mode){
????
????//楊耱?龕?懨鐿腠屙??鉺屨圉梃?I2C
????t_i2c_status?status?=?I2C_SUCCESS;
????
????//襄皰戾眄??瀠?躔囗屙??鑣銦栩囗睇?溧眄
????t_ds1307_date_time?data;
??
????//軟桷栲腓玎鯊?RTC.?阻蜞屐?0-?皰汨耱?
????status?=?i2c_rd_reg(DS1307_SLAVE_ADDR?DS1307_REG_SEC?(char?*)&data?1);
????
????//橡鉬屨賅?耦耱?龕?懨鐿腠屙梃?鉺屨圉梃?鐿?I2C
????ds1307_check_error(status);
????
????//篷腓?疣獷蜞?鬣耦?玎鑣妁屙??蠑?疣琊屮噱?襻痤耦?CH=0
????if(data.ch){
??????//厭痤?溧螓??怵屐屙?
??????return?ds1307_reset(time_mode);
????}
??
????return?DS1307_SUCCESS;
}
//*****************************************************************
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????70712??2014-07-18?14:15??ds1307\Debug\Exe\templproj.out
?????文件?????274063??2014-07-18?14:15??ds1307\Debug\Obj\ds1307.pbd
?????文件?????274063??2014-07-18?14:15??ds1307\Debug\Obj\ds1307.pbd.browse
?????文件??????18528??2014-07-18?14:15??ds1307\Debug\Obj\ds1307_drv.o
?????文件?????259638??2014-07-18?14:15??ds1307\Debug\Obj\ds1307_drv.pbi
?????文件??????10025??2014-07-18?14:15??ds1307\Debug\Obj\ds1307_drv.pbi.cout
?????文件??????30270??2014-07-18?14:15??ds1307\Debug\Obj\i2c_drv.o
?????文件?????257054??2014-07-18?14:15??ds1307\Debug\Obj\i2c_drv.pbi
?????文件??????10022??2014-07-18?14:15??ds1307\Debug\Obj\i2c_drv.pbi.cout
?????文件??????12878??2014-07-18?14:15??ds1307\Debug\Obj\main.o
?????文件?????258214??2014-07-18?14:15??ds1307\Debug\Obj\main.pbi
?????文件??????10019??2014-07-18?14:15??ds1307\Debug\Obj\main.pbi.cout
?????文件??????18829??2014-07-18?14:15??ds1307\Debug\Obj\uart_drv.o
?????文件?????251426??2014-07-18?14:15??ds1307\Debug\Obj\uart_drv.pbi
?????文件??????10023??2014-07-18?14:15??ds1307\Debug\Obj\uart_drv.pbi.cout
?????文件???????4047??2014-07-18?14:19??ds1307\ds1307.dep
?????文件??????12210??2014-07-18?13:10??ds1307\ds1307.ewd
?????文件??????43539??2014-07-18?13:09??ds1307\ds1307.ewp
?????文件????????160??2014-07-17?14:00??ds1307\ds1307.eww
?????文件???????6265??2014-07-18?14:08??ds1307\ds1307_drv.c
?????文件???????2683??2014-07-17?16:03??ds1307\ds1307_drv.h
?????文件???????8272??2014-07-18?09:47??ds1307\i2c_drv.c
?????文件????????948??2014-07-17?15:26??ds1307\i2c_drv.h
?????文件???????3027??2014-07-18?14:15??ds1307\main.c
?????文件???????1472??2014-07-18?13:48??ds1307\settings\ds1307.cspy.bat
?????文件???????7217??2014-07-18?14:19??ds1307\settings\ds1307.dbgdt
?????文件???????1293??2014-07-18?14:19??ds1307\settings\ds1307.dni
?????文件???????4928??2014-07-18?14:19??ds1307\settings\ds1307.wsdt
?????文件???????3444??2014-07-17?13:36??ds1307\uart_drv.c
?????文件????????451??2014-07-18?10:27??ds1307\uart_drv.h
............此處省略9個(gè)文件信息
評論
共有 條評論