【单片机毕业设计】【mcuclub-jj-007】基于单片机的门铃的设计

news2025/1/13 9:50:02

       最近设计了一个项目基于单片机的门铃,与大家分享一下:

一、基本介绍

项目名:门铃
项目编号:mcuclub-jj-007
单片机类型:STC89C52、STM32F103C8T6
具体功能:
1、通过人体热释电检测是否有人,当有人且光敏电阻触发,则自动打开照明灯
2、通过一个独立按键进行门铃呼叫,按下后,蜂鸣器响3次(每次1s)
3、通过ISD1820进行语音留言,通过一个按键进行留言,通过另一个按键播报留言
扩展功能:通过蓝牙模块可手机端接收有人按下门铃

二、51实物图

单片机型号:STC89C52

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 

三、51仿真图

仿真软件版本:proteus8.9

电路连线方式:网络标号连线方式

注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样

 

 四、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 

 五、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

 

 六、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。

 

七、系统框图

本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由四部分组成,第一部分是人体检测模块,通过该模块检测当前环境的人体;第二部分光照检测模块,通过该模块检测当前环境的光照;第三部分是按键模块,通过该模块可以进行响铃、控制录音及播报;第四部分是供电模块,通过该模块可给整个系统进行供电。输出由三部分组成,第一部分是录音播报模块,通过该模块可以录入声音及播报声音;第二部分是继电器模块,通过一个继电器控制灯的点亮和熄灭;第三部分是声音报警模块,当有人按下门铃时,进行声音提醒。除此之外,蓝牙模块既作为输入又作为输出,蓝牙模块和手机进行连接,可以将有人按下门铃的数据信息传输到用户手机端。具体系统框图如图所示。

 

 八、软件设计流程

系统的主流程图如图所示。在主程序中:首先对各个模块进行初始化,随后进入while主循环,在主循环中,首先进入第一个函数按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,包括响铃、录音及播报;然后进入第二个函数处理函数,该函数主要判断当前是否人体以及是否光照较低,进行开关灯,还有是否有人按下门铃进行蜂鸣器提醒,录音和播报的控制。

 

 九、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

void Manage_function(void)
{
	if(HUMAN == 0)                    //有人且光照较低,开灯
  {
    if(LIGHT == 1)
    {
      LED = 0;
    }
    else
    {
      LED=1;
    }
  }
  else
  {
    LED = 1;
  }
  if(beep_num > 0)                  //有人按门铃,蜂鸣器响三次
  {
    if(time_num % 100 == 0)
    {
      beep_num--;
      BEEP = ~BEEP;
    }
  }
  else
  {
    BEEP = 1;
  }
  
  if(flag_postscrip == 1)           //按了录音,记录声音
  {
    REC  = 1;
    P_L = 0;
  }
  else if(flag_postscrip == 2)        //按了播报,播放声音
  {
    REC  = 0;
    P_L = 1;
  }
  else
  {
    REC  = 0;
    P_L = 0;
  }
}

资料请点击跳转到官网下载

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

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

相关文章

Java --- 创建SpringMVC项目

目录 一、什么是MVC 二、什么是SpringMVC 三、SpringMVC的特点 四、创建SpringMVC项目 4.1、开发环境 4.2、创建maven工程 4.3、配置web.xml文件 4.4、创建请求控制器 4.5、配置springMVC.xml文件 4.5、访问首页面 4.6、访问指定页面 一、什么是MVC MVC是一种软件架…

C++:C++的IO流

