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

    时钟芯片DS1302及其应用.ppt

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

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

    时钟芯片DS1302及其应用.ppt

    时钟芯片时钟芯片DS1302DS1302及其应用及其应用l 时钟计数功能,可以对秒、分钟、小时、月、星期、年的计时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到数。年计数可达到 2100 年。年。l 有有 31*8 位的额外数据暂存寄存器位的额外数据暂存寄存器l 最少最少 I/O 引脚传输,通过三引脚引脚传输,通过三引脚SCLK,RST,IO控制控制l 工作电压:工作电压:l 工作电流小于工作电流小于 320 纳安(纳安(2.0V)l 读写时钟寄存器或内部读写时钟寄存器或内部 RAM(31*8 位的额外数据暂存寄位的额外数据暂存寄存)可以采用单字节模式和突发模式存)可以采用单字节模式和突发模式l 8-pin DIP 封装或封装或 8-pin SOICsl 兼容兼容 TTL(5.0V)l 可选的工业级别,工作温度可选的工业级别,工作温度-40 85 摄氏度摄氏度l 兼容兼容 DS1202 较较 DS1202 增加的功能:增加的功能:1.可通过可通过 Vcc1 进行涓流充电进行涓流充电 2.双重电源补给双重电源补给 3.备用电源可采用电池或者超级电容备用电源可采用电池或者超级电容 以上以上),可以用老,可以用老式电脑主板上的式电脑主板上的 3.6V 充电电池。充电电池。功能介绍功能介绍引脚分布引脚分布引脚功能引脚功能VCC1 VCC1提供了在电池供电提供了在电池供电系统的低功耗模式,以及低功耗电系统的低功耗模式,以及低功耗电池备用。池备用。VCC2-VCC2是主电源,双电源配置电源引脚。是主电源,双电源配置电源引脚。VCC1连连接到备份源在主电源的情况下维持的时间和日期。接到备份源在主电源的情况下维持的时间和日期。当当VCC2 0;i-)DS1302_IO=a&0 x01;a=1;DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();函数功能函数功能:单片机向单片机向DS1302写一个字节子程序写一个字节子程序IO=字节字节a的最低位的最低位字节右移字节右移1位位CLK=1,延时,延时CLK=0,延时,延时到到8次了?次了?结束结束函数功能函数功能:单片机从单片机从DS1302读一个字节子程序读一个字节子程序 uchar readbyte(void)uchar i,dat=0;for(i=8;i0;i-)dat=1;if(DS1302_IO)dat|=0 x80;DS1302_CLK=1;nop;DS1302_CLK=0;return dat;经过经过 8 个时钟周期的控制读指令的个时钟周期的控制读指令的输入,控制指令串行输入后,一个输入,控制指令串行输入后,一个字节的数据将在下个字节的数据将在下个 8 个时钟周期个时钟周期的下降沿被输出,注意的下降沿被输出,注意:先输出字节先输出字节的低位。的低位。将上面的写字节和读字节放在一起研究将上面的写字节和读字节放在一起研究void sendbyte(uchar a)uchar i;for(i=8;i0;i-)DS1302_IO=a&0 x01;a=1;DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();读一个字节子程序读一个字节子程序 uchar readbyte(void)uchar i,dat=0;for(i=8;i0;i-)dat=1;if(DS1302_IO)dat|=0 x80;DS1302_CLK=1;nop;DS1302_CLK=0;return dat;写一个字节子程序写一个字节子程序这是一种方案这是一种方案在控制字节最后一位写在控制字节最后一位写完后的下降沿,第一个完后的下降沿,第一个读数据位就出现了读数据位就出现了此句看上去此句看上去,在没有先产生下降在没有先产生下降沿的情况下就读了数据,其实在沿的情况下就读了数据,其实在左边已经产生了第一个数据位左边已经产生了第一个数据位将上面的写字节和读字节放在一起研究将上面的写字节和读字节放在一起研究void sendbyte(uchar a)uchar i;for(i=8;i0;i-)DS1302_CLK=0;nop;DS1302_IO=a&0 x01;a=1;DS1302_CLK=1;nop;读一个字节子程序读一个字节子程序 uchar readbyte(void)uchar i,dat=0;for(i=8;i0;i-)DS1302_CLK=1;nop;DS1302_CLK=0;dat=1;if(DS1302_IO)dat|=0 x80;return dat;写一个字节子程序写一个字节子程序这是另一种方案这是另一种方案这里是先产生数据,再产生上升这里是先产生数据,再产生上升沿的方式送数据,最后没有产生沿的方式送数据,最后没有产生下降沿。下降沿。这里要先产生下降沿,再读数据这里要先产生下降沿,再读数据/*函数功能函数功能:写写DS1302地址子程序地址子程序 向向address地址上写入数据地址上写入数据dat*/void write_DS1302(uchar address,uchar dat)DS1302_RST=0;nop;DS1302_CLK=0;nop;DS1302_RST=1;nop;sendbyte(address);nop;sendbyte(dat);nop;DS1302_RST=0;nop;DS1302_CLK=0;经过经过 8 个时钟周期的控个时钟周期的控制字节的输入,一个字制字节的输入,一个字节的输入将在下节的输入将在下 8 个时个时钟周期的上升沿完成,钟周期的上升沿完成,数据传输从字节最低位数据传输从字节最低位开始。开始。这这3句的目的是将句的目的是将CLK置置0,但是不知道但是不知道会不会产生下降沿而送错数据会不会产生下降沿而送错数据,所以先所以先RST=0,停止所有数据传送,高阻态,停止所有数据传送,高阻态,等等CLK=0之后,再回复之后,再回复RST=1;/*函数功能函数功能:读读DS1302地址子程序地址子程序 入口参数入口参数:add出口参数出口参数:readtimeR*/uchar read_DS1302(uchar address)uchar timer;DS1302_RST=0;delays(2);DS1302_CLK=0;delays(2);DS1302_RST=1;nop;sendbyte(address);timer=readbyte();DS1302_RST=0;nop;DS1302_CLK=0;return timer;/*函数功能函数功能:初始化初始化DS1302子程序子程序入口参数入口参数:wr_data(全局变量全局变量)出口参数出口参数:*/void DS1302_init()write_DS1302(0 x8e,0 x00);/关闭保护关闭保护,bit7=0 write_DS1302(0 x8c,wr_data0);/年年 write_DS1302(0 x88,wr_data1);/月月 write_DS1302(0 x86,wr_data2);/日日 write_DS1302(0 x8A,wr_data3);/星期星期 write_DS1302(0 x84,wr_data4);/时时 write_DS1302(0 x82,wr_data5);/分分 write_DS1302(0 x80,wr_data6);/秒秒 write_DS1302(0 x8e,0 x80);/开写保护开写保护,bit7=1void clock_start(void)uchar val;val=read_DS1302(0 x81);/读秒寄存器读秒寄存器 val&=0 x7f;/秒寄存器最高位秒寄存器最高位0,时钟振荡启动时钟振荡启动 write_DS1302(0 x8e,0 x00);/关写保护关写保护 write_DS1302(0 x80,val);/写回秒寄存器写回秒寄存器 write_DS1302(0 x90,0 xa5);/1010使能涓电流充电使能涓电流充电,DS=01:选择一个二极管选择一个二极管,RS=01:R1=2k write_DS1302(0 x8e,0 x80);/开写保护开写保护 启动振荡器,启动涓电流充电启动振荡器,启动涓电流充电(竞赛可省略竞赛可省略)(竞赛可省略竞赛可省略)可以省略的理由:可以省略的理由:1.由于秒寄存器是内容由于秒寄存器是内容0 x000 x59,显然初始化时最高位也同时清零了;,显然初始化时最高位也同时清零了;2.使用的电池,不充电,可以不对电池充电。使用的电池,不充电,可以不对电池充电。/*函数功能函数功能:读读DS1302时间子程序时间子程序读到数组读到数组readtimeR中中*/void read_time(void)readtimeR0=read_DS1302(0 x8d);/年年BCD码码readtimeR1=read_DS1302(0 x89);/月月BCD码码readtimeR2=read_DS1302(0 x87);/日日BCD码码readtimeR3=read_DS1302(0 x8b);/周周BCD码码readtimeR4=read_DS1302(0 x85);/时时BCD码码readtimeR5=read_DS1302(0 x83);/分分BCD码码readtimeR6=read_DS1302(0 x81);/秒秒BCD码码送显示的数据处理方式送显示的数据处理方式year_h =readtimeR04;/年十位年十位year_l =readtimeR0&0 x0f;/年个位年个位month_h =readtimeR14;/月十位月十位month_l =readtimeR1&0 x0f;/月个位月个位 date_h =readtimeR24;/日十位日十位date_l =readtimeR2&0 x0f;/日个位日个位 hour_h =readtimeR44;/时十位时十位hour_l =readtimeR4&0 x0f;/时个位时个位minute_h =readtimeR54;/分十位分十位minute_l =readtimeR5&0 x0f;/分个位分个位 second_h =readtimeR64;/秒十位秒十位second_l =readtimeR6&0 x0f;/秒个位秒个位disTime0=hour_h;disTime1=hour_l;disTime3=minute_h;disTime4=minute_l;disTime6=second_h;disTime7=second_l;display(disTime);disDate0=year_h;disDate1=year_l;disDate3=month_h;disDate4=month_l;disDate6=date_h;disDate7=date_l;display(disDate)作判断的数据处理方式作判断的数据处理方式uchar sec,min,hour,dat,mon,year;sec=second_h*10+second_l;min=minute_h*10+minute_l;year_h =readtimeR04;/年十位年十位year_l =readtimeR0&0 x0f;/年个位年个位month_h =readtimeR14;/月十位月十位month_l =readtimeR1&0 x0f;/月个位月个位 date_h =readtimeR24;/日十位日十位date_l =readtimeR2&0 x0f;/日个位日个位 hour_h =readtimeR44;/时十位时十位hour_l =readtimeR4&0 x0f;/时个位时个位minute_h =readtimeR54;/分十位分十位minute_l =readtimeR5&0 x0f;/分个位分个位 second_h =readtimeR64;/秒十位秒十位second_l =readtimeR6&0 x0f;/秒个位秒个位设计:实现能记录开机次数和日期、时间的系统。设计:实现能记录开机次数和日期、时间的系统。1.系统平时显示时间系统平时显示时间8s后,显示日期后,显示日期2s2.设置设置2个按键:个按键:查询键:按下后,数码管不再显示当前时间,而是显示开机次数查询键:按下后,数码管不再显示当前时间,而是显示开机次数(比如第比如第n次次,显示显示n),再按一下,显示第,再按一下,显示第n次的开机日期,再按一下,显示第次的开机日期,再按一下,显示第n次的次的开机时间;再按一下,显示开机时间;再按一下,显示n-1,再按一下,显示第,再按一下,显示第n-1次的开机日期,再次的开机日期,再按一下,显示第按一下,显示第n-1次的开机时间次的开机时间,直到显示能保存的最早的那一次。,直到显示能保存的最早的那一次。返回键:按下之后返回正常显示状态。返回键:按下之后返回正常显示状态。

    注意事项

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

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




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

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

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

    收起
    展开