51单片机课综合项目

news2025/3/6 14:18:59

1、按键控制蜂鸣器实验

1、实验现象:下载程序后,按下K1键蜂鸣器发声一次,按下K2键,蜂鸣器连续发声,再次按下K2键,发声取消
2、使用到的外设模块:蜂鸣器模块beep 独立按键模块 key
3、编程框架(参考):
(1)编写蜂鸣器发出报警声函数
(2) 编写独立按键扫描函数,输出按下的键值
(3) 编写主函数

2、计时器实验(数码管显示)

1、实验现象: 下载程序后,数码管显示分-秒-毫秒 格式为:XX-XX-XX
按下K1键,发出短暂提示音,开始计时,再次按下K1键,发出短暂提示音,停止计 时,按下K2键,清零。
2、使用到的外设模块:独立按键模块key、蜂鸣器模块beep、数码管 模块、定时器0中断
3、编程框架(参考):
(1) 编写独立按键扫描函数
(2) 编写蜂鸣器发出提示音函数
(3) 编写数码管显示函数
(4) 编写定时器0中断,实现计时功能
(5) 编写主函数
 

3、计时器实验(lcd1602液晶显示屏显示)

1、实验现象:
下载程序后,lcd1602显示屏显示分-秒-毫秒 格式为:XX-XX-XX
按下K1键,发出短暂提示音,开始计时,再次按下K1键,发出短暂提示音,停止计
时,按下K2键,清零。
2、使用到的模块:独立按键模块key、蜂鸣器模块beep、lcd1602显示屏、定时器0
中断
3、编程框架(参考):
(1) 编写独立按键扫描函数
(2) 编写蜂鸣器发出提示音函数
(3) 编写lcd16092液晶显示函数
(4) 编写定时器0中断,实现计时功能
(5) 编写主函数

4、lcd1602液晶显示屏,滚动显示

1、实验现象:lcd1602液晶显示屏滚动显示字符串
2、用到的模块:lcd1602液晶显示屏
3、编程框架:
(1)编写lcd1602液晶显示屏初始化函数、清屏函数、显示字符函数
(2)编写主函数

5、串口控制led等和蜂鸣器

1、实验现象:下载程序后,由串口助手以HEX格式向单片机发送如下指令,来控制led
灯和蜂鸣器
指令1: 11 0D 0A D1指示灯亮
指令2: 10 0D 0A D1指示灯灭
指令3: 21 0D 0A 蜂鸣器发声
指令4: 20 0D 0A 蜂鸣器停止发声
2、使用到的模块:蜂鸣器模块、串口通信
3、编程框架(参考):
(1)编写蜂鸣器发声函数
(2)编写串口通信函数
(3)编写主函数

6、红外遥控控制LED和蜂鸣器

1、实验现象:下载程序后,可以在数码管上显示,红外遥控器上的所有键的键值,另外,遥控器上的第1个键控制D1的亮和灭,第2个键可以控制蜂鸣器发声和停止发声
2、所用到的模块:红外遥控器、LED1灯、蜂鸣器、数码管
3、编程框架(参考):
(1)编写数码管显示函数
(2)编写蜂鸣发声函数
(3)编写红外解码函数
(4)编写主函数

7、电子万年历

1、实验现象:
开机时,LCD1602默认显示初始化日历时间和温度值,当按下K1键第1次,进入日期和时间设定模式,此时光标会在要调整的时间位置闪烁,可通过K3键进行数据加1,如需切换所要调整的时间位置,可按K2键切换。当按下K1键第2次,进入闹钟设置模式(时-分),此时光标同样在所要调整的时间位置闪烁,可通过K3键进行数据加1,如需切换所要调整的时间位置,可按K2键切换,要让闹钟开启,除了设定对应的时间外,还需要设置闹钟开关为“ON”。当按下K1键第3次,又会回到刚才日期和时间设定模式,如此循环。当设定完成后,可按下K4键保存。时间会按照预定设定进行,如果开启闹钟,当前时间(时-分)如果与闹铃时间(时-分)相等,则蜂鸣器发出声音,一分钟以后则停止。
2、用到的模块:ds1302时钟芯片、定时器0中断、蜂鸣器、独立按键、ds18b20温度传感器、lcd1602液晶显示屏

8、智能门锁

