版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.
/
#include"stm32f10x_conf.h"
#include"mrhh_f1.h"
#include"HPF_TIME.h"
#include"HpfDS1302Drive.h"
//
// DS1302Çý¶¯F103IO¿ÚÅäÖÃ
// Ver1.0ByMrHDS
// 2016,4.23
//
#if1
#define clkreset GPIOE->BRR=GPIO_Pin_1
#define clkset GPIOE->BSRR=GPIO_Pin_1
#definerstreset GPIOE->BRR=GPIO_Pin_2
#definerstset GPIOE->BSRR=GPIO_Pin_2
#definedatreset GPIOE->BRR=GPIO_Pin_0
#definedatset GPIOE->BSRR=GPIO_Pin_0
#definedatred GPIO_ReadInputDataBit<GPIOE,GPIO_Pin_0> //¶ÁÈ¡Êý¾Ý
#defineDS1302Enable HpfDS1302WritByte<control_add,0x80> //´ò¿ª±£»¤
#defineDS1302DisEnable HpfDS1302WritByte<control_add,0x00> //¹Ø±Õ±£»¤
#definetestdat 0x25
#definecheaken 0
#endif
#definedstim1
Ds1302TimeDSTime={21,16,1,1,12,0,0,1};
voidHpfDS1302PinInData<void>
{
GPIO_InitTypeDefGPIO_InitStructure;
RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOE,ENABLE>;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; //ÉÏÀÊäÈë
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init<GPIOE,&GPIO_InitStructure>;
}
voidHpfDS1302PinOutData<void>
{
GPIO_InitTypeDefGPIO_InitSyructure;
RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOE,ENABLE>;
GPIO_InitSyructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÍÆÃâÊä³ö
GPIO_InitSyructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitSyructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init<GPIOE,&GPIO_InitSyructure>;
}
voidHpfDS1302PinClkRst<void>
{
GPIO_InitTypeDefGPIO_InitSyructure;
RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOE,ENABLE>;
GPIO_InitSyructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÍÆÃâÊä³ö
GPIO_InitSyructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2;
GPIO_InitSyructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init<GPIOE,&GPIO_InitSyructure>;
}
voidHpfDS1302Init<void>
{
HpfDS1302PinClkRst<>;
clkreset;
rstreset;
//¼Ä´æÆ÷Ö±½ÓÅäÖÃÊä³öµÍµçƽ
}
//
// DS1302Çý¶¯Ð´ÈëÒ»¸öµØÖ·ºÍÊý¾Ý
// Ver1.0ByMrHDS
// 2016,4.23
//
voidHpfDS1302WritByte<u8addr,u8data> //дÈëÊý¾ÝÔÚÉÏÉýÑØÓÐЧ
{
u8i;
HpfDS1302PinOutData<>;
addr&=0xfe; //дÊý¾Ý£¬µØÖ·×îµÍλΪ¸ß
rstreset;
clkreset;
HpfDealyUs<dstim>;
rstset;
HpfDealyUs<dstim>;
for<i=0;i<8;i++> // дÈëµØÖ·
{
clkreset;
HpfDealyUs<dstim>;
if<addr&0x01>
datset;
else
datreset;
clkset;
HpfDealyUs<dstim>;
addr>>=1;
// HpfDealyUs<10>;
}
for<i=0;i<8;i++> //дÈëÊý¾Ýdata
{
clkreset;
HpfDealyUs<dstim>;
if<data&0x01>
datset;
else
datreset;
clkset;
HpfDealyUs<dstim>;
data>>=1;
}
rstreset; //Í£Ö¹×ÜÏß
clkreset;
}
//
// DS1302Çý¶¯¶Áȡһ¸öÊý¾Ý
// Ver1.0ByMrHDS
// 2016,4.23
//
u8HpfDS1302ReadByte<u8addr> //¶Áȡһ¸öÊý¾ÝÔÚϽµÑØÓÐЧ£¬Ð´ÈëµØÖ·ÔÚÉÏÉýÑØÓÐЧ
{
u8i,tem=0;
addr|=0x01; //¶ÁÊý¾Ý£¬µØÖ·×îµÍλΪ1
rstreset;
clkreset;
HpfDealyUs<dstim>;
rstset; //Æô¶¯×ÜÏß
HpfDealyUs<dstim>;
HpfDS1302PinOutData<>;
for<i=0;i<8;i++>
{
clkreset;
HpfDealyUs<dstim>;
if<addr&0x01>
datset;
else
datreset;
clkset;
HpfDealyUs<dstim>;
addr>>=1;
}
HpfDS1302PinInData<>;
for<i=0;i<8;i++>
{
clkreset;
HpfDealyUs<dstim>;
if<datred>
tem|=0x80;
if<i<7>
tem>>=1;
clkset;
HpfDealyUs<dstim>;
}
rstreset;
clkreset;
returntem;
}
u8HpfDSBCDToNum<u8BCD> //8421BCDÂëת»»ÎªÊý×Ö
{
u8temp,temp1;
temp1=BCD&0x0f;
temp=<<BCD&0xf0>>>4>*10+temp1;
returntemp;
}
u8HpfDSNumToBCD<u8NUM> //Êý×Öת»»Îª8421BCDÂë
{
u8temp;
temp=<<NUM/10><<4>|<NUM%10>;
returntemp;
}
//
// DS1302Çý¶¯»ñÈ¡Óû§Ê±¼ä²¢×ª»»ÎªbcdÂë²¢¸´ÖƵ½DS1302bufferÖÐ
// Ver1.0ByMrHDS
// 2016,4.23
//
voidHpfDSTimrSet<void>
{
HpfWTime*p;
Ds1302Time*s;
p=GetWRTime<>;
s=&DSTime;
s->century=p->MyYear/100+1;
s->year=HpfDSNumToBCD<p->MyYear-<s->century-1>*100>;
s->month=HpfDSNumToBCD<p->MyMon>;
s->day=HpfDSNumToBCD<p->MyDay>;
s->hh=HpfDSNumToBCD<p->MyHH>;
s->mm=HpfDSNumToBCD<p->MyMM>;
s->ss=HpfDSNumToBCD<p->MySS>;
s->week=HpfDSNumToBCD<GetWNLWeek<p,s->day>>;
}
//
// DS1302°ÑbufferÖеÄʱ¼äÊý¾ÝдÈëµ½ds1302ÖÐ
// Ver1.0ByMrHDS
// 2016,4.23
//
voidHpfDS1302WritData<void>
{
Ds1302Time*s;
s=&DSTime;
DS1302DisEnable; //¹Ø±Õд±£»¤
HpfDS1302WritByte<sec_add,0x80>; //ÔÝͣʱÖÓ
HpfDS1302WritByte<year_add,s->year>;
HpfDS1302WritByte<month_add,s->month>;
HpfDS1302WritByte<day_add,s->day>;
HpfDS1302WritByte<hh_add,s->hh>;
HpfDS1302WritByte<min_add,s->mm>;
HpfDS1302WritByte<sec_add,s->ss>;
HpfDS1302WritByte<week_add,s->week>;
HpfDS1302WritByte<RAM_Address29,testdat>;
DS1302Enable;
}
//
// DS1302¶Áȡʱ¼äÊý¾Ý²¢×ª»»ÎªÊý×Ö²¢´æÈ뻺´æÆ÷ÖÐ
// Ver1.0ByMrHDS
// 2016,4.23
//
voidHpfDS1302ReadData<void>
{
Ds1302Time*s;
s=&DSTime;
s->year=HpfDSBCDToNum<HpfDS1302ReadByte<year_add>>;
s->month=HpfDSBCDToNum<HpfDS1302ReadByte<month_add>>;
s->day=HpfDSBCDToNum<HpfDS1302ReadByte<day_add>>;
s->hh=HpfDSBCDToNum<HpfDS1302ReadByte<hh_add>>;
s->mm=HpfDSBCDToNum<HpfDS1302ReadByte<min_add>>;
s->ss=HpfDSBCDToNum<HpfDS1302ReadByte<sec_add>>;
s->week=HpfDSBCDToNum<HpfDS1302ReadByte<week_add>>;
}
//
// DS1302°Ñʱ¼äͬ²½µ½Óû§Ê±¼ä
// Ver1.0ByMrHDS
// 2016,4.23
//
voidHpfDS1302TimeSyn<void>
{
HpfWTime*p;
p=GetWRTime<>;
p->MyYear=<DSTime.century-1>*100+DSTime.year;
p->MyMon=DSTime.month;
p->MyDay=DSTime.day;
p->MyHH=DSTime.hh;
p->MyMM=DSTime.mm;
p->MySS=DSTime.ss;
}
//
// DS1302Çý¶¯»ñÈ¡»º´æÆ÷µØÖ·
// Ver1.0ByMrHDS
// 2016,4.23
//
Ds1302Time*HpfDS1302GetTime<void>
{
HpfDS1302Init<>;
HpfDS1302ReadData<>;
return&DSTime;
}
//
// DS1302Çý¶¯RAM²Ù×÷
// Ver1.0ByMrHDS
// 2016,4.23
//
// bufferΪ»º´æÆ÷µØÖ·£¬ramaddrΪÄÚ´æµØÖ·£¬numΪÁ¬Ðø²Ù×÷µÄ·¶Î§£¬rwΪ1£¬±íʾдÈëÊý¾Ý£¬Îª0±íʾ¶ÁÈ¡Êý¾Ý
//
//
//
//
//
//
voidHpfDs1302RamWR<u8*buffer,u8ramaddr,u8num,u8rw>
{
u8i;
if<ramaddr==RAM_Address29>
return;
if<rw>
{
for<i=0;i<num;i++>
{
DS1302DisEnable;
HpfDS1302WritByte<ramaddr+<i<<1>,buffer[i]>;
DS1302Enable;
}
}
else
{
for<i=0;i<num;i++>
buffe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第4课 优劣排位看-数据排序 教学设计 -辽师大版(2015)初中信息技术七年级下册
- 纸箱制造企业原纸库存安全管控细则
- 轴承制造企业成品防锈仓储管控实施方案
- 消防系统升级改造方案
- 尾矿库排水系统优化方案
- 企业项目收尾阶段清账方案
- 软件外包公司驻场人员考勤考核细则
- 木材仓储防潮管理方案
- 风电场施工环保监测专项方案
- 2026年幼儿园爱国知识挑战赛
- MES系统开发合同
- 2025年宝山区社区工作者招聘考试真题(附含答案)
- 高速公路改扩建交通导改方案
- 2025年全国初级导游人员资格考试(政策与法律法规、导游业务)历年参考题库含答案详解(5卷)
- 【MOOC答案】《人力资源管理》(南京邮电大学)章节作业慕课答案
- 如何书包班会课件
- 服装公司资产管理制度
- 冬病夏治及中医夏季养生课件
- 园区污水接纳协议书
- 《现代农业技术与装备》课件
- 综治中心规范化建设授课
评论
0/150
提交评论