【51毕业设计案例】【022】智能起床闹钟(随机密码)-基于51/52单片机

本文主要是介绍【51毕业设计案例】【022】智能起床闹钟(随机密码)-基于51/52单片机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、设计介绍

模块说明:

  • 1、STC89C52:主控芯片 单片机
  • 2、LCD1602:用于显示数据信息
  • 3、有源蜂鸣器:可以发出声音进行警报,有源蜂鸣器只需要给电平就可以直接发出声响,无源蜂鸣器则需要改变高低电平频率来发出声响
  • 4、DS1302实时时钟:获取当前实时时钟,模块内置纽扣电池,单片机关机后能自动给模块供电
  • 5、矩阵键盘:使用独立按键组成的4*4键盘,使用8个IO口来获取16个按键的状态
  • 6、AT24C02:存储模块,用于存储保存数据

功能介绍:

  • 1、该系统能进行时间设置、闹钟设置、闹钟未成功关闭下一次响起间隔设置
  • 2、当定时时间一到,系统闹铃响起,以叫醒用户为目的
  • 3、若未用户未完全被叫醒,则间隔一段时间再次让闹铃响起,若用户成功被叫醒,闹钟则不会继续响起
  • 4、闹铃响起时通过蜂鸣器进行提醒,并且在LCD显示屏上显示两位数相乘的公式,需要用户进行答题,答对则闹钟关闭,打错则闹钟继续
  • 5、对闹钟设置使用24C02进行数据掉电保存

硬件框图:

软件流程图:

原理图:

使用立创EDA格式打开,打开方式为将文件夹内 .json 后缀文件拖入嘉立创EDA(标准版) - 免费、易用、强大的在线电路设计软件 立创EDA编辑网站中即可

本次原理图使用立创EDA画出的,对于新手较为方便,全中文易上手,不需要安装任何软件。另,Altium Designer 格式打开后标注会有所丢失,建议使用立创EDA

Proteus仿真图:

元器件清单:

如果您不能独自完成焊接,我这边也提供付费焊接服务以及调试,完成后第一时间通过快递寄给您。

二、代码资料展示

主要代码展示:

//显示界面  每个菜单的结构
void Dis_menu()
{if (menu == 0){//判断是否在闹铃响起状态  需要输入公式答案if (Rev_shi == shi && Rev_fen == fen && Flag_Right == 0){LCD_Clear();LCD_Write_String(0, 0, "Plsease Answer");LCD_Write_String(0, 1, "  *  =    <<<<");}else{//时钟静态页面LCD_Clear();LCD_Write_String(0, 0, "  20  -  -    ");LCD_Write_String(0, 1, "     :  :     ");}}else if (menu == 1){//时间设置静态页面LCD_Clear();LCD_Write_String(0, 0, "  20  -  -    ");LCD_Write_String(0, 1, "     :  :     ");//显示时分秒LCD_Write_Char(4, 0, nian / 10 % 10 + 0x30);LCD_Write_Char(5, 0, nian % 10 + 0x30);LCD_Write_Char(7, 0, yue / 10 % 10 + 0x30);LCD_Write_Char(8, 0, yue % 10 + 0x30);LCD_Write_Char(10, 0, ri / 10 % 10 + 0x30);LCD_Write_Char(11, 0, ri % 10 + 0x30);LCD_Write_Char(3, 1, shi / 10 % 10 + 0x30);LCD_Write_Char(4, 1, shi % 10 + 0x30);LCD_Write_Char(6, 1, fen / 10 % 10 + 0x30);LCD_Write_Char(7, 1, fen % 10 + 0x30);LCD_Write_Char(9, 1, miao / 10 % 10 + 0x30);LCD_Write_Char(10, 1, miao % 10 + 0x30);}else if (menu == 7){//设置定时开始时间页面write_time();LCD_Clear();LCD_Write_String(0, 0, " Set Alarm Time ");LCD_Write_String(0, 1, "    :       min ");LCD_Write_Char(2, 1, W_shi / 10 % 10 + 0x30);		LCD_Write_Char(3, 1, W_shi % 10 + 0x30);LCD_Write_Char(5, 1, W_fen / 10 % 10 + 0x30);		LCD_Write_Char(6, 1, W_fen % 10 + 0x30);LCD_Write_Number(10, 1, Alarm_Delay, 2);}Dis_Set_Dat();//刷新数据
}

工程管理展示:

下载内容展示:

更多详细功能与代码视频讲解B站搜索易佳电子设计 主页搜索该设计编号或名称

视频链接:【51毕业设计案例】【022】智能起床闹钟(随机密码)-基于51/52单片机_哔哩哔哩_bilibili

这篇关于【51毕业设计案例】【022】智能起床闹钟(随机密码)-基于51/52单片机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829286

相关文章

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软