实验要求:
1、 初始密码设置:设置门锁出厂初始密码为12345678 ,保存在eeprom 中,输入初始密码,正确,在lcd 上提示开锁成功,错误提示报警音。首次开锁成功后,在lcd上提示用户设置新密码。
2 、用户密码修改 : 用开发板矩阵键盘实现密码设置,密码由8位数字构成,设置新密码前需要验证老密码,老密码验证成功后方可修改密码。新密码需要连续两次输入,两次输入密码一致,密码修改成功,保存新密码到eeprom,并在lcd 提示修改成功,并记录当前时间到eeprom.最多纪录10条密码修改成功的时间记录,超出自动覆盖最早记录。要求对eeprom 的操作用页写和连续读的方式完成。支持一键查看密码修改成功时间记录列表,支持翻页查看。
3 、开锁:在上锁条件按下,输入密码开锁。开锁成功在lcd 上提示开锁成功,错误提示报警音提示并提示请再次输入密码。开锁状态下要有 当前门开 提示音,上锁后提示音消失。
4 、密码保护:当用户连续三次输错密码,锁键盘半小时,禁止输入,并记录当前日期时间到eeprom,再次连续三次输入密码错误,锁键盘2小时,并记录本事件发生的日期时间到eeprom. 2小时后又连续三次输入错误,永久锁键盘, 并记录本事件发生的日期时间到eeprom. 当成功开锁后,本密码保护周期取消,重新开始密码保护计算。支持一键查看锁盘事件发生的时间列表,支持翻页查看。
5 、上锁:一键上锁,上锁后门开提示音消失,进入上锁状态。

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

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

相关文章

【最大半连通子图——tarjan求最大连通分量,拓扑排序,树形DP】

题目 分析 最大连通分量肯定是满足半连通分量的要求,因此tarjan。 同时为了简化图,我们进行缩点,图一定变为拓扑图。 我们很容易看出,只要是一条不分叉的链,是满足条件的。 于是我们按照拓扑序不断树形DP 建边注意…

一周学会Flask3 Python Web开发-在模板中渲染WTForms表单视图函数里获取表单数据

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 为了能够在模板中渲染表单,我们需要把表单类实例传入模板。首先在视图函数里实例化表单类LoginForm,然…

DeepSeek R1助力,腾讯AI代码助手解锁音乐创作新

目录 1. DeepSeekR1模型简介2. 歌词创作流程2.1 准备工作2.2 歌词生成技巧 3. 音乐制作环节3.1 主流AI音乐生成平台 4. 歌曲欣赏5. 总结展望 1. DeepSeekR1模型简介 腾讯AI代码助手最新推出的DeepSeekR1模型不仅在代码生成方面表现出色,其强大的自然语言处理能力也…

【微信小程序】每日心情笔记

