找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2085|回复: 7
打印 上一主题 下一主题
收起左侧

单片机+DS3231闹钟的问题,求指导

[复制链接]
跳转到指定楼层
楼主
ID:940176 发表于 2021-7-15 00:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 肖叔 于 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. }
复制代码





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2021-7-15 10:59 | 只看该作者
每次时钟有变化时,你都要检测比较一次。你做到了吗?
回复

使用道具 举报

板凳
ID:584814 发表于 2021-7-15 13:47 | 只看该作者
yzwzfyz 发表于 2021-7-15 10:59
每次时钟有变化时,你都要检测比较一次。你做到了吗?

在单片机程序里检测比较时钟变化,是不需要用到楼主说的SQW输出的;
而楼主所说的SQW输出是在芯片内部进行比较无需单片机再编程。
回复

使用道具 举报

地板
ID:584814 发表于 2021-7-15 13:48 | 只看该作者
不知道DS3231_getClock()和DS3231_getAlarm()的内容,无法猜。
回复

使用道具 举报

5#
ID:584814 发表于 2021-7-15 13:49 | 只看该作者
按规格书上写时间和闹钟后测试SQW脚的电平,如果有变化则LED连接或驱动有问题。
回复

使用道具 举报

6#
ID:584814 发表于 2021-7-15 13:51 | 只看该作者
DS3231_getClock()和DS3231_getAlarm()内容不知道是无法推测是否软件问题。
设定好时间和时钟,监测SQW输出有无变化,如果有就是LED连接或编程有问题。
回复

使用道具 举报

7#
ID:940176 发表于 2021-7-15 14:38 | 只看该作者
man1234567 发表于 2021-7-15 13:48
不知道DS3231_getClock()和DS3231_getAlarm()的内容,无法猜。

这个就是获取设置的时钟和闹钟,然后用1602显示。
回复

使用道具 举报

8#
ID:884042 发表于 2021-7-15 14:51 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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