DS1302时钟模块产品设计使用说明

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DS1302时钟模块简要说明:一、尺寸:全长26mm宽23mm高10mm二、主芯片:DS1302三、工作电压:直流5V四、特点:电路简单实用,接线简单,地面有3V电池座,使用32.768khz晶振。芯片简介:介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。适用场合:单片机学习、电子竞赛、产品开发、毕业设计。。。使用说明:【标注说明】【参考原理图】【PCB尺寸图】【测试程序】/********************************************************实现功能:DS1302测试程序产品淘宝有售使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!********************************************************//*********************************包含头文件********************************/#includereg52.h#includeintrins.h/*********************************端口定义**********************************/sbitDS1302_CLK=P1^0;sbitDS1302_IO=P1^1;sbitDS1302_RST=P1^2;/*******************************共阳LED段码表*******************************/unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharwei[4]={0XEf,0XDf,0XBf,0X7f};//位的控制端/******************************定义全局变量*********************************/unsignedcharsecond,minute,hour,week,day,month,year;//秒、分、时、星期、日、月、年unsignedchartime[]={0x06,0x03,0x14,0x03,0x12,0x30,0x00};//初始时间数组/****************************************************************************函数功能:数码管扫描延时子程序入口参数:出口参数:****************************************************************************/voiddelay1(void){intk;for(k=0;k400;k++);}/****************************************************************************函数功能:数码管显示子程序入口参数:k出口参数:****************************************************************************/voiddisplay(void){P2=0XFF;P0=tab[minute/16];P2=wei[0];delay1();P2=0XFF;P0=tab[minute%16];P2=wei[1];delay1();P2=0XFF;P0=tab[second/16];P2=wei[2];delay1();P2=0XFF;P0=tab[second%16];P2=wei[3];delay1();P2=0XFF;}/*****************************************************************************函数功能:向DS1302送一字节数据子程序入口参数:出口参数:*****************************************************************************/voidInputByte(unsignedcharbyte1){chari;for(i=8;i0;i--){DS1302_IO=(bit)(byte1&0x01);DS1302_CLK=1;_nop_();DS1302_CLK=0;byte1=1;}return;}/*****************************************************************************函数功能:读DS1302一个字节子程序入口参数:出口参数:*****************************************************************************/unsignedcharoutputbyte(void){unsignedchari;unsigneducdat=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出口参数:*****************************************************************************/voidwrite_ds1302(unsignedcharaddr,unsignedcharTDat){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出口参数:timedata*****************************************************************************/unsignedcharread_ds1302(unsignedcharaddr){unsignedchartimedata;DS1302_RST=0;_nop_();DS1302_CLK=0;_nop_();DS1302_RST=1;InputByte(addr);timedata=OutputByte();DS1302_CLK=1;_nop_();DS1302_RST=0;return(timedata);}/*****************************************************************************函数功能:初始化DS1302子程序入口参数:time[](全局变量)出口参数:*****************************************************************************/voidinitial_ds1302(){write_ds1302(0x8e,0x00);//写保护寄存器,在对时钟或RAM写前WP一定要为0write_ds1302(0x8c,time[0]);//年write_ds1302(0x88,time[1]);//月write_ds1302(0x86,time[2]);//日write_ds1302(0x8A,time[3]);//星期write_ds1302(0x84,time[4]);//时write_ds1302(0x82,time[5]);//分write_ds1302(0x80,time[6]);//秒write_ds1302(0x8e,0x80);//写保护寄存器}/*****************************************************************************函数功能:读DS1302时间子程序入口参数:出口参数:全局变量(second,minute,hour,week,day,month,year)*****************************************************************************/voidread_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);//年}/*****************************************************************************函数功能:主程序入口参数:出口参数:*****************************************************************************/voidmain(void){initial_ds1302();//初始化DS1302while(1){read_time();//读取时间display();//显示时间}}/*****************************************************************************结束*****************************************************************************/【实物展示】

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功