《DS1302时钟模块产品设计使用说明.doc》由会员分享,可在线阅读,更多相关《DS1302时钟模块产品设计使用说明.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流DS1302时钟模块产品设计使用说明【精品文档】第 8 页DS1302时钟模块简要说明:一、尺寸:全长26mm宽23mm高10mm二、主芯片:DS1302三、工作电压:直流5V四、特点:电路简单实用,接线简单,地面有3V电池座,使用32.768khz晶振。芯片简介:介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。适用场合:单片机学习、电子竞赛、产品开发、毕业设计。使用说明:【标注说明】【参考原理图】【PC
2、B尺寸图】【测试程序】实现功能:DS1302测试程序 产品淘宝有售使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! /*包含头文件*/#include reg52.h#include /*端口定义*/sbit DS1302_CLK = P10;sbit DS1302_IO = P11;sbit DS1302_RST = P12;/*共阳LED段码表*/unsigned char code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned ch
3、ar wei4=0XEf,0XDf,0XBf,0X7f; /位的控制端/*定义全局变量*/unsigned char second,minute,hour,week,day,month,year;/秒、分、时、星期、日、月、年unsigned char time=0x06,0x03,0x14,0x03,0x12,0x30,0x00;/初始时间数组函数功能:数码管扫描延时子程序入口参数:出口参数:void delay1(void)int k;for(k=0;k0;i-)DS1302_IO=(bit)(byte1&0x01);DS1302_CLK=1;_nop_();DS1302_CLK=0;by
4、te1=1;return;函数功能:读DS1302一个字节子程序入口参数:出口参数:unsigned char outputbyte(void) unsigned char i;unsigned ucdat=0;for(i=8;i0;i-)DS1302_IO=1;ucdat=1;if(DS1302_IO)ucdat|=0x80;DS1302_CLK=1;_nop_();DS1302_CLK=0; return(ucdat);函数功能:向DS1302某地址写一字节数据子程序入口参数:addr,TDat出口参数:void write_ds1302(unsigned char addr,unsign
5、ed char TDat)DS1302_RST=0;_nop_();DS1302_CLK=0;_nop_();DS1302_RST=1; InputByte(addr);_nop_();InputByte(TDat);DS1302_CLK=1;_nop_();DS1302_RST=0;函数功能:读DS1302地址子程序入口参数:add出口参数:timedataunsigned char read_ds1302(unsigned char addr)unsigned char timedata;DS1302_RST=0;_nop_();DS1302_CLK=0;_nop_();DS1302_RS
6、T=1;InputByte(addr);timedata=OutputByte();DS1302_CLK=1;_nop_();DS1302_RST=0;return(timedata);函数功能:初始化DS1302子程序入口参数:time(全局变量)出口参数:void initial_ds1302()write_ds1302(0x8e,0x00);/写保护寄存器,在对时钟或RAM写前WP一定要为0write_ds1302(0x8c,time0);/年write_ds1302(0x88,time1);/月write_ds1302(0x86,time2);/日write_ds1302(0x8A,t
7、ime3);/星期write_ds1302(0x84,time4);/时write_ds1302(0x82,time5);/分write_ds1302(0x80,time6);/秒write_ds1302(0x8e,0x80);/写保护寄存器函数功能:读DS1302时间子程序入口参数:出口参数:全局变量(second,minute,hour,week,day,month,year)void read_time()second=read_ds1302(0x81);/秒寄存器minute=read_ds1302(0x83);/分hour=read_ds1302(0x85);/时week=read_ds1302(0x8B);/星期day=read_ds1302(0x87);/日month=read_ds1302(0x89);/月year=read_ds1302(0x8d);/年函数功能:主程序入口参数:出口参数:void main(void)initial_ds1302();/初始化DS1302while(1)read_time();/读取时间display();/显示时间 结束【实物展示】