【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

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编