闹钟程序的设计

基于stm32的智能闹钟设计与实现有STM32源程序+(原理图+RGB+源代码) 本系统在编译程序的研究过程中,遇到了许多困难和挑战,例如代码优化、性能调优和错误调试等问题。在面对这些困难时,自身意识到代码能力不够强,要想取得成功,必须具备耐心和毅力,同时搜寻合适的解决方法不断地思考和尝试不同的解决方案。在遇到漏洞的时候,积极翻阅书本和查阅网上相关资料排除漏洞,例如在获取小程序下发命令数据时,如何正确获取数据并且显示到OLED屏幕上。为了克服困难,采取了一系列的策略和方法。首先,不断地学习和积累知识,提升自身代码水平,还积极参与讨论和交流,与同行进行深入的探讨,从中获取灵感和启发。 阅读详情
以下程序为闹钟,部分使用了boost库,但可修改
/**
* @brief    : alarm clock and alarm timer
* @author   : comwise 
* @note     : timer, you must set correct begin time
* @version  : V1.0 2016/06/03
*/
#ifndef _ALARM_TIMER_H_
#define _ALARM_TIMER_H_

#include <string>
#include <ctime>
#include <cmath>
#include <boost/limits.hpp>
#include <boost/date_time.hpp>

class alarm_clock
{
public:
    alarm_clock(void) {
        restart();
    }

    void restart() {
        start_time_ = std::clock();
    }

    double elapsed() {
        return double(std::clock() - start_time_) / CLOCKS_PER_SEC;
    }

    double elapsed_max() const {
        return (double((std::numeric_limits<std::clock_t>::max)())
            - double(start_time_)) / double(CLOCKS_PER_SEC);
    }

    double elapsed_min() const {
        return double(1) / double(CLOCKS_PER_SEC);
    }

    ~alarm_clock(void);

private:
    std::clock_t start_time_;
};

enum alarm_week
{
    week_sun  = 0x1,  // 2^0
    week_mon  = 0x2,  // 2^1
    week_tue  = 0x4,  // 2^2
    week_wed  = 0x8,  // 2^3
    week_thu  = 0x10, // 2^4
    week_fri  = 0x20, // 2^5
    week_sat  = 0x40, // 2^6
};

typedef __int64 alarm_duration_t; // use alarm_week | 
typedef boost::posix_time::ptime alarm_time_t;
class alarm_timer
{
public:
    //_start_time, between date and time must space, date and time accepted delimiters are "-:,./"
    // eg.2016-07-01 01:02:03" or "2016/01/01 010203"
    // alarm_duration_t; // use alarm_week | 
    alarm_timer(const std::string& _start_time = "1970/01/01 00:00:00", alarm_duration_t _elapsed = 0) {
        reset(_start_time, _elapsed);
    }

    void reset(const std::string& _start_time, alarm_duration_t _elapsed){
        start_time_ = boost::posix_time::time_from_string(_start_time);
        elapsed_ = _elapsed;
    }

    int get_current_week() {
        return boost::gregorian::day_clock::local_day().day_of_week();
    }

    alarm_time_t get_current_time() {
        return boost::posix_time::second_clock::local_time();
    }

    // if date is same, then compare time
    // return elapsed time in normalized number of seconds (0..60)
    alarm_duration_t get_diff_time() {
        if ((int)std::pow((float)2, get_current_week()) & elapsed_) {
            return (start_time_.time_of_day().total_seconds() - 
                get_current_time().time_of_day().total_seconds());
        }
        else {
            return _I64_MIN;
        }
    }

private:
    alarm_time_t start_time_;
    alarm_duration_t elapsed_;
};

#endif

测试程序如下

    alarm_timer timer;
    while (true)
    {
        SLEEP(100);
        timer.reset(job.cycle_begin, job.cycle_value);
        alarm_duration_t diff_time = timer.get_diff_time();
        if(abs(diff_time) < 1) { 
            //do it
        }
    }


 

