基于51单片机的电子闹钟设计

news2024/12/26 22:25:02

使用的单片机是  STC89C52 

此设计可以    年 月 日   时 分 秒显示和闹钟功能      能通过8个按键自由调整 时 分 秒   闹钟响铃时间
带复位按键,要是模块抽风,摁复位按键即可!
使用 LCD16020A 屏幕显示       屏幕电路设有电位器,可以调整清自由屏幕晰度
原理图上均标注了每个元件的 值和型号,方便购买正确的元件

 
程序代码在附件里

无需改动,直接烧录即可

原理图:

 

PCB:

实物图:

 程序运行图:

部分程序:

/**
  * @brief  利用定时器中断 完成LED流水
  */
#include <REGX52.H>
#include "LCD1602.h"
#include "Key.h"
#include "Buzzer.h"
#include "Delay.h"

//sbit LED = P2^0;
unsigned char sec = 0, min = 0, hour =0;
unsigned char table_sec = 30, table_min = 0, table_hour =0;
unsigned char  mode = 0,Num;

/**
  * @brief  定时器0初始化;1毫秒@12.000MHz
  * @param  无 
  * @retval 无
  *     @arg  1.设置定时器方式
  *     @arg  2.设置定时器初值;即延时时长
  *     @arg  3.打开中断 
  */
void Timer0Init(void)    
{
    TMOD &= 0xF0;        //设置定时器模式
    TMOD |= 0x01;        //设置定时器模式
    TL0 = 0x18;        //设置定时初值
    TH0 = 0xFC;        //设置定时初值
    TF0 = 0;        //清除TF0标志
    TR0 = 1;        //定时器0开始计时
    ET0 = 1;        //打开T0中断 (IE寄存器内部运行)
    EA  = 1;        //打开总中断 (IE寄存器内部运行)
    PT0 = 0;        //设置优先级
}
/**
  * @brief  
  * @param  
  *     @arg  
  * @retval 
  */
void main()
{    
    LCD_Init();
    Timer0Init();
    LCD_ShowString(1,1,"2022-11-09 Wes");
    LCD_ShowString(2,1,"  :  :");
    while(1)
    {
        if(mode == 0)
        {
        LCD_ShowNum(2,7,sec,2);
        LCD_ShowNum(2,4,min,2);
        LCD_ShowNum(2,1,hour,2);
        switch (Key_Scan())
        {
                case 1:  sec++;if(sec > 59) sec = 0 ; break;
                case 2:  sec--;if(sec > 59) sec = 59 ; break;
                case 3:  min++;if(min > 59) min = 0 ;break;
                case 4:  min--;if(min > 59) min = 59 ;break;
                case 5:  hour++;if(hour > 23) hour = 0;break;
                case 6:  hour--;if(hour > 23) hour = 23 ;break;
                case 8:  mode = 1;break;
                default : break;
        }
        Num = Key_Scan();
        
        if (hour == table_hour & min == table_min & sec == table_sec)
        {
            Buzzer(10000);
        }
    }
        if (mode == 1)
        {
        LCD_ShowNum(2,7,table_sec,2);
        LCD_ShowNum(2,4,table_min,2);
        LCD_ShowNum(2,1,table_hour,2);
            switch (Key_Scan())
            {
                case 1:  table_sec++;if(table_sec > 59) table_sec = 0 ; break;
                case 2:  table_sec--;if(table_sec > 59) table_sec = 59 ; break;
                case 3:  table_min++;if(table_min > 59) table_min = 0 ;break;
                case 4:  table_min--;if(table_min > 59) table_min = 59;break;
                case 5:  table_hour++;if(table_hour > 23) table_hour = 0;break;
                case 6:  table_hour--;if(table_hour > 23) table_hour = 23 ;break;
                case 7:   mode = 0;break;
           }
            
           
    }
    }
}


    {
        T0Count = 0;
        sec++;    
        if ( sec > 59)
        {
            min++;
            sec = 0;
            if ( min > 59)
            {
                hour++;
                min = 0;
                if ( hour > 23)
                {
                    hour = 0;
                }
            }
        }
    }    
}

资料包括:

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Tableau可视化设计案例-07 多边形地图和背景图地图

Tableau可视化设计案例 本文是Tableau的案例&#xff0c;为B站视频的笔记&#xff0c;B站视频 参考&#xff1a;https://www.bilibili.com/video/BV1E4411B7ef 参考&#xff1a;https://blog.csdn.net/lianjiabin/category_9826951.html 数据下载地址为&#xff1a;https://do…

Java项目:springboot药品管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目属于前后端分离的项目&#xff0c;分为两个角色药品管理员和取药处人员 药品管理员&#xff1a; 登录、退出、药品信息录入、药厂信息录入…

Huawei Certified ICT Professional work (一)

文章目录一&#xff0c; 要求二&#xff0c;搭建拓扑图三&#xff0c;配置接口IP和环回IP四&#xff0c;进行RIP版本的配置并且宣告网段五&#xff0c;实现不同版本的连通&#xff0c;在交界处配置对端的版本号六&#xff0c;R3访问R7的环回地址走R5&#xff0c;改变R4的度量值…

Java项目:SpringBoot+MyBatis送水公司管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 这个项目是一个基于SpringBootMyBatis的送水公司管理系统 管理员权限包括&#xff1a; 客户管理 送水工管理 送水历史管理 计算工资 统计送水数…

79页智慧应急指挥平台1 6 N体系建设方案

