欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DS1302驱动程序.doc

    • 资源ID:70345152       资源大小:38KB        全文页数:4页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DS1302驱动程序.doc

    DS1302是课程设计和毕业设计经常用到的时钟芯片,还在愁怎么对DS1302操作吗?那么看完DS1302驱动程序,一切变得那么简单。DS1302驱动程序:/=DS1302.H=#ifndef _DS1302_H_#define _DS1302_H_/DS1302管脚定义sbit T_IO=P26; /位定义1302芯片的接口,数据输出端定义在P2.5引脚sbit T_RST=P27; /位定义1302芯片的接口,复位端口定义在P2.6引脚sbit T_CLK=P25; /位定义1302芯片的接口,时钟输出端口定义在P2.4引脚/变量定义声明unsigned char TableDs13027=55,59,23,4,3,5,11; /初始化时时间日期设置 /秒 分 时 日月 星期 年/函数定义声明void Write1302(unsigned char );/向1302写一个字节数据void WriteSet1302(unsigned char ,unsigned char );/根据命令字,向1302写一个字节数据unsigned char Read1302(void);/从1302读一个字节数据unsigned char ReadSet1302(unsigned char Cmd);/根据命令字从1302读取一个字节数据void InitDS1302(void);/初始化1302void GetTime(void);/获取1302的时间/*函数功能:向1302写一个字节数据入口参数:x*/ void Write1302(unsigned char dat) unsigned char i; T_CLK=0; /拉低T_CLK,为脉冲上升沿写入数据做好准备 Delay1Us(2); /稍微等待,使硬件做好准备 for(i=0;i<8;i+) /连续写8个二进制位数据 T_IO=dat&0x01; /取出dat的第0位数据写入1302Delay1Us(2); /稍微等待,使硬件做好准备T_CLK=1; /上升沿写入数据Delay1Us(2); /稍微等待,使硬件做好准备T_CLK=0; /重新拉低T_CLK,形成脉冲dat>>=1; /将dat的各数据位右移1位,准备写入下一个数据位 /*函数功能:根据命令字,向1302写一个字节数据入口参数:Cmd,储存命令字;dat,储存待写的数据,为十进制数*/ void WriteSet1302(unsigned char Cmd,unsigned char dat)T_RST=0; /禁止数据传递 T_CLK=0; /确保写数居前T_CLK被拉低T_RST=1; /启动数据传输Delay1Us(2); /稍微等待,使硬件做好准备Write1302(Cmd); /写入命令字Write1302(dat/10<<4)|(dat%10); /写数据T_CLK=1; /将时钟电平置于已知状态T_RST=0; /禁止数据传递/*函数功能:从1302读一个字节数据入口参数:x*/ unsigned char Read1302(void) unsigned char i,dat;Delay1Us(2); /稍微等待,使硬件做好准备for(i=0;i<8;i+) /连续读8个二进制位数据dat>>=1; /将dat的各数据位右移1位,因为先读出的是字节的最低位if(T_IO=1) /如果读出的数据是1dat|=0x80; /将1取出,写在dat的最高位 T_CLK=1; /将T_CLK置于高电平,为下降沿读出Delay1Us(2); /稍微等待T_CLK=0; /拉低T_CLK,形成脉冲下降沿Delay1Us(2); /稍微等待 return dat; /将读出的数据返回 /*函数功能:根据命令字,从1302读取一个字节数据入口参数:Cmd*/ unsigned char ReadSet1302(unsigned char Cmd)unsigned char temp,dat1,dat2; T_RST=0; /拉低T_RST T_CLK=0; /确保写数居前T_CLK被拉低 T_RST=1; /启动数据传输 Write1302(Cmd); /写入命令字 temp=Read1302(); /读出数据 T_CLK=1; /将时钟电平置于已知状态 T_RST=0; /禁止数据传递dat1=temp/16; /16进制转成BCDdat2=temp%16;temp=dat1*10+dat2; /转换成10进制数字 return (temp); /将读出的数据返回/*函数功能: 1302进行初始化设置*/ void InitDS1302(void)unsigned char i,add;add=0x80;WriteSet1302(0x8e,0x00); /允许写入for(i=0;i<7;i+)WriteSet1302(add,TableDs1302i); add+=2; WriteSet1302(0x90,0xa6); /写充电控制寄存器.WriteSet1302(0x8e,0x80); /禁止写入/*程序功能:获取DS1302时间*/void GetTime()unsigned char i,add=0x81;WriteSet1302(0x8e,0x00); /允许向DS1302写入数据for(i=0;i<7;i+) TableDs1302i=ReadSet1302(add); /获得的数据已转换为十进制 add+=2;WriteSet1302(0x8e,0x80); /获取完一次时间,禁止向DS1302写入数据,提高可靠endif

    注意事项

    本文(DS1302驱动程序.doc)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开