DS1302操作模块.doc_第1页
DS1302操作模块.doc_第2页
DS1302操作模块.doc_第3页
DS1302操作模块.doc_第4页
DS1302操作模块.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C/*DS1302时钟芯片驱动函数DS1302是产品中最常用的时钟芯片,此文件中的代码可以嵌入项目中使用。*/#include #include /*复位脚*/#define RST_CLRPORTD &= (1 PD7)/*电平置低*/#define RST_SETPORTD |= (1 PD7)/*电平置高*/#define RST_INDDRD &= (1 PD7)/*方向输入*/#define RST_OUTDDRD |= (1 PD7)/*方向输出*/*双向数据*/#define IO_CLRPORTD &= (1 PD6)/*电平置低*/#define IO_SETPORTD |= (1 PD6)/*电平置高*/#define IO_RPIND & (1 PD6)/*电平读取*/#define IO_INDDRD &= (1 PD6)/*方向输入*/#define IO_OUTDDRD |= (1 PD6)/*方向输出*/*时钟信号*/#define SCK_CLRPORTD &= (1 PD5)/*时钟信号*/#define SCK_SETPORTD |= (1 PD5)/*电平置高*/#define SCK_INDDRD &= (1 PD5)/*方向输入*/#define SCK_OUTDDRD |= (1 PD5)/*方向输出*/#define ds1302_sec_add0x80/秒数据地址#define ds1302_min_add0x82/分数据地址#define ds1302_hr_add0x84/时数据地址#define ds1302_date_add0x86/日数据地址#define ds1302_month_add0x88/月数据地址#define ds1302_day_add0x8a/星期数据地址#define ds1302_year_add0x8c/年数据地址#define ds1302_control_add0x8e/控制数据地址#define ds1302_charger_add0x90 #define ds1302_clkburst_add0xbeUnsignedchartime_buf8= 0x20,0x12,0x03,0x21,0x10,0x20,0x55,0x03;/*向DS1302写入一字节数据*/void ds1302_write_byte(unsigned char addr, unsigned char d) unsigned char i; RST_SET;/*启动DS1302总线*/*写入目标地址:addr*/IO_OUT;addr = addr & 0xFE;/*最低位置零*/for (i = 0; i 1;/*写入数据:d*/IO_OUT;for (i = 0; i 1;RST_CLR;/*停止DS1302总线*/*从DS1302读出一字节数据*/unsigned char ds1302_read_byte(unsigned char addr) unsigned char i;unsigned char temp;RST_SET;/*启动DS1302总线*/*写入目标地址:addr*/IO_OUT;addr = addr | 0x01;/*最低位置高*/for (i = 0; i 1;/*输出数据:temp*/IO_IN;for (i = 0; i 1;if (IO_R) temp |= 0x80;else temp &= 0x7F;SCK_SET;SCK_CLR;RST_CLR;/*停止DS1302总线*/return temp;/*向DS302写入时钟数据*/void ds1302_write_time(void) ds1302_write_byte(ds1302_control_add,0x00);/关闭写保护 (即可写)ds1302_write_byte(ds1302_sec_add,0x80);/暂停 ds1302_write_byte(ds1302_charger_add,0xa9);/慢充电 ds1302_write_byte(ds1302_year_add,time_buf1);/年 ds1302_write_byte(ds1302_month_add,time_buf2);/月 ds1302_write_byte(ds1302_date_add,time_buf3);/日 ds1302_write_byte(ds1302_hr_add,time_buf4);/时 ds1302_write_byte(ds1302_min_add,time_buf5);/分ds1302_write_byte(ds1302_sec_add,time_buf6);/秒ds1302_write_byte(ds1302_day_add,time_buf7);/周 ds1302_write_byte(ds1302_control_add,0x80);/打开写保护 (不可写)/*从DS302读出时钟数据*/void ds1302_read_time(void) time_buf1=ds1302_read_byte(ds1302_year_add);/年 time_buf2=ds1302_read_byte(ds1302_month_add);/月 time_buf3=ds1302_read_byte(ds1302_date_add);/日 time_buf4=ds1302_read_byte(ds1302_hr_add);/时 time_buf5=ds1302_read_byte(ds1302_min_add);/分 time_buf6=(ds1302_read_byte(ds1302_sec_add)&0x7F;/秒 time_buf7=ds1302_read_byte(ds1302_day_add);/周 /*DS302初始化函数*/void ds1302_init(void) RST_CLR;/*RST脚置低*/SCK_CLR;/*SCK脚置低*/RST_OUT;/*RST脚设置为输出*/SCK_OUT;/*SCK脚设置为输出*/H#ifndef DS1302_H#define DS1302_Hextern unsigned char time_buf8;/秒、分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论