看就是有看过编程规范的-ds1302 程序

转载 2012年03月22日 15:23:44

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5245747&bbs_page_no=1&search_mode=1&search_text=1302&bbs_id=9999

 

*--------------------------------------------------------------------
函数名称:DS1302的一个完整写操作
函数功能:
注意事项:无
提示说明:无
输    入:
返    回:无
--------------------------------------------------------------------*/
void write(uint8 addr,uint8 dat)
{
CLR_RST;    //before SCL change to low level, RST must keep low level
CLR_SCK;
SET_RST;

//CLR_SCK;    //also ok!!!
//CLR_RST;
//SET_RST;

//CLR_RST;    //error
//SET_RST;
//CLR_SCK;

operData=0X80|(addr<<1);
writeByte();
operData=dat;
writeByte();
/* the following sentence here is not indispensable,
   but insert this sentence here can prevent ariseing error!
   because when start operating,RST must keep low level! */
CLR_RST;
}
/*--------------------------------------------------------------------
函数名称:DS1302的一个完整读操作
函数功能:
注意事项:无
提示说明:无
输    入:
返    回:无
--------------------------------------------------------------------*/
uint8 read(uint8 cmd)
{
//CLR_RST;
CLR_SCK;
SET_RST;
operData=(cmd<<1)|0x81;
writeByte();
readByte();
/* the following sentence here is not indispensable,
   but insert this sentence here can prevent ariseing error!
   because when start operating,RST must keep low level! */
CLR_RST;
return(operData); 
}
/*--------------------------------------------------------------------
函数名称:DS1302读时间
函数功能:
注意事项:无
提示说明:无
输    入:
返    回:无
--------------------------------------------------------------------*/
void DS1302_getTime(uint8 *buf)
{
uint8 hourAdr=2,minuteAdr=1,secondAdr=0;

buf[0]=read(secondAdr);
buf[0]=changeHexToInt(buf[0]);

buf[1]=read(minuteAdr);
buf[1]=changeHexToInt(buf[1]);

buf[2]=read(hourAdr);
buf[2]=changeHexToInt(buf[2]);

//DS1302_speaTime();
}
/*--------------------------------------------------------------------
函数名称:DS1302读日期
函数功能:
注意事项:无
提示说明:无
输    入:无
返    回:无
--------------------------------------------------------------------*/
//void DS1302_getDate(void)
//{
//
//}
/*--------------------------------------------------------------------
函数名称:DS1302拆时间
函数功能:
注意事项:无
提示说明:低层将时间拆好,方便上层调用
输    入:无
返    回:无
--------------------------------------------------------------------*/
//void DS1302_speaTime(void)
//{
// speaData(DS1302Second,2);
// DS1302SecHi=dataElem[1];
// DS1302SecLow=dataElem[0];
//
// speaData(DS1302Minute,2);
// DS1302MinHi=dataElem[1];
// DS1302MinLow=dataElem[0];
//
// speaData(DS1302Hour,2);
// DS1302HourHi=dataElem[1];
// DS1302HourLow=dataElem[0];
//}
/*--------------------------------------------------------------------
函数名称:DS1302拆日期
函数功能:
注意事项:无
提示说明:无
输    入:无
返    回:无
--------------------------------------------------------------------*/
//void DS1302_speaDate(void)
//{
//
//}
/*--------------------------------------------------------------------
函数名称:DS1302设置时间
函数功能:
注意事项:无
提示说明:无
输    入:
返    回:无
--------------------------------------------------------------------*/
void DS1302_setTime(uint8 hour,uint8 minute,uint8 second)
{
uint8 hourAdr=2,minuteAdr=1,secondAdr=0;

hour=changeIntToHex(hour);
minute=changeIntToHex(minute);
second=changeIntToHex(second);

openWP();
write(hourAdr,hour);
write(minuteAdr,minute);
write(secondAdr,second);
closeWP();
}
/*--------------------------------------------------------------------
函数名称:DS1302设置日期
函数功能:
注意事项:无
提示说明:无
输    入:
返    回:无
--------------------------------------------------------------------*/
//void DS1302_setDate(uint8 year,uint8 month,uint8 day)
//{
//
//}
/*--------------------------------------------------------------------
函数名称:DS1302初始化
函数功能:
注意事项:无
提示说明:无
输    入:无
返    回:无
--------------------------------------------------------------------*/
void DS1302_init(void)
{
OUT_SCK;
OUT_SIO;
OUT_RST;
openWP();
setChargePrmt();
closeWP();
}

#endif

51单片机DS1302实时时钟驱动程序

低功耗实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。 主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。...
  • u013151320
  • u013151320
  • 2015年12月12日 11:24
  • 3698

51单片机DS1302时钟芯片简单程序

#include  #include  #define uchar unsigned char  #define uint unsigned int data_7seg[10]={0xc0,0...
  • qq_36559546
  • qq_36559546
  • 2017年04月18日 20:26
  • 648

DS1302基本的读写

DS1302是DALLAS公司的一个时钟芯片,能设置秒、分钟、小时、月、星期、年,且年可以设置到2100年。有时钟/日历寄存器还有31*8位的额外数据暂存寄存器(RAM),可以存储对时间的修正参数或者...
  • q1241580040
  • q1241580040
  • 2015年05月15日 14:42
  • 1011

基于STM32的DS1302时钟芯片驱动

/***************************************************************************************************...
  • li_qcxy
  • li_qcxy
  • 2017年01月12日 23:38
  • 2030

DS1302时钟与LCD1602液晶显示

DS1302时钟     DS1302是一个实时时钟芯片,它在实时显示时间中应用。它可以对年、月、日、周、时、分、秒进行计时。 DS1302的引脚及原理图如下:     它与CPU的连接需要SCL...
  • u013030441
  • u013030441
  • 2015年03月15日 16:21
  • 3196

51单片机对DS1302突发模式的读写

#include #include #include "DS1302.h"//DS1302管脚 sbit SCLK = P3^6; //时钟 sbit CE = P3^5; ...
  • whileil
  • whileil
  • 2015年04月07日 21:54
  • 1116

c语言编程规范和范例及写给自己的C++编程规范

c语言编程规范和范例 1 排版 1    1-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 1    1-2:相对独立的程序块之间、变量说明之...
  • benpaobagzb
  • benpaobagzb
  • 2016年02月29日 21:46
  • 1903

c#程序编写规范

C#代码开发规范     文件状态: [√] 草稿 [  ] 正式 [  ] 修改 文件标识:   当前版本: 1.1 ...
  • youwenyouwen
  • youwenyouwen
  • 2014年04月09日 14:37
  • 3560

华为软件编程规范和范例 1 ——排版和注释

华为软件编程规范和范例 1. 排版 1.1    程序块要采用缩进风格编写, 缩进的空格数为4个。 说明: 对于由开发工具自动生成的代码可以有不一致。 1.2  ...
  • Cowena
  • Cowena
  • 2015年08月05日 10:35
  • 1314

stc15f204单片机使用ds1302调试

使用stc单片机的准IO口模式,驱动能力太岳
  • zhi379
  • zhi379
  • 2014年05月23日 17:12
  • 1078
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:看就是有看过编程规范的-ds1302 程序
举报原因:
原因补充:

(最多只允许输入30个字)