个人团队的比赛项目,仅供学习交流使用 一、项目基本介绍 1. 项目简介 一款基于微信小程序的轻量化笔记工具,旨在帮助用户通过记录每日心情和事件,更好地管理情绪和生活。用户可以根据日期和心情分类(如开心、平静、难过等&#…

前端基础之组件

组件&#xff1a;实现应用中局部功能代码和资源的集合 非单文件组件 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"…

spring boot整合flyway实现数据的动态维护

1、简单介绍一下flyway Flyway 是一款开源的数据库版本控制工具&#xff0c;主要用于管理数据库结构的变更&#xff08;如创建表、修改字段、插入数据等&#xff09;。它通过跟踪和执行版本化的迁移脚本&#xff0c;帮助团队实现数据库变更的自动化。接下来简单介绍一下flyway…

数据结构知识学习小结

一、动态内存分配基本步骤 1、内存分配简单示例&#xff1a; 个人对于示例的理解&#xff1a; 定义一个整型的指针变量p&#xff08;着重认为它是一个“变量”我觉得可能会更好理解&#xff09;&#xff0c;这个变量用来存地址的&#xff0c;而不是“值”&#xff0c;malloc函…

【Spring AOP】_切点类的切点表达式

目录 1. 根据方法签名匹配编写切点表达式 1.1 具体语法 1.2 通配符表达规范 2. 根据注解匹配编写切点表达式 2.1 实现步骤 2.2 元注解及其常用取值含义 2.3 使用自定义注解 2.3.1 编写自定义注解MyAspect 2.3.2 编写切面类MyAspectDemo 2.3.3 编写测试类及测试方法 在…

初次使用 IDE 搭配 Lombok 注解的配置

前言 在 Java 开发的漫漫征程中&#xff0c;我们总会遇到各种提升效率的工具。Lombok 便是其中一款能让代码编写变得更加简洁高效的神奇库。它通过注解的方式&#xff0c;巧妙地在编译阶段为我们生成那些繁琐的样板代码&#xff0c;比如 getter、setter、构造函数等。然而&…

关于 QPalette设置按钮背景未显示出来 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/146047054 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

mysql下载与安装

一、mysql下载&#xff1a; MySQL获取&#xff1a; 官网&#xff1a;www.mysql.com 也可以从Oracle官方进入&#xff1a;https://www.oracle.com/ 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 选择对应的版本和对应的操作系统&#xff…

Python练习(握手问题,进制转换,日期问题,位运算,求和)

一. 握手问题 代码实现 ans0for i in range(1,51):for j in range(i1,51):if i<7 and j<7:continueelse:ans 1print(ans) 这道题可以看成是50个人都握了手减去7个人没握手的次数 答案&#xff1a;1204 二.将十进制整数拆解 2.1门牌制作 代码实现 ans0for i in ra…

小程序分类页面

1创建cate分支 2.cate滑动界面布局 获取滑动界面高度 3.获取并渲染一级分类的列表数据 4.渲染二级和三级分类列表 获取二级列表的数据 5.渲染二级分类列表的UI结构 6.动态渲染三级分类列表

HTML + CSS 题目

1.说说你对盒子模型的理解? 一、是什么 对一个文档进行布局的时候&#xff0c;浏览器渲染引擎会根据标准之一的css基础盒模型&#xff0c;将所有元素表示为一个个矩形的盒子。 一个盒子由四个部分组成: content&#xff0c;padding&#xff0c;border&#xff0c;margin 下…

计算机视觉|ViT详解:打破视觉与语言界限

一、ViT 的诞生背景 在计算机视觉领域的发展中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一直占据重要地位。自 2012 年 AlexNet 在 ImageNet 大赛中取得优异成绩后&#xff0c;CNN 在图像分类任务中显示出强大能力。随后&#xff0c;VGG、ResNet 等深度网络架构不…

Node JS 调用模型Xenova_all-MiniLM-L6-v2实战

本篇通过将句子数组转换为句子的向量表示&#xff0c;并通过平均池化和归一化处理&#xff0c;生成适合机器学习或深度学习任务使用的特征向量为例&#xff0c;演示通过NodeJS 的方式调用Xenova/all-MiniLM-L6-v2 的过程。 关于 all-MiniLM-L6-v2 的介绍&#xff0c;可以参照上…

ASP.NET Core JWT认证与授权

1.JWT结构 JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用之间安全传输声明的开放标准&#xff08;RFC 7519&#xff09;。它通常由三部分组成&#xff0c;以紧凑的字符串形式表示&#xff0c;在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…

【车规芯片】如何引导时钟树生长方向

12nm车规DFTAPR项目中&#xff0c;我们可以看到&#xff0c;绝大部分的sink都受控于xxxx_tessent_occ_clk_cpu_inst/tessent_persistent_cell_clock_out_mux/C10_ctmi_1这个mux&#xff0c;这是我们DFT设计结果&#xff1a; 这里我们重新打开place的数据 Anchor&#xff0c;也就…

《深度学习实战》第11集:AI大模型压缩与加速

深度学习实战 | 第11集&#xff1a;AI大模型压缩与加速 在深度学习领域&#xff0c;随着模型规模的不断增大&#xff0c;模型的推理速度和部署效率成为实际应用中的关键挑战。本篇博客将带你深入了解模型压缩与加速的核心技术&#xff0c;并通过一个实战项目展示如何使用知识蒸…

大语言模型中温度参数(Temperature)的核心原理

大语言模型中温度参数&#xff08;Temperature&#xff09;的核心原理是通过调整模型输出的概率分布&#xff0c;控制生成结果的随机性和多样性。以下是其原理的详细说明&#xff1a; 一、定义与核心作用 温度参数是生成式模型&#xff08;如GPT系列&#xff09;中的一个超参数…