标题: 单片机+DS3231闹钟的问题,求指导 [打印本页]

作者: 肖叔    时间: 2021-7-15 00:12
标题: 单片机+DS3231闹钟的问题,求指导
本帖最后由 肖叔 于 2021-7-15 09:17 编辑

闹钟到了设定的时间,没工作。用的普中A2开发板,89C52单片机,P2口八个脚连着8个LED灯。
时间寄存器值到了闹钟设定值,SQW输出低电平,8个LED应该点亮的。
用1602看着时间寄存器值,到了闹钟设定值LED并没有亮。
控制寄存器值为0x07,设定的是小时和分钟匹配。
SQW脚接在P1_0上。
问题可能出在哪呢

  1. while(1){
  2.                         DS3231_getClock();
  3.                         DS3231_getAlarm();
  4.                         if(P1_0 == 0){
  5.                                 P2 = 0;
  6.                         }
  7. }
复制代码






作者: yzwzfyz    时间: 2021-7-15 10:59
每次时钟有变化时,你都要检测比较一次。你做到了吗?
作者: man1234567    时间: 2021-7-15 13:47
yzwzfyz 发表于 2021-7-15 10:59
每次时钟有变化时,你都要检测比较一次。你做到了吗?

在单片机程序里检测比较时钟变化,是不需要用到楼主说的SQW输出的;
而楼主所说的SQW输出是在芯片内部进行比较无需单片机再编程。
作者: man1234567    时间: 2021-7-15 13:48
不知道DS3231_getClock()和DS3231_getAlarm()的内容,无法猜。
作者: man1234567    时间: 2021-7-15 13:49
按规格书上写时间和闹钟后测试SQW脚的电平,如果有变化则LED连接或驱动有问题。
作者: man1234567    时间: 2021-7-15 13:51
DS3231_getClock()和DS3231_getAlarm()内容不知道是无法推测是否软件问题。
设定好时间和时钟,监测SQW输出有无变化,如果有就是LED连接或编程有问题。
作者: 肖叔    时间: 2021-7-15 14:38
man1234567 发表于 2021-7-15 13:48
不知道DS3231_getClock()和DS3231_getAlarm()的内容,无法猜。

这个就是获取设置的时钟和闹钟,然后用1602显示。
作者: xjx51    时间: 2021-7-15 14:51
楼主你看一下我的程序[电子手表制作]第3期V1.2版(DS3231闹钟程序) [url]http://www.51hei.com/bbs/dpj-210070-1.html (出处: http://www.51hei.com/bbs/)[/url]




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1