Windows程序设计闹钟实例详解 API是一系列预先定义好的函数,它们是操作系统或库的一部分,为应用程序提供各种服务和功能。在Windows系统中,API为开发者提供访问底层系统资源和执行复杂任务的能力,比如内存管理、文件操作、窗口管理和设备输入输出等。在Windows编程中,窗口类的定义与注册是创建窗口之前必须完成的步骤。窗口类(WNDCLASS)是一个结构体,它包含了创建窗口时所需的一系列信息。WNDCLASS结构体包含以下字段:UINT style;style:窗口类样式。 阅读详情

相关推荐

MSP430F5529闹钟程序设计及实现

MSP430F5529微控制器是德州仪器(Texas Instruments,简称TI)推出的一款低功耗高性能的16位微控制器,适用于各种嵌入式系统应用。其核心架构包括精简指令集(RISC)、丰富的外设接口和高效的电源管理功能。MSP430F5529集成了32位的寄存器和增强型指令集,可以提供更高的处理能力和更大的寻址空间。MSP430F5529微控制器内部时钟系统是实现高效、低功耗运行的关键部分。它包含了多个时钟源和时钟门控,允许系统以极高的灵活性配置所需的时钟信号。主时钟源(MCLK)

weixin_42466723的博客 592

电子闹钟程序设计(接口技术/汇编语言)

设计任务:在微机及接口实验箱上完成电子闹钟设计。键盘数字键设置时间,七段数码管显示时间,蜂鸣器整点报时。设置时间,在设置的时间报时。 设计要求: 1.在微机及接口实验箱上完成电子闹钟模拟设计; 2.完成接口电路的设计; 3. 完成对应控制程序编写。 内附详细设计过程与核心代码

MATLAB开发实战:简易闹钟程序设计与实现

MATLAB 不仅仅是一个强大的数值计算与算法开发平台,它同样适用于快速开发小型应用程序,如本项目所探讨的“MATLAB闹钟”。本项目旨在利用 MATLAB 的图形界面设计能力、定时器机制与音频播放功能,构建一个具备时间设定、提醒触发与声音播放的完整闹钟程序。通过该项目,开发者可以深入理解 MATLAB 在事件驱动编程、GUI交互设计与系统集成方面的应用能力。同时,它也为初学者提供了一个综合性强、功能完整的实践案例,适合用于提升 MATLAB 编程技巧与软件工程思维。

weixin_32999557的博客 925

简易闹钟编程设计

简易闹钟编程设计简易闹钟编程设计简易闹钟编程设计简易闹钟编程设计简易闹钟编程设计

【亲测免费】 推荐开源项目:PleaseWakeUp - 一款智能闹钟应用

推荐开源项目:PleaseWakeUp - 一款智能闹钟应用 项目简介 是一个创新的闹钟应用,它不仅仅是一个普通的时间提醒工具,更是一款结合了AI技术和生活趣味性的智能闹钟。这款项目的独特之处在于其定制化的唤醒方式和互动体验,旨在让用户在早晨以更加愉快和有效的方式开始新的一天。 技术分析 AI 集成:项目采用了人工智能算法,能够理解用户的语音命令,实现与用户自然的语言交互。这意味着你可以通过简...

gitblog_00060的博客 1577

汇编课设-电子闹钟

设计一个电子闹钟,用汇编语言编写电子闹钟程序,在唐都实验箱上实现硬件接线,通过对计数器8254,可编程并行接口芯片8255以及中断控制芯片8259的应用,实现调用显示子程序、调用闹钟程序、调用整点报时子程序、暂停子程序、播放音乐子程序、删除闹钟程序、时间清零子程序(秒表),其中,程序不断反复扫描小键盘的按键是否被按下,按下不同的按键将会进入不同的子程序中。在达到完成电子闹钟课设的基本要求的基础上进一步有了新的如播放音乐,清零,暂停等新的创新。关键词:电子闹钟 汇编语言 8259 8255。

CSDN_Ysu的博客 1万+

c语言程序设计闹钟,基于单片机智能闹钟设计.doc

基于单片机智能闹钟设计.doc基于单片机的智能闹钟设计摘 要:本文通过单片机来实现电子打铃系统。基于单片机的智能闹钟设计包括:电源电路,单片机最小系统及扩展LCD显示电路,4*4矩阵键盘电路,打铃系统电路。本设计采用C语言编程,使用模拟软件驱动电路以实现其设计的各项功能。本文主要介绍了在设计过程中智能数字闹钟的软、硬件部分及在设计调试过程中遇到的一些问题以及解决方法。关键词:单片机;智能数字闹钟;...

