万年历程序芯片资料.docx
- 文档编号:25620012
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:14
- 大小:387.19KB
万年历程序芯片资料.docx
《万年历程序芯片资料.docx》由会员分享,可在线阅读,更多相关《万年历程序芯片资料.docx(14页珍藏版)》请在冰豆网上搜索。
万年历程序芯片资料
DS1302:
1:
DS1302简介:
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RARAMM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302的外部引脚分配如图1所示及内部结构如图2所示。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
图1DS1302的外部引脚分配图2DS1302的内部结构
各引脚的功能为:
Vcc1:
主电源;Vcc2:
备份电源。
当Vcc2>Vcc1+0.2V时,
由Vcc2向DS1302供电,当Vcc2 SCLK: 串行时钟,输入,控制数据的输入与输出; I/O: 三线接口时的双向数据线; CE: 输入信号,在读、写数据期间,必须为高。 该引脚有两个功能: 第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。 2: 读写时序说明 DS1302是SPI总线驱动方式。 它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。 要想与DS1302通信,首先要先了解DS1302的控制字。 DS1302的控制字如图3: 图3控制字(即地址及命令字节) 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。 位6: 如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4~A0): 指示操作单元的地址;位0(最低有效位): 如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。 在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。 同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的 下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。 数据读写时序如图4: 图4数据读写时序 3电路原理图: 电路原理图如图8,DS1302与单片机的连接也仅需要3条线: CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。 图5: 图5 4驱动程序: //寄存器宏定义 #defineWRITE_SECOND0x80 #defineWRITE_MINUTE0x82 #defineWRITE_HOUR0x84 #defineREAD_SECOND0x81 #defineREAD_MINUTE0x83 #defineREAD_HOUR0x85 #defineWRITE_PROTECT0x8E //位寻址寄存器定义 sbitACC_7=ACC^7; //管脚定义 sbitSCLK=P3^5;//DS1302时钟信号 7脚 sbitDIO=P3^6;//DS1302数据信号 6脚 sbitCE=P3^7;//DS1302片选 5脚 //地址、数据发送子程序 voidWrite1302(unsignedcharaddr,dat) { unsignedchari,temp;CE=0;//CE引脚为低,数据传送中止 SCLK=0;//清零时钟总线 CE=1;//CE引脚为高,逻辑控制有效 //发送地址 for(i=8;i>0;i--)//循环8次移位 { SCLK=0; temp=addr; DIO=(bit)(temp&0x01);//每次传输低字节 addr>>=1;//右移一位 SCLK=1; } //发送数据 for(i=8;i>0;i--) { SCLK=0; temp=dat; DIO=(bit)(temp&0x01); dat>>=1; SCLK=1; } CE=0; } //数据读取子程序 unsignedcharRead1302(unsignedcharaddr) { unsignedchari,temp,dat1,dat2; CE=0; SCLK=0; CE=1; //发送地址 for(i=8;i>0;i--)//循环8次移位 { SCLK=0; temp=addr; DIO=(bit)(temp&0x01);//每次传输低字 addr>>=1;//右移一位 SCLK=1; } //读取数据 for(i=8;i>0;i--) { ACC_7=DIO; SCLK=1; ACC>>=1; SCLK=0; } CE=0; dat1=ACC; dat2=dat1/16;//数据进制转换 dat1=dat1%16;//十六进制转十进制 dat1=dat1+dat2*10; return(dat1); } //初始化DS1302voidInitial(void) { Write1302(WRITE_PROTECT,0X00);//禁止写保护 Write1302(WRITE_SECOND,0x56);//秒位初始化 Write1302(WRITE_MINUTE,0x34);//分钟初始化 Write1302(WRITE_HOUR,0x12);//小时初始化 Write1302(WRITE_PROTECT,0x80);//允许写保护 } DS18B20单线数字温度传感器: (其它信息见单片机课本P268~P279) 图1引脚图 图2DS1820的PR35封装 功能如下: 1: GND: 地信号; 2: DQ: 数据输入出引脚;开漏单总线接口引脚。 当被用在寄生电源下,此引脚可以向器件提供电源;漏极开路,常 态下高电平.通常要求外接一个约5kΩ的上拉电阻. 3: VDD: 可选择的VDD引脚;电压范围: 3~5.5V;当工作于寄生电源时,此引脚必须接地。 4: NC: 空脚。 图3初始化过程复位和存在脉冲 图4读时序图 图5写时序图 图6控制器读“1”的详细时序图 图7推荐控制器读“1”的时序图 图8单线写“0”时间隙 图9单线读“0”时间隙 图10单线写“1”时间隙 图11单线复位脉冲及单线存在检测 74HC164中文资料参数: SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A和B)可完全控制输入数据。 一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。 虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。 时钟控制发生在时钟输入由低电平到高电平的跃变上。 为了减小传输线效应,所有输入端均采用二极管钳位。 62B838电子-技术资料-电子元件-电路图-技术应用网站-基本知识-原理-维修-作用-参数-电子元器件符号 功能表: H---高电平(稳态): L---低电平(稳态): X---高或低: -----上升沿: Q0,Q1⋯Q7----在CLK时钟上升沿到来之后,寄存器输出的稳态值: Q0n,Q1n⋯Q7n----在CLK时钟上升沿到来之前,寄存器输出的稳态值。 图1逻辑图 图2引脚图 图3典型清除、移位和清除时序图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 程序 芯片 资料