本文主要是介绍【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单片机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!