首页资源分类嵌入式处理器51内核 > DS1302程序

DS1302程序

已有 445023个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签:DS1302

分    享:

文档简介

DS1302时钟程序,完美的程序,很好的哦

文档预览

#include //位寻址寄存器定义 sbit ACC_0 = ACC^0; sbit ACC_7 = ACC^7; //管脚定义 sbit DS1302_CLK = P1^1; //实时时钟时钟线引脚 sbit DS1302_IO = P1^2; //实时时钟数据线引脚 sbit DS1302_RST = P1^3; //实时时钟复位线引脚 #if 1 void DS1302WriteByte(uchar dat) //实时时钟写入一字节(内部函数) { uchar i; ACC = dat; for(i=8; i>0; i--) { DS1302_IO = ACC_0; //相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC >>= 1; } } uchar DS1302ReadByte() //实时时钟读取一字节(内部函数) { uchar i,dat1=0,dat2=0; for(i=8; i>0; i--) { ACC >>= 1; //相当于汇编中的 RRC ACC_7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; } dat1 = ACC; dat2 = dat1>>4; //数据进制转换 dat1 = dat1%16; //十六进制转十进制 dat1 = dat1+dat2*10; return(dat1); } void Write1302(uchar cmd, uchar dat) //cmd: DS1302地址命令, dat: 要写的数据 { DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302WriteByte(cmd); // 地址,命令 DS1302WriteByte(dat); // 写1Byte数据 DS1302_RST = 0; DS1302_CLK = 1; } uchar Read1302(uchar cmd) //读取DS1302某地址的数据 { uchar dat=0; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302WriteByte(cmd); //地址,命令 dat = DS1302ReadByte(); //读1Byte数据 DS1302_RST = 0; DS1302_CLK = 1; return(dat); } #endif

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。