一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: sdf15937
收起左侧

[其他综合] 自己仿了一个单片机时钟

  [复制链接]
发表于 2011-12-5 10:38 | 显示全部楼层
感谢楼主的程序
发表于 2012-2-4 15:51 | 显示全部楼层
感谢楼主的程序 感谢分享
发表于 2012-2-4 15:51 | 显示全部楼层
感谢楼主的程序 感谢分享
发表于 2012-2-4 16:27 | 显示全部楼层
非常不错,赞一个
发表于 2012-2-26 09:15 | 显示全部楼层
我也按这个做 了一个怎么也点不亮.那电阻.我也换了好多个.还不行.
发表于 2012-3-1 13:03 | 显示全部楼层
很不错,有时间就仿一个
发表于 2012-3-14 13:04 | 显示全部楼层
按此电路做了,出现乱码,时钟电路未工作,时钟2脚电压为0,3脚0。47V5,6,7在4V以上,加电容,加上拉,换DS1302,晶振,该想到的办法都想到,解决不了,看来还得放弃
发表于 2012-3-17 18:57 | 显示全部楼层
按此电路做了,出现乱码,时钟电路未工作,时钟2脚电压为0,3脚0。47V5,6,7在4V以上,加电容,加上拉,换 ...
zydl123 发表于 2012-3-14 13:04 https://www.yleee.com.cn/images/common/back.gif



    你的单片机是什么,用多少晶振,如果是stc的非标准c51的话不行的
发表于 2012-3-18 03:12 | 显示全部楼层
回复 19# 狗狗百里游

用的是stc89C52,难道与单片有关?仿了几个电路都失败了,也与这芯片有关?
发表于 2012-3-18 23:04 | 显示全部楼层
代码我没有看,如果仿制的出问题,我可以说两句代码需要注意的地方,如果读取ds1302的代码,里面有判断循环,如果读不出数据就死循环的话,要自己修改方案。

如果是在软件仿真,ds1302时间都是会走的。
现实硬件,ds1302没有备份电池的时候,如果刚上电,读出的时间不是绝对的,而且不会走动的。要发送一个合理的数据,ds1302才会走动。


//刷新ds1302,并获得时间,如果晶振不起振,或者时间错误,就重新设置时间.
void RRR_ds1302(void)
{
   v_Get1302(ds1302_timercur);

   //如果晶振不起振
   //DS1302的手册上说明,要使得晶振起振,秒寄存器的最高位要置0;

   //    (     (val &(1<<(bitn)))   |0)
   //if(timercur[ 0]>0x59)  //如果秒寄存器的最高位为一,晶振将不起振
   if((ds1302_timercur[ 0] & 0x80) | 0) //如果秒寄存器的最高位为一,晶振将不起振
      {
         //   timercur[ 0] =0; //秒寄存器的最高位要置0
         ds1302_timercur[ 0] &= ~0x80; //秒寄存器的最高位要置0
         v_Set1302(ds1302_timercur);
         //  v_Set1302( time_set );
      }

   if(ds1302_timercur[ 5] == 0)   //如果星期寄存器等于0,就判断为时间错误,重新设置时间
      {
         v_Set1302(ds1302_time_set);
      }
}


我的思路是,每次读取ds1302返回的时间,会判断数据是否在合理范围,不然就重新设置时间。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-20 03:01 , Processed in 0.061513 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表