完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
DS1302怎么设置多组闹
谁做过用DS1302做闹钟,可以设置多个闹铃。 我这样做行不行,请指导一下: if(s5==0&&s1num==0) { s5num++; flag2=1; while(!s5);baojing(); if(s5num==1) { write_com(0x80+13); write_com(0x0f);//光标 } if(s5num==2) { write_1302(0x8e,0x00);//禁止写保护,第一组闹铃分钟 write_1302(0xc2,lfen);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0x80+10); } if(s5num==3) { write_1302(0x8e,0x00);//禁止写保护 write_1302(0xc0,lshi);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+2); } if(s5num==4) { write_1302(0x8e,0x00);//禁止写保护,第二组闹铃 write_1302(0xc4,eshi);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+5); } if(s5num==5) { write_1302(0x8e,0x00);//禁止写保护 write_1302(0xc6,efen);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+7); } if(s5num==6) { write_1302(0x8e,0x00);//禁止写保护 write_1302(0xc8,sshi);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+10); } if(s5num==7) { write_1302(0x8e,0x00);//禁止写保护 write_1302(0xca,sfen);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+12); } if(s5num==8) { write_1302(0x8e,0x00);//禁止写保护 write_1302(0xcc,sishi);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0xc0+15); } if(s5num==9) { s5num=0; flag2=0; write_1302(0x8e,0x00);//禁止写保护 write_1302(0xce,sifen);//闹钟初始化 write_1302(0x8e,0x80);//开写保护 write_com(0x0c);//不显示光标 } } } /***********************以下是加减*************************/ if(s5num!=0&&s1num==0) { if(s2==0) { delay(5); if(s2==0) { while(!s2);baojing(); if(s5num==1) { uchar *fff1=&lfen; fenjia(fff1,12,0x80+13); } if(s5num==2) { uchar *sss1=&lshi; shijia(sss1,9,0x80+10); } if(s5num==4) { uchar *sss2=&eshi; shijia(sss2,1,0xc0+2); } if(s5num==4) { uchar *fff2=&efen; fenjia(fff2,4,0xc0+5); } if(s5num==5) { uchar *sss1=&sshi; shijia(sss1,9,0xc0+10); } if(s5num==6) { uchar *fff1=&sfen; fenjia(fff1,12,0xc0+13); } if(s5num==7) { uchar *sss1=&sishi; shijia(sss1,9,0xc0+10); } if(s5num==8) { uchar *fff1=&sifen; fenjia(fff1,12,0xc0+13); } } } |
|
相关推荐
8个回答
|
|
这个没做过,但可以研究一下
|
|
|
|
楼主可参考一下:
51单片机驱动T6963(240128)的时钟程序 带五路闹钟 DS1302 http://www.pudn.com/downloads387/sourcecode/embedded/detail1661447.html |
|
|
|
看过楼主的其他帖子。不知道楼主要实现什么样的功能?看楼主的程序好像是想吧闹钟保持在DS1302RAM里面。我刚才上网查了一下。发觉DS1302的功能还是比较单一的。DS1302的RAM只能是简单的临时性存放数据的RAM。他不像PCF8563有可编程时钟输出、定时器、报警器等功能。也没有分钟报警、小时报警、日报警寄存器。
|
|
|
|
报警编程的大概思路是正确的,只是程序要调整1下。1:初始化ds1302。2: 把报警数据从ds1302的RAM里读到内存里。3: 把内存的数据和当前时间比较,确定是否报警。报警调整--------- 将按键调好的报警值写入ds1302的RAM里。很简单的
评分
|
||
|
||
最好是pcf8563,他的功能比ds1302要多,而且8563有可编程io,单片机的程序好实现些。
|
|
|
|
可以设置多组闹钟的,就是随时读取ds1302的数值,然后和要进行设置的闹钟比较,若满足条件进行报警,不需要多次写ds1302.
|
|
|
|
|
|
|
|
LZ啊,您的代码,缺少必要的注释,理解起来很困难的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
364 浏览 0 评论
356 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
526 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
574 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
542 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10691 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 08:17 , Processed in 0.569548 second(s), Total 58, Slave 52 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号