云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的万年历设计

基于单片机的万年历设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/18 8:12:48

else //进入闹钟设置。 {

s=dsread(readalarmsecond)/16*10+dsread(readalarmsecond); /*

读取DS1302 中保存的闹钟时分秒原始值,转化为十进制数存进 s,m,h 保存,用以后面判断闹钟时间是否到达。*/

m=dsread(readalarmminute)/16*10+dsread(readalarmminute); h=dsread(readalarmhour)/16*10+dsread(readalarmhour); second=s; //把闹钟时间的十进制数据传送给变量

second,minute,hour,用以调节其值。

}

if(kevent==0) // 检测事件提醒调节键是否按下,此条 if 语句与

}

}

minute=m; hour=h;

writecom(0x80+0x40);

writedata('R'); // 液晶显示闹钟调节标志。 writedata('i');

writetime(3,hour); // 送液晶显示闹钟时间。 writetime(6,minute); writetime(9,second);

if(kmenunum!=0)

编辑版word

{

// 在同一个层次。

delay(5); if(kevent==0) {

flagsseta=~flagsseta; while(!kevent); di();

if(flagsseta==0) //此时,退出事件提醒设置,保存各相关数值。 {

flagset=0; //清除时间设置标志,在 if(kevent==0) 这个 if 语句 writecom(0x80+9);// 中,不用 flagset=1 这条语句来设置

//flagset 标志位,因为 ,如果进行了事件提醒时间的设

//,就会执行前面 if(kmenunum==0) 语句中的 flagset=1 这条语

句。

writedata(' '); writedata(' ');

writecom(0x0c); //取消光标闪烁 dswrite(0x8e,0x00); /* 允许写操作 */

dswrite(writeeventyear,year/10*16+year); // 往 DS1302 中保

writedata(' '); // 清除液晶上的 “ Ti 事件提醒调节标志。 ”

存事件提醒的年月日值。

编辑版word

}

dswrite(writeeventmonth,month/10*16+month); dswrite(writeeventday,day/10*16+day); dswrite(0x8e,0x80); /* 禁止写操作 */

else //进入事件提醒设置。 {

yy=dsread(readeventyear)/16*10+dsread(readeventyear); /* 读取

DS1302 中保存的事件提醒年月日原始值,转化为十进制数存进 yy,mm,dd 保存,用以后面判断事件提醒时间是否到达。*/

mm=dsread(readeventmonth)/16*10+dsread(readeventmonth); dd=dsread(readeventday)/16*10+dsread(readeventday); year=yy; //把事件提醒时间的十进制数据传送给变量

hour,day,month,week用以调节其值。

month=mm; day=dd;

writecom(0x80+9);

writedata('T'); // 液晶显示事件提醒设置标志。 writedata('i'); writedata(' ');

writenyr(0,year);// 送液晶显示事件提醒时间。 writenyr(3,month);

writenyr(6,day);

编辑版word

}

}

}

}

void dswritebyte(uchar d)// 往 DS1302 写入一个字节。 {

uchar i; ACC=d; for(i=8;i>0;i--) {

dsdata=ACC0;

dsclk=1; /*为什么这里时钟先为 1 后为 0,因为 dsclk 初始化为 0,而,

每次循环

最后 ,都将其置 0,这样就形成一个从 0 开始的上升沿 ,恰好满足 ds1302

写数据在上升沿, 但是 , }

uchar dsreadbyte() //从 DS1302 读出一个字节。 {

时钟必须从 0 开始的要求 */ dsclk=0; ACC=ACC>>1; }

编辑版word

搜索更多关于: 基于单片机的万年历设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

else //进入闹钟设置。 { s=dsread(readalarmsecond)/16*10+dsread(readalarmsecond); /* 读取DS1302 中保存的闹钟时分秒原始值,转化为十进制数存进 s,m,h 保存,用以后面判断闹钟时间是否到达。*/ m=dsread(readalarmminute)/16*10+dsread(readalarmminute); h=dsread(readalarmhour)/16*10+dsread(readalarmhour); second=s; //把闹钟时间的十进制数据传送给变量 second,minute,hour,用以调节其值。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com