- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万历(可调,有截图)
// 名称:用 DS1302 与 1602LCD 设计的可调式电子日历与时钟
// 说明:本例会自动调节合法日期时间,对于星期的调节会在
// 调整年月日时自动完成,闰年问题也会自动判断。
//------------------------------------------------------
#include reg51.h
#include string.h
#define uchar unsigned char
#define uint unsigned int
sbit SDA=P1^0; //DS1302 数据线
sbit CLK=P1^1; //DSB1302 时钟线
sbit RST=P1^2; //DS1302 复位线
sbit RS=P2^0; //LCD 寄存器选择
sbit RW=P2^1; //LCD 读/写控制
sbit EN=P2^2; //LCD 启用
sbit K1=P3^4; //选择
sbit K2=P3^5; //加
sbit K3=P3^6; //减
sbit K4=P3^7; //确定
uchar tCount=0;
uchar dat; //定义参数
//一年中每个月的天数,二月的天数由年份决定
uchar MonthsDays[]={31,0,31,30,31,30,31,31,30,31,30,31};
//周日,周一到周六{0,1-6} [读取 DS1302 时分别是 1-7]
uchar *WEEK[]={SUN,MON,TUS,WEN,THU,FRI,SAT};
//LCD 显示缓冲
uchar LCD_DSY_BUFFER1[]={DATE 00-00-00 };
uchar LCD_DSY_BUFFER2[]={TIME 00:00:00 };
uchar DateTime[7]; //所读取的日期时间
char Adjust_Index=-1;//当前调节的时间对象:秒,分,时,日,月,年(0,1,2,3,4,6)
uchar Change_Flag[]=-MHDM-Y;
//(分,时,日,月,年) (不调节秒周)
//延时,向 DS1302 写、读一字节以及从 DS1302 指定位置度、写数据的程序
//延时---------------------------------------------------
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i120;i++);
}
//向 DS1302 写入一个字节
void Write_A_Byte_TO_DS1302(uchar x)
{
uchar i;
for(i=0;i8;i++)
{
SDA=x1;CLK=1; CLK=0; x=1;
}
}
//从 DA1302 读取一字节---------------------------------------
uchar Get_A_Byte_FROM_DS1302()
{
uchar i,b,t;
for(i=0;i8;i++)
{
b=1; t=SDA;b|=t7;CLK=1;CLK=0;
}
//BCD 码转换
return b/16*10+b%16;
}
//从 DS1302 指定的位置读数据--------------------------------------
uchar Read_Data(uchar addr)
{
uchar dat;
RST=0;CLK=0;RST=1;
Write_A_Byte_TO_DS1302(addr);
dat=Get_A_Byte_FROM_DS1302();
CLK=1;RST=0;
return dat;
}
// 向 DS1302 某地址写入数据-------------------------------------------
void Write_DS1302(uchar addr,uchar dat)
{
CLK=0;RST=1;
Write_A_Byte_TO_DS1302(addr);
Write_A_Byte_TO_DS1302(dat);
CLK=0;RST=0;
}
//------------
您可能关注的文档
最近下载
- 数字化碳排放解决方案.docx VIP
- 六年级上册分数除法解决问题例7数学工程问题1省公开课获奖课件说课比赛一等奖课件.pptx
- 初中九年级历史教案-阿拉伯帝国-“十校联赛”一等奖.docx VIP
- 古建筑工程施工检验批质量验收记录.docx VIP
- 碳管理,碳核查,碳足迹,碳中和评价流程.pptx VIP
- 部编版语文八年级上册 白杨礼赞 课件PPT(附教案、说课稿).ppt
- 建设工程施工现场供用电安全规范.doc VIP
- 西门子SINUMERIK808D编程和操作手册车削第一部分:操作.pdf VIP
- 思考,让我们不断前行 前行广释第四十八课思考答案.doc VIP
- 供热管网施工应急处理措施.doc
文档评论(0)