【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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值