DS时钟芯片的程序.pdf

上传人:l**** 文档编号:73566453 上传时间:2023-02-19 格式:PDF 页数:8 大小:606.65KB
返回 下载 相关 举报
DS时钟芯片的程序.pdf_第1页
第1页 / 共8页
DS时钟芯片的程序.pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《DS时钟芯片的程序.pdf》由会员分享,可在线阅读,更多相关《DS时钟芯片的程序.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 DS 时钟芯片的程序 LELE was finally revised on the morning of December 16,2020/*公司名称:模块名称:DS1302.c 功 能:实时时钟模块 时钟芯片型号:DS1302 说 明:程序设计:zhaojunjie 设计时间:2002.03.02 版 本 号:20020302*/#include sbit T_CLK =P27;/*实时时钟时钟线引脚*/sbit T_IO =P14;/*实时时钟数据线引脚*/sbit T_RST =P15;/*实时时钟复位线引脚*/sbit ACC0=ACC0;sbit ACC7=ACC7;void R

2、TInputByte(uchar);/*输入 1Byte*/uchar RTOutputByte(void);/*输出?1Byte*/void W1302(uchar,uchar);uchar R1302(uchar);void Set1302(uchar*);/*设置时间*/void Bcd2asc(uchar,uchar*);void Get1302(uchar curtime);/*读取 1302当前时间*/*函 数 名:RTInputByte()功 能:实时时钟写入一字节 说 明:往 DS1302 写入 1Byte数据(内部函数)入口参数:d 写入的数据 返 回 值:无 设 计:zha

3、ojunjie 日 期:2002-03-19 修 改:日 期:*/void RTInputByte(uchar d)uchar i;ACC=d;for(i=8;i0;i-)T_IO=ACC0;/*相当于汇编中的 RRC*/T_CLK=1;T_CLK=0;ACC=ACC 1;/*函 数 名:RTOutputByte()功 能:实时时钟读取一字节 说 明:从 DS1302 读取 1Byte数据(内部函数)入口参数:无 返 回 值:ACC 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/uchar RTOutputByte(void)uchar i;for(i=8;i

4、0;i-)ACC=ACC 1;/*相当于汇编中的 RRC*/ACC7=T_IO;T_CLK=1;T_CLK=0;return(ACC);/*函 数 名:W1302()功 能:往 DS1302 写入数据 说 明:先写地址,后写命令/数据(内部函数)调 用:RTInputByte(),RTOutputByte()入口参数:ucAddr:DS1302 地址,ucData:要写的数据 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void W1302(uchar ucAddr,uchar ucDa)T_RST=0;T_CLK=0;T_RST=1;RTI

5、nputByte(ucAddr);/*地址,命令*/RTInputByte(ucDa);/*写 1Byte数据*/T_CLK=1;T_RST=0;/*函 数 名:R1302()功 能:读取 DS1302某地址的数据 说 明:先写地址,后读命令/数据(内部函数)调 用:RTInputByte(),RTOutputByte()入口参数:ucAddr:DS1302 地址 返 回 值:ucData:读取的数据 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/uchar R1302(uchar ucAddr)uchar ucData;T_RST=0;T_CLK=0;T_R

6、ST=1;RTInputByte(ucAddr);/*地址,命令*/ucData=RTOutputByte();/*读 1Byte数据*/T_CLK=1;T_RST=0;return(ucData);/*函 数 名:BurstW1302T()功 能:往 DS1302 写入时钟数据(多字节方式)说 明:先写地址,后写命令/数据 调 用:RTInputByte()入口参数:pWClock:时钟数据地址 格式为:秒 分 时 日 月 星期 年 控制 8Byte(BCD码)1B 1B 1B 1B 1B 1B 1B 1B 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:

7、日 期:*/void BurstW1302T(uchar*pWClock)uchar i;W1302(0 x8e,0 x00);/*控制命令,WP=0,写操作*/T_RST=0;T_CLK=0;T_RST=1;RTInputByte(0 xbe);/*0 xbe:时钟多字节写命令*/for(i=8;i0;i-)/*8Byte=7Byte 时钟数据+1Byte 控制*/RTInputByte(*pWClock);/*写 1Byte数据*/pWClock+;T_CLK=1;T_RST=0;/*函 数 名:BurstR1302T()功 能:读取 DS1302 时钟数据 说 明:先写地址/命令,后读数

8、据(时钟多字节方式)调 用:RTInputByte(),RTOutputByte()入口参数:pRClock:读取时钟数据地址 格式为:秒 分 时 日 月 星期 年 7Byte(BCD码)1B 1B 1B 1B 1B 1B 1B 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void BurstR1302T(uchar*pRClock)uchar i;T_RST=0;T_CLK=0;T_RST=1;RTInputByte(0 xbf);/*0 xbf:时钟多字节读命令*/for(i=8;i0;i-)*pRClock=RTOutputByte()

9、;/*读 1Byte数据*/pRClock+;T_CLK=1;T_RST=0;/*函 数 名:BurstW1302R()功 能:往 DS1302 寄存器数写入数据(多字节方式)说 明:先写地址,后写数据(寄存器多字节方式)调 用:RTInputByte()入口参数:pWReg:寄存器数据地址 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void BurstW1302R(uchar*pWReg)uchar i;W1302(0 x8e,0 x00);/*控制命令,WP=0,写操作*/T_RST=0;T_CLK=0;T_RST=1;RTInputB

10、yte(0 xfe);/*0 xbe:时钟多字节写命令*/for(i=31;i0;i-)/*31Byte 寄存器数据*/RTInputByte(*pWReg);/*写 1Byte数据*/pWReg+;T_CLK=1;T_RST=0;/*函 数 名:BurstR1302R()功 能:读取 DS1302寄存器数据 说 明:先写地址,后读命令/数据(寄存器多字节方式)调 用:RTInputByte(),RTOutputByte()入口参数:pRReg:寄存器数据地址 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void BurstR1302R(uc

11、har*pRReg)uchar i;T_RST=0;T_CLK=0;T_RST=1;RTInputByte(0 xff);/*0 xff:时钟多字节读命令*/for(i=31;i0;i-)/*31Byte 寄存器数据*/*pRReg=RTOutputByte();/*读 1Byte 数据*/pRReg+;T_CLK=1;T_RST=0;/*函 数 名:Set1302()功 能:设置初始时间 说 明:先写地址,后读命令/数据(寄存器多字节方式)调 用:W1302()入口参数:pClock:设置时钟数据地址 格式为:秒 分 时 日 月 星期 年 7Byte(BCD码)1B 1B 1B 1B 1B

12、1B 1B 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void Set1302(uchar*pClock)uchar i;uchar ucAddr=0 x80;W1302(0 x8e,0 x00);/*控制命令,WP=0,写操作*/for(i=7;i0;i-)W1302(ucAddr,*pClock);/*秒 分 时 日 月 星期 年*/pClock+;ucAddr+=2;W1302(0 x8e,0 x80);/*控制命令,WP=1,写保护*/*函 数 名:Get1302()功 能:读取 DS1302当前时间 说 明:调 用:R1302()入口参数:ucCurtime:保存当前时间地址。当前时间格式为:秒 分 时 日 月 星期 年 7Byte(BCD码)1B 1B 1B 1B 1B 1B 1B 返 回 值:无 设 计:zhaojunjie 日 期:2002-03-19 修 改:日 期:*/void Get1302(uchar ucCurtime)uchar i;uchar ucAddr=0 x81;for(i=0;i7;i+)ucCurtime=R1302(ucAddr);/*格式为:秒 分 时 日 月 星期 年*/ucAddr+=2;/*/*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