while (scanf("%s", buff) ! EOF)如何终止? 答:ctrl z换行 是规定,ctrl c 是发送信号杀死进程(一般不建议ctrl c)。 int main() {string str;while (cin >> str) // operator>>(cin, str){cou…

K_A01_001 基于单片机驱动WS2812 点灯流水灯 0-9显示

目录 一、资源说明 二、基本参数 三、通信协议说明 WS2812时序: 代码: 四、部分代码说明 1、接线说明 2、主函数 五、相关资料链接 六、数字提取格式 七、视频效果展示与资料获取 八、项目所有材料清单 九、注意事项 十、接线表格 一、资源说明 单片机型号 测试条件 模…

【一起学习数据结构与算法】优先级队列(堆)

目录一、什么是优先级队列?二、堆 (heap,基于二叉树)2.1 什么是堆?2.2 堆的分类2.3 结构与存储三、堆的操作3.1 堆创建3.2 插入元素3.3 弹出元素四、用堆模拟实现优先级队列五、堆的一个重要应用-堆排序六、经典的TOPK问题6.1 排序6.2 堆一、…

如何用两个晚上教女生学会Python

文章目录安装、需求引导和开发模型命令行计算器用温度指导穿衣VS Code 和女孩子的衣柜用遍历来挑选衣物交互课后作业事情的起因是这样的,知乎上有个妹纸加我,说要相亲。尽管我欣喜若狂,但恰巧在外出差,根本走不开。妹纸于是说要不…

自动化和半自动矢量化提取地物矢量轮廓

假期愉快(这个假期加班了没?图片)!今天小助手来分享关于自动化和半自动化的矢量提取,使用的软件都是我们常用的软件。一是使用Global Mapper对遥感影像或矢量底图进行自动提取,二是基于天地图矢量底图使用A…

阶段性总结 | C语言

… 🌳🌲🌱本文已收录至:技术之外的往事 更多知识尽在此专栏中! 🎉🎉🎉欢迎点赞、收藏、关注 🎉🎉🎉回顾过去 各位CSND的小伙伴们大家好&#xf…

C · 进阶 | 慎看!深剖文件操作,怕你停不下

啊我摔倒了..有没有人扶我起来学习.... 目录前言一、 什么是文件1.1 程序文件1.2 数据文件1.3 文件名二、文件的打开和关闭2.1 文件指针2.2 文件的打开和关闭三、文件的顺序读写3.0 有必要解释一下*3.1 fputc3.2 fgetc3.3 fprintf3.4 fscanf3.4.1来个小总结(这里忽略…

双非本23秋招之路-从考研跑路到某安全大厂(无实习、项目)

文章目录双非本23秋招之路-从考研跑路到某安全大厂(无实习、项目)一、自我介绍二、简历准备三、刷题四、八股文五、项目方面六、关于实习七、面试方面八、秋招路程九、简历投递十、面经分享双非本23秋招之路-从考研跑路到某安全大厂(无实习、…

springboot+jsp新闻发布投稿系统

本文采用JSP技术构建的一个管理系统,实现了一个新闻发布系统。新闻发布系统的主要实现功能包括:管理员:首页、个人中心、用户管理 、新闻分类管理 、新闻信息管理、新闻投稿管理、论坛管理、我的收藏管理、投诉建议管理、系统管理。前台首页&…

Python编程 print输出函数

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.输入与输出 1.print()输出函数 2.sep 3.en…

【MySQL数据库和JDBC编程】第三章-第一节:MySQL的增删查改基础篇

文章目录一:INSET新增二:SELECT查询(1)全列查询(2)指定列查询(3)查询字段为表达式(4)起别名(5)去重(DISTINCT)…

微信小程序request:fail报错(包括不执行fail回调问题)

微信小程序request:fail报错(包括不执行fail回调的问题)1. 不执行fail回调的问题2. request:fail报错原因2.1 小程序未配置域名导致的错误2.2 微信小程序使用的服务器环境不支持TLS1.22.3 使用的SSL证书不信任2.4 SSL证书证书链缺乏2.5 域名未备案&#…

使用Spring框架进行Web项目开发(初级)

目录 前言 1. 为什么常规的Spring框架不适合Web项目呢? 2. 如何在Spring框架中创建容器? 3. Spring框架开发Web项目的步骤 3.1 创建maven项目 3.2 添加相应的依赖 3.3 在webapp目录下的web.xml中注册监听器 3.4 在webapp文件夹下的web.xml中配置…

【信息科学技术与创新】自然语言处理 NLP 计算机与智能 课程总结思考

深入了解 NLP 及课程总结反思 摘要 自然语言处理的历史发展自然语言处理的方法与相关应用关于数据智能科学技术导论这门课程的总结反思 Navigator深入了解 NLP 及课程总结反思一、自然语言处理的历史发展二、自然语言处理的方法与相关应用三、关于数据智能科学技术导论这门课…

【C++初阶】日期类实现、const成员函数、取地址及const取地址操作符重载

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【C学习与应用】 ✒️✒️本篇内容:日期类的代码实现、const成员函数的概念和作用、取地址及const取地址操作符重载 🚢&#x1f6a2…

去水印小程序

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 项目UI确实有点朴实无华,但并不影响她美丽的内在。这和人也一样,属于心灵美。 虽然,这个社会上的大多数人喜欢从一件事物的外表,去评判事物的好坏,即好…

vue支付项目-APP支付宝支付功能

⭐️⭐️⭐️ 作者:船长在船上 🚩🚩🚩 主页:来访地址船长在船上的博客 🔨🔨🔨 简介:CSDN前端领域优质创作者,资深前端开发工程师,专注前端开发…

FreeRTOS 软件定时器的使用

FreeRTOS中加入了软件定时器这个功能组件,是一个可选的、不属于freeRTOS内核的功能,由定时器服务任务(其实就是一个定时器任务)来提供。 软件定时器是当设定一个定时时间,当达到设定的时间之后就会执行指定的功能函数&…

【趣学算法】Day2 贪心算法——最优装载问题

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:周小末天天开心 各位大…