weixin_33487811的博客 1138

java闹钟程序设计_JAVA课程设计_闹钟设计与实现项目-报告_附源代码.doc

JAVA课程设计_闹钟设计与实现项目-报告_附源代码第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题]PAGE 2- PAGE 1 -..Java 设 计 报 告 书课程名称: JAVA语言程序设计设计题目: 闹钟设计与实现院 系: 计算机科学与信息工程系学生姓名:学 号:专业班级:指导教师:2010 年...

weixin_32467749的博客 829

android闹钟详细设计,基于LabVIEW的闹钟设计 详细文档+程序

熟悉LabVIEW开发环境,掌握基于 LabVIEW的虚拟仪器原理、 设计方法和实现技巧,运用专业中的基本理论和实践知识,采用 LabVIEW开发工具,实现LabVIEW 实现闹钟程序设计和仿真。此次设计是基于 LabVIEW 的软件仿真设计,仿真一个闹钟使它具有定点报时的功能, 硬件需求是一台安装该软件的电脑,软件设计需要实现它的所有功能包括以下:1.可以显示系统时间,通过和系统连接获得。2....

weixin_39921131的博客 2074

C++实现的小闹钟功能

通过c++实现简单的C++闹钟功能,不是特别好但是可以用

web设计的数字钟(包括闹钟和星期功能)

一个基于web设计的数字钟,包括闹钟和星期功能

闹钟设计源代码

VHDL实验要求,大学数字电路设计实验,数字闹钟设计代码

VC++课程设计(时钟,具有闹钟功能)

这是一个用MFC完成的时钟程序,具有闹钟,更换背景图片,更换指针颜色,计时器,重置时间等功能,适用于当做课程设计

闹钟程序设计linux,使用单片机实现闹钟程序设计

这个是在之前的电子时钟上功能的扩展,主要加入闹钟模块。即到达预定时间响铃一分钟,一分钟后自动停止,也可以按下已设定的键实现手动停止。数码管方面的学习就到此为此吧,下一步是对液晶显示的学习。单片机闹钟程序设计如下:#i nclude《reg51.h》#define uchar unsigned charunsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0...

weixin_39682697的博客 297

简易单片机-电子定时闹钟程序设计笔记 长按按钮-定时器 蜂鸣器 LED

目录闹钟程序设计按钮功能说明:自己封装的 .h 文件 配合上面程序使用 闹钟程序设计 现在程序是最开始完成源程序的只是简单封装了一下。: 按钮功能说明: k1 : 按钮可以在主界面 长按3秒 进入菜单 也可以退出菜单 ,一层一层的退出 菜单 k2: 按钮可以切换 子菜单的选择 有 三个选择 (1,2,3) 轻点 在三个菜单之间切换 ,长按3秒 可以进入到对应的 (1,2,3)菜单 。 子菜单说明: 每个子菜单的功能: 1 : 设置单片机系统的开始的时间 2 : 设置第一个闹钟的时间 3

weixin_46858768的博客 1870

基于STM32电子钟闹钟数码管显示设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)

基于STM32电子钟闹钟数码管显示设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)仿真图proteus 8.9程序编译器:keil 5编程语言:C语言设计编号:C0104。

weixin_52733843的博客 2142

时钟加闹钟c语言程序,基于89C51单片机8个闹钟时间的智能时钟的设计(附电路图和程序代码)...

普通的家用时钟一般只能设置一个闹钟时间,但很多人均需为工作日、周末、早晨、午休等不同时段设置不同的闹钟时间。如果是使用普通的闹钟,只好每次休息前重新设置,很不方便,有时甚至会出现忘记更改闹钟设置而睡过头的情况。针对这种情况,本人利用89C51 单片机设计了一款有 8 种闹钟设置的时钟,通过一段时间的使用,情况良好。电路图功能简介该时钟以 24 小时制显示时间,并可显示 2000 年至 2049 年...

weixin_39738273的博客 1014
上一篇: C++线程安全队列
下一篇: yate编译之一
comwise
博客等级 码龄15年 58粉丝 85原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值