【版权声明】本资料来源网络&#xff0c;仅用于行业知识分享&#xff0c;供个人学习参考&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间进行删除&#xff01; 完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 行业专网解决…

ARM_SMMU_下

SMMU驱动代码分析 本文主要分析linux kernel中SMMUv3的代码(drivers/iommu/arm-smmu-v3.c) linux kernel版本是linux 5.7, 体系结构是aarch64 SMMU的作用是把CPU提交给设备的VA地址&#xff0c;直接作为设备发出的地址&#xff0c;变成正确的物理地址&#xff0c;访问到物理内…

五、传输层(一)传输层的功能

目录 1.1传输层的主要功能 1.2传输层的寻址与端口 1.2.1端口的作用 1.2.2端口号 1.2.3套接字 1.3无连接服务与面向连接服务 1.1传输层的主要功能 物理层、数据链路层和网络层共同解决了主机通过异构网络互联起来所面临的问题&#xff0c;实现了主机到主机的通信。然而在…

【iOS】CAlayer的认识与使用

什么是CALayer CALayer是UIView里的一个图层&#xff0c;其主要功能是负责显示视图与动画。CALayer和UIView 功能是一致的、 不过因为其 更加底层 所以 CALayer 有一些接口、 UIView 里面没有。 CALayer与UIView UIView&#xff1a;用于管理视图的容器。每次创建UIView对象时…

当我阳了之后是如何用Python来自动买药的

人生苦短&#xff0c;我用Python序言准备工作代码实战序言 哈喽兄弟们&#xff0c;我是郑再阳&#xff0c;马上要成杨过了&#xff01; 读者&#xff1a;在下羊了个羊&#xff01; 最近总是听说哪里哪里阳了&#xff0c;哪个公司又团灭了&#xff0c;emmm~ 于是乎看了几天后…

【exgcd】扩展欧几里得

主要介绍扩展欧几里的和总结一些常用性质 首先介绍裴蜀定理 对于任意整数a,b,存在一对整数x,y 满足 axbygcd(a,b) 即存在x0,y0使得ax0by0gcd(a,b) 扩展欧几里得可以求出x0,y0 从而当axbyc 可以求出其通解 设dgcd(a,b) 显然当c%d!0时无整数解 通解可以表示为 x(c/d)x0k…

Java项目:springboot访客管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 springboot搭建的访客管理系统&#xff0c;针对高端基地做严格把控来访人员信息管理&#xff0c;用户后端可以设置多个管理员帐号&#xff0c;给…

力扣(LeetCode)207. 课程表(C++)

拓扑排序 根据示例看出&#xff0c;课程表是否存在环&#xff0c;是问题的关键。这题的环&#xff0c;和数组、链表的环不一样&#xff0c;不好判&#xff0c;要转化成图判拓扑序列。 考虑向右和向左的方向&#xff0c;拓扑序列的所有边可以指向同一方向。 无环图进行重排序…

论文阅读Measuring Regularity of Individual Travel Patterns

这是一篇发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS上的论文&#xff0c;论文主要描述了一种刻画出行规律性的方法。 1.论文概述 论文主要描述了一种刻画出行规律性的方法。首先&#xff0c;论文给出了对出行活动序列&#xff08;travel event&#xff…

因果推断3--DRNet(个人笔记)

目录 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 1介绍 2相关工作 3方法 4实验 5结果和讨论 6结论 7理解 论文标题 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 收录会…

深度学习-AlexNet(第一个深度卷积网络)

文章目录简介数据集模型搭建模型训练模型测试前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 AlexNet是第一个深度卷积网络模型&#xff0c;赢得了2012年ImageNet图像分类竞赛的冠军…

Java项目:springboot销售团队后台管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为后管系统&#xff0c;主要功能包括&#xff1a; 看板、业务机会管理、客户管理、联系人管理、我的日报、团队日报、主数据管理&#x…

【Linux】进程间通信之共享内存

目录&#x1f308;前言&#x1f338;1、System V共享内存&#x1f361;1.1、概念&#x1f362;1.2、原理&#x1f33a;2、共享内存相关函数和指令&#x1f361;2.1、shmget函数&#xff08;创建&#xff09;&#x1f362;2.2、shmctl函数&#xff08;控制&#xff09;&#x1f…

TCP 的重传机制、选择确认、缓存与流量控制、连接管理、拥塞控制(计算机网络-运输层)

目录 TCP 的重传机制 TCP 的选择确认 TCP 的缓存与流量控制 TCP 的连接管理 TCP的拥塞控制 TCP 的重传机制 TCP 每发送一个报文段就设置一个超时计时器&#xff1b; TCP 使用指数加权移动平均算法计算 RTT 及其偏差的估计值&#xff0c;并据此计算超时重传时间&#xff1b…

8 NP完全性理论

8 NP完全性理论 p问题 NP问题 NP完全问题 NPC(complete ) NP难问题NP-hard p问题 是一类能够用**(确定的)算法**在多项式时间内求解的可判定问题 ●这种问题类型也称为多项式类型 NP问题 是一类能够用不确定算法在多项式时间内求解的可判定问题 在确定性计算模型下多项式时…

程序员高手解决问题,都是从正确的提问开始

回顾各大技术网站、社区、问答&#xff0c;我们发现&#xff1a;真正的程序员高手都极度擅长提问。 好的提问不但能得到建设性的解决方案&#xff0c;更加能激发人们的好奇心、创造力和学习的动力。 毫不夸张地说&#xff0c;会提问的程序员一开口就赢了&#xff01; 所以今…