资源简介
stm8s003与ds1307时钟芯片程序,硬件IIC模式,连对SCL,SDA即可。
代码片段和文件信息
//******************************************************************************
// 酿嚅忮?RTC DS1307 潆 扈牮铌铐蝠铍脲疣 STM8S003F
//
// 棱蝾? 务栾钼 理漯彘
// 泥蜞: 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;
}
//*****************************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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个文件信息
相关资源
- STM8S003使用手册
- STM8s003单片机输出7路PWM波
- STM8S003红外遥控支持连发码
- STM8S003 EEROM读写
- STM8S003 PWM功能实现
- STM8S003读取DS18B20温度传感器
- STM8S003模拟串口中断接收
- STM8S003-LIS3DH
- 基于stm8s003f3无线充电方案
- 无线315/433通用解码
- STM8S003串口最小代码例程
- 基于AVR单片机的DS1307使用实验
- ds1307实时时钟应用包含仿真和程序
- STM8S003单片机ADC采样正弦波平均值
- Stm8s003f3p6最小系统
- stm8s003 利用定时器4产生中断程序
- DS1307-C51
评论
共有 条评论