版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9 9讲讲 时钟芯片时钟芯片DS1302DS1302及其应用及其应用全国电子专业人才设计与技能大赛辅导l 时钟计数功能,可以对秒、分钟、小时、月、星期、年的时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到计数。年计数可达到 2100 年。年。l 有有 31*8 位的额外数据暂存寄存器位的额外数据暂存寄存器l 最少最少 I/O 引脚传输,通过三引脚引脚传输,通过三引脚SCLK,RST,IO控制控制l 工作电压:工作电压: 2.0-5.5Vl 工作电流小于工作电流小于 320 纳安(纳安( 2.0V )l 读写时钟寄存器或内部读写时钟寄存器或内部 RAM ( 31*8 位的
2、额外数据暂存寄位的额外数据暂存寄存)可以采用单字节模式和突发模式存)可以采用单字节模式和突发模式l 8-pin DIP 封装或封装或 8-pin SOICsl 兼容兼容 TTL ( 5.0V )l 可选的工业级别,工作温度可选的工业级别,工作温度 -40 85 摄氏度摄氏度l 兼容兼容 DS1202 较较 DS1202 增加的功能:增加的功能: 1. 可通过可通过 Vcc1 进行涓流充电进行涓流充电 2. 双重电源补给双重电源补给 3. 备用电源可采用电池或者超级电容备用电源可采用电池或者超级电容 (0.1F以上以上 ) ,可以,可以用老式电脑主板上的用老式电脑主板上的 3.6V 充电电池。充
3、电电池。功能介绍功能介绍引脚分布引脚分布引脚功能引脚功能VCC1 VCC1提供了在电池供电提供了在电池供电系统的低功耗模式,以及低功耗电系统的低功耗模式,以及低功耗电池备用。池备用。VCC2 - VCC2是主电源,双电源配置电源引脚。是主电源,双电源配置电源引脚。VCC1连连接到备份源在主电源的情况下维持的时间和日期。接到备份源在主电源的情况下维持的时间和日期。 当当VCC2 0;i-) DS1302_IO = a & 0 x01;a = 1;DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_(); 函数功能函数功能:单片机向单片机向DS1302写一个字节子程序写一
4、个字节子程序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 个时钟周期的控制读指令的个时钟周期的控制读指令的输入,控制指令串行输入后,一个输入,控制指令串行输入后,一个字节的
5、数据将在下个字节的数据将在下个 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(DS
6、1302_IO)dat|=0 x80; DS1302_CLK=1; nop; DS1302_CLK=0;return dat; 写一个字节子程序写一个字节子程序这是一种方案这是一种方案在控制字节最后一位写在控制字节最后一位写完后的下降沿,第一个完后的下降沿,第一个读数据位就出现了读数据位就出现了此句看上去此句看上去,在没有先产生下降在没有先产生下降沿的情况下就读了数据,其实在沿的情况下就读了数据,其实在左边已经产生了第一个数据位左边已经产生了第一个数据位将上面的写字节和读字节放在一起研究将上面的写字节和读字节放在一起研究void sendbyte(uchar a) uchar i; for(i
7、=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; 写一个字节子程序写一个字节子程序这是另一种方案这是另一种方案这里是先产生数据,再产生上升这里是先产生数据,再产生上升沿的方式送数据,最后没有产生沿的方式送数据,
8、最后没有产生下降沿。下降沿。这里要先产生下降沿,再读数据这里要先产生下降沿,再读数据/*函数功能函数功能:写写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 个时钟周期的控个时钟周期的控制字节的输入,一个字制字节的输
9、入,一个字节的输入将在下节的输入将在下 8 个时个时钟周期的上升沿完成,钟周期的上升沿完成,数据传输从字节最低位数据传输从字节最低位开始。开始。这这3句的目的是将句的目的是将CLK置置0,但是不知道但是不知道会不会产生下降沿而送错数据会不会产生下降沿而送错数据,所以先所以先RST=0,停止所有数据传送,高阻态,停止所有数据传送,高阻态,等等CLK=0之后,再回复之后,再回复RST=1;/*函数功能函数功能:读读DS1302地址子程序地址子程序 入口参数入口参数:add出口参数出口参数:readtimeR*/uchar read_DS1302(uchar address) uchar timer
10、;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)
11、;/年年 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(
12、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); /开写保护开写保护 启动振荡器,
13、启动涓电流充电启动振荡器,启动涓电流充电(竞赛可省略竞赛可省略)(竞赛可省略竞赛可省略)可以省略的理由:可以省略的理由:1.由于秒寄存器是内容由于秒寄存器是内容0 x000 x59,显然初始化时最高位也同时清零,表示启动振荡;,显然初始化时最高位也同时清零,表示启动振荡;2.使用的电池,不充电,可以不对电池充电。使用的电池,不充电,可以不对电池充电。/*函数功能函数功能:读读DS1302时间子程序时间子程序读到数组读到数组readtimeR中中*/void read_time(void)readtimeR0=read_DS1302(0 x8d); /年年BCD码码readtimeR1=read
14、_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码码送显示的数据处理方式送显示的数据处理方式分离分离BCD码的十位和个位码的十位和个位year_h = readtimeR04; /年十位年十位year_l = re
15、adtimeR0&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 = readt
16、imeR64; /秒十位秒十位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)显示时间显示时间显示日期显示
17、日期作判断的数据处理方式作判断的数据处理方式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个按键:个按键:查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理不良事件的培训与教育
- 临床患者身份识别及查对制度
- 主题教育深化行动-1
- 独之秀职业规划方案
- 护理老人课件下载站
- 2025年前台防疫接待礼仪考试真题
- 辽宁省部分地区2025-2026学年高一上学期期末语文试卷(含答案)
- 2026年人教部编版新教材语文三年级下册第五单元过关检测题及答案(共2套)
- 部编版语文二年级上册七单元群文阅读案例分析
- 2026六年级数学上册 分数乘法思维方法
- 魔方教学课件教学课件
- 基础模块下册《中国人民站起来了》课件及说课稿
- 森林景观规划与管理优化
- 和安风电场电气设备定检及预防性试验技术规范
- 医疗肺结节科普宣教课件
- 多因子量化投资策略及实证检验
- 变电运行作业指导书
- 2024年青岛市高三一模英语高考模拟试卷试题(含答案详解)
- 2024年苏锡常镇四市高三一模教学情况调研一 地理试卷(含官方答案)
- 先天性高胰岛素血症性低血糖诊治专家共识
- 2024年全国初中数学联赛试题及答案(修正版)
评论
0/150
提交评论