谢谢分享 |
感谢! |
是学习的好贴,真是太棒了! |
学习学习 |
刚好在学单片机,正为这个1302时钟头疼呢,这篇文章讲的好详细 |
教程确实不错,欲罢不能了,有时间就来 |
不错!!!!! |
到处都是C的教程,看来汇编已经过时啦,该学C啦 |
Mark学习 |
好好学习下。。。。![]() ![]() ![]() |
一定要用32.768K的晶振吗,用12MHZ的会差很多吗 |
shuiqinghan2012 发表于 2016-10-5 11:02 void main() { unsigned char ClkHlf; ClkHlf=Ds1302Read(0x81); if(ClkHlf & 0x80 !=0) { Ds1302Init(); } 以上是main一开始根据你的代码修改,以下是初始化函数 void Ds1302Init() { uchar n; Ds1302Write(0x8E,0X00); //½ûÖ1D′±£»¤£¬¾íêÇ1رÕD′±£»¤1|Äü for (n=0; n<7; n++)//D′èë7¸ö×Ö½úμÄê±ÖóDÅoÅ£o·ÖÃëê±èÕÔÂÖüÄê { Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]); } Ds1302Write(0x8E,0x80); //′ò¿aD′±£»¤1|Äü } |
i= DS1302SingleRead(0); //读取秒寄存器 if ((i & 0x80) != 0) //由秒寄存器最高位CH的值判断DS1302是否已停止 写的真心详细,受教了, 1.不过我用你这个方式试着改写我的程序,发现读了CH位,每次还是会初始化,我重新读了手册,发现它说要写入0, 手册内容如下:When this bit is written to logic 0, the clock will start. The initial power-on state is not defined. 是不是每次初始化之后要不CH位写成0,以后判断才能用这种方式 2.另外我试了先初始化,然后再注释掉初始化函数,重新下载到前面下过初始化程序的单片机中,之后每次掉电时间就不会重现开始了 能否帮忙解答一下…… |
太给力了,正需要这资料 |
你好,使用结构体,可以用按键调整时间的最后的这种方法,可以提供一下源码吗,谢谢啊。 |
好详细呀 |