




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DS1302 RAM数据区存数据DS1302RAM数据区存数据,做了2天,才发现数据读写时钟不对,现在将写好的文件与大家分享,此程序已经调试过,能正常工作!DS1302头文件#ifdef DS1302_GLOBAL#define _DS1302_EXTERN #else#define _DS1302_EXTERN extern#endif#define SECR 0x81#define SECW 0x80#defineMINR 0x83#define MINW 0x82#define HRR 0x85#define HRW 0x84#define DATER 0x87#define DATEW 0x86#define MONTHR 0x89#define MONTHW 0x88#define DAYR 0x8B#define DAYW 0x8A#define YEARR 0x8D#define YEARW 0x8C#define CONTROL 0x8E#define CHANGER 0x90 #define START_DATA0xa5#define READ_START_ADR0xC1/RAM 0#define WRITE_START_ADR0xC0#define READ_RAM_START_ADR0xC3/RAM 1 -RAM 30 #define WRITE_RAM_START_ADR0xC2#define SECOND0/存秒 #define MINUTE1/存分 #define HOUR 2/存时 #define DAY3/存日 #define MONTH 4/存月 #define WEEK 5/存周 #define YEAR 6/存年 _DS1302_EXTERN unsigned char RTCTime7;/零时时间缓冲区#define SecondRTCTimeSECOND/存秒#define Minute RTCTimeMINUTE/存分#define Hour RTCTimeHOUR /存时#define Day RTCTimeDAY /存日#define Month RTCTimeMONTH /存月#define Week RTCTimeWEEK /存星期#define Year RTCTimeYEAR /存年/DAT管脚定义 #define DS1302_DAT_PatOut()P01IO = P01IOPushpullOutput/输出模式#define DS1302_DAT_PatIn()P01IO = P01IOInputMode/输入模式 #define DS1302_DATP01#define DS1302_DAT_H() DS1302_DAT = 1#define DS1302_DAT_L() DS1302_DAT = 0 /CLK管脚定义 #define DS1302_CLKP00#define DS1302_CLK_H() DS1302_CLK = 1#define DS1302_CLK_L() DS1302_CLK = 0_DS1302_EXTERN void write_byte(unsigned char da);_DS1302_EXTERN unsigned char read_byte(void);_DS1302_EXTERN void Writer1302(unsigned char ADD,unsigned char DATA);_DS1302_EXTERN unsigned char Read1302 ( unsigned char ADD );_DS1302_EXTERN void readRTC_Time(void);_DS1302_EXTERN void WriteRTC_Time(void);_DS1302_EXTERN void init_RTC(void);_DS1302_EXTERN void DS1302_Ram_read(void);_DS1302_EXTERN void Write_ram_fun(void);_DS1302_EXTERN unsigned char Hex_change_D(unsigned char i,unsigned char valule);_DS1302_EXTERN unsigned char Hour_Time;_DS1302_EXTERN unsigned char Minute_Time;/*库函数的申明与引用*/#define DS1302_GLOBAL/读写操作位#define CMD_READ0x01#define CMD_WRITE0x00/时钟 命令#define CMD_SECOND0x80/秒#define CMD_MINUTE0x82/分#define CMD_HOUR0x84/时#define CMD_DAY0x86/日#define CMD_MONTH0x88/月#define CMD_WEEK0x8A/星期 DATE#define CMD_YEAR0x8C/年#define CMD_CONTROL0x8E/控制(写保护)#define CMD_TRICKLE_CHARGE0x90/涓流充电#define CMD_CLOCK_BURST0xBE/连续读取/时钟配置常量#define CFG_CLOCK_HALT0x80/停止时钟控制位 SECONDbit7#define CFG_12_240x80/12/24小时值选择位 HOURbit7 #define CFG_AM_PM0x20/AP/PM位 HOURbit5 #define CFG_PROTECT0x80/写保护控制位 CONTROLbit7 不能写入#define CFG_UNPROTECT0x00/写保护控制位 CONTROLbit7 允许写入/涓流充电控制常量#define CFG_TC_D1R20xA5/high 1 Diode +2K Resistors #define CFG_TC_D2R80xAB/low 2 Diodes+8K Resistors #define CFG_TC_DISABLED0x00/Disabled(TCS1010 or DS=00 or RS=00)/RAM 命令#define CMD_RAM_BASE0xC0/RAM0RAM300;i-) DS1302_DAT=(da&0x01); DS1302_CLK=0; DS1302_CLK=1; da = 1; /*DS1302:读取操作(下降沿)*/unsigned char read_byte(void)unsigned char i,DATA;DS1302_DAT = 1;DS1302_DAT_PatIn();for(i=0;i= 1;DS1302_CLK = 1;DS1302_CLK = 0;if(DS1302_DAT)DATA|=0X80;elseDATA&=0X7f;DS1302_DAT_PatOut();return(DATA);/*DS1302:写入数据(先送地址,再写数据)*/ void Writer1302(unsigned char ADD,unsigned char DATA)DS1302_DAT_PatOut();DiDS1302();/CE引脚为低,数据传送中止DS1302_CLK=0;/清零时钟总线EnDS1302(); /CE引脚为高,逻辑控制有效 write_byte(ADD); /写入地址write_byte(DATA);DiDS1302();/CE引脚为低,数据传送中止DS1302_CLK=1;/*DS1302:读取数据(先送地址,再读数据)*/unsigned char Read1302 ( unsigned char ADD )unsigned char temp;DS1302_DAT_PatOut();DiDS1302();/CE引脚为低,数据传送中止DS1302_CLK=0;/清零时钟总线EnDS1302(); /CE引脚为高,逻辑控制有效 write_byte(ADD); /写入地址temp=read_byte();DiDS1302();DS1302_CLK=1; /停止工作return(temp);void readRTC_Time(void)Second = Read1302(SECR);Minute = Read1302(MINR);Hour = Read1302(HRR);Day = Read1302(DATER);Month = Read1302(MONTHR);Week = Read1302(DAYR);Year = Read1302(YEARR);/实际使用的变量Minute_Time = Hex_change_D(0,RTCTimeMINUTE);Hour_Time = Hex_change_D(0,RTCTimeHOUR);void WriteRTC_Time(void)Writer1302(CONTROL,0X00);/8E/允许写Writer1302(SECW,Second);Writer1302(MINW,Minute);Writer1302(HRW,Hour);Writer1302(DATEW,Day);Writer1302(MONTHW,Month);Writer1302(DAYW,Week);Writer1302(YEARW,Year);Writer1302(CONTROL,0X80);/8E/禁止写void init_RTC(void)/Writer1302(CONTROL,0x00);/8E/允许写/Writer1302(CHANGER,0xA5);/90/TS DS TCS=1010 使能涓流充电 DS=01 选择一个二极管 DS=10 选择两个二极管/Writer1302(CONTROL,0x80);/8E/禁止写readRTC_Time();if( Hour 0x24 | Second 0x59 )/Year = 0x12;Month = 0x05;Day = 0x01;Hour = 0x0c;/24小时制Hour = 0x8C;/12:00 AMMinute = 0x00;Second= 0x00;Week = 0x00;WriteRTC_Time();Writer1302(CONTROL,0X00);/8E/允许写Writer1302(SECW,Second&0x7f);/启动Writer1302(SECW,0x00);/启动 Writer1302(CONTROL,0X80);/8E/禁止写/*DS1302里面存数据*/void DS1302_Ram_read(void)unsigned char temp= 0,i = 0;temp = Read1302(READ_START_ADR);/c1if( temp != START_DATA )Writer1302(CONTROL,0X00);/8E/允许写Writer1302(WRITE_START_ADR,START_DATA);/写标志位Writer1302(CONTROL,0X80);/8E/禁止写Set_start_hour = 12;Set_start_minute = 00;Set_over_hour = 12;Set_over_minute = 00;Set_Temperature = 68;/首次上电并开机设定温度为 68F (20)On_off_en_flag = 0;/定时关机功能取消Mode_ID = 0xa0;Write_ram_fun();/这里开始读数据temp = 0xc3;for( i = 0;i7;i+)Setting_timei = Read1302(temp);/此处的ADDRESS指的是你需要进行连续读取的地址temp +=2;void Write_ram_fun(void)unsigned char Ram_adr,i;Ram_adr = 0xc2;/WRITE_RAM_START_ADR;Writer1302(CONTROL,0X00);/8E/允许写for( i = 0; i7;i+)Writer1302(Ram_adr,Setting_timei);/写数据Ram_adr +=2;Writer1302(CONTROL,0X80);/8E/禁止写/*16进制转十进制-0十进制转16进制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲流的危害课件
- 《棉花姑娘》教学课件
- 佳音英语教学课件
- 一故事一音标教学课件
- 用水安全基础知识培训课件
- 生物安全基础知识培训课件
- 2025年注册电气工程师考试电路分析模拟试卷 基础知识专项训练
- Ⅳ期压疮足跟部护理查房记录
- 2025至2030药房管理系统行业项目调研及市场前景预测评估报告
- 2025至2030中国甘蔗收获机行业产业运行态势及投资规划深度研究报告
- 2023-2024学年北师大版小学数学一升二开学摸底考试测试卷及答案(共三套)
- 七下科学第四章知识点
- 全国灌溉水有效利用系数测算分析技术指导细则(2024修订版)知识培训
- 起搏器围手术期的护理
- 2025年中国建设银行信用贷款协议
- 不锈钢栏杆、扶手合同范本
- 《常见精神障碍诊断与治疗》课件
- 污水处理厂运营与管理经验分享
- 2025年咖啡粉末香精项目可行性研究报告
- 某露天矿山剥离工程施工组织设计方案
- 2024年江苏省中职职教高考文化统考农业(养殖)专业综合理论试卷及参考答案
评论
0/150
提交评论