【单片机毕业设计选题24056】-基于STM32的八路抢答器设计

系统功能:

系统上电后显示“欢迎使用八路抢答系统请稍后”,两秒后进入正常页面显示。

第一行显示系统状态信息,第二行显示抢答计时时间,第三行显示设定的抢答时间,

第四行显示系统状态(空闲状态或计时状态)。

短按B3按键启动抢答

短按B4按键增加抢答设定时间

短按B5按键减小抢答设定时间

短按B7按键在抢答计时过程中停止抢答计时

系统操作过程:

短按B3按键启动抢答,TTS语音模块播报“抢答开始”,抢答计时开始,计时过程中

八路抢答键中的任意一路按键被按下后系统播报“X号抢答成功”后系统重新开始抢答

计时。如果在抢答时间内没有一路按键按下,超时后TTS语音播报“超时,抢答结束”。

在抢答计时过程中短按B7按键可重新开始抢答计时。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

资料获取地址

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();MX_USART3_UART_Init();/* USER CODE BEGIN 2 *///在HAL库初始化串口1后调用HAL_Delay(100);SetUart1RxToInput();  //uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1); HAL_Delay(50);InitOled();InitOledDisp();/* USER CODE END 2 */

系统控制代码:
 

//系统信息更新void AnswerControl(void){char textBuf[200];switch(answerState){case ANSWER_IDLE:if(answerStart==true){answerStart = false;answerState = ANSWER_COUNT;sprintf(textBuf, "开始抢答");    Usart3_SendString((uint8_t*)textBuf,strlen((char*)textBuf));             }break;case ANSWER_COUNT:if(answerStop==true)   //中途停止{answerStop = false;getTimeVal = 0; answerState = ANSWER_IDLE;}else{getTimeVal++;   //计数if(getTimeVal>=setTimeVal)  //计时时间到{getTimeVal = 0; //清除抢答计数answerState = ANSWER_IDLE;sprintf(textBuf, "超时,抢答结束");    Usart3_SendString((uint8_t*)textBuf,strlen((char*)textBuf));             }else    //读抢答按键{if(ReadSwVal()!=0xFF){getTimeVal = 0;answerState = ANSWER_IDLE;}}}break;default:break;}}

OLED显示:
 

//处理OLED显示内容void SystemDisplay(void){char textBuf[20];uint8_t i = 0;float tempVal = 0;//第一行显示“系统状态信息”for(i=13; i<19; i++){OledShowCN(16+(i-13)*16, 0, i);}//第二行显示抢答计时时间  tempVal = getTimeVal/10;sprintf(textBuf,"GetTime:%4.1f", tempVal);OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//第三行显示设定的抢答时间tempVal = setTimeVal/10;sprintf(textBuf,"SetTime:%4.1f", tempVal);OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//第四行显示系统状态if(answerState==ANSWER_IDLE){sprintf(textBuf,"System:Idle ");}else if(answerState==ANSWER_COUNT){sprintf(textBuf,"System:Count");}OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

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

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

相关文章

CST软件仿真内存设置-电磁仿真cst软件教程

当大家使用CST软件进行仿真时&#xff0c;可能会有仿真内存的设置需求&#xff0c;下面的内容是帮助大家如何设置仿真内存。 首先&#xff0c;打开CST软件并加载您的仿真模型&#xff0c;在软件界面中&#xff0c;找到菜单栏或工具栏中的“仿真设置”或类似的选项。 在仿真设置…

揭秘”大模型加速器”如何助力大模型应用

文章目录 一、大模型发展面临的问题二、“大模型加速器”助力突破困难2.1 现场效果展示2.1.1 大模型加速器——文档解析引擎2.2.2 图表数据提取 三、TextIn智能文档处理平台3.1 在线免费体验3.1.1 数学公式提取3.1.2 表格数据提取 四、acge文本向量化模型4.1 介绍4.2 技术创新4…

数据仓库介绍_维度表(三)

维度表概述 维度表是维度建模的基础和灵魂。前文提到&#xff0c;事实表紧紧围绕业务过程进行设计&#xff0c;而维度表则围绕业务过程所处的环境进行设计。维度表主要包含一个主键和各种维度字段&#xff0c;维度字段称为维度属性。 表设计步骤 确定维度&#xff08;表&…

Django项目的基本准备工作【1】

【 一 】pip换源 # 1 之前装第三方模块 pip3 install django -i 镜像仓库 ​ # 2 一劳永逸--》整点配置&#xff0c;以后安装模块&#xff0c;自动去配置好的源下载 ###windows 1、文件管理器文件路径地址栏敲&#xff1a;%APPDATA% 回车&#xff0c;快速进入 C:\Users\电脑用…

Sentinel-1 Level 1数据处理的详细算法定义(三)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程&#xff0c;以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下&…

vscode远程调试python代码

第一步&#xff1a; vscode设置 vscode也支持通过remote的方法连接我们在命令行中发起的debug server。首先我们要配置一下debug的config。 还是点击VSCode侧边栏的“Run and Debug”&#xff08;运行和调试)&#xff0c;单击"create a lauch.json file" 第二步&a…

创建React 项目的几种方式

①.react自带脚手架 使用步骤&#xff1a; 1、下载 npm i create-react-app -g 2、创建项目命令&#xff1a; create-react-app 项目名称 ②.Vite构建工具创建react步骤&#xff1a;&#xff08;推荐&#xff09; 方法一&#xff1a; 1、yarn create vite 2、后续根据提示步…

系统架构设计师 - 数学与经济管理

数学与经济管理 数学与经济管理&#xff08;1 - 2分&#xff09;图论应用最小生成树最短路径网络与最大流量 ★ 运筹方法关键路径法 ★ ★ ★线性规划 ★动态规划 ★ ★ ★排队论预测与决策 ★预测 - 博弈论决策 数学建模 ★ ★ 大家好呀&#xff01;我是小笙&#xff0c;本章我…

线程安全(有点乱哈)

1.多个进程访问共享资源&#xff0c;通过上锁保证数据安全 1.2锁的宏观分类方式是悲观锁和乐观锁 1.3悲观锁和乐观锁 悲观锁&#xff1a;拿数据上锁‘ 举例&#xff1a;synchronzied 乐观锁&#xff1a;每次拿数据的时候不会上锁&#xff0c;更新数据&#xff0c;比较下版…

抖音机构号授权矩阵系统源码:打造自媒体帝国的新利器

在自媒体风起云涌的时代&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;早已成为内容创作者们争相入驻的热门平台。然而&#xff0c;随着竞争加剧&#xff0c;如何在这场流量大战中脱颖而出&#xff0c;成为每一位自媒体人不得不面对的课题。今天&#xff0c;我们将带您深…

MySQL性能优化篇之SQL语句优化

目录 向数据库请求不需要的数据查询不需要的记录总是返回全部的列 MySQL扫描了额外的行扫描的行数和返回的行数行访问类型也要注意extra列的信息优化扫描行数过多的建议 重构查询方式一个复杂的查询还是多个简单的查询切分查询 常用的查询技巧使用内连接而不是外连接优化关联查…

防火墙一些有关知识

防火墙概述 防火墙核心任务 控制和防护 如何发挥功能 防火墙通过安全策略识别列两并做出相应动作。和ACL一样&#xff0c;所以防火墙本质就是ACL 防火墙分类 按物理特性划分 软件防火墙&#xff1a;电脑带的防火墙 硬件防火墙&#xff1a;设备&#xff0c;这个设备做的就…

深度学习之网络构建

目标 选择合适的神经网络 卷积神经网络&#xff08;CNN&#xff09;&#xff1a;我们处理图片、视频一般选择CNN 循环神经网络&#xff08;RNN&#xff09;&#xff1a;我们处理时序数据一般选择RNN 超参数的设置 为什么训练的模型的错误率居高不下 如何调测出最优的超参数 …

继电器实现直流电机正反转

有关继电器的使用方法&#xff0c;首先介绍了继电器的内部工作原理&#xff0c;然后介绍了两只继电器组成的正反转电路&#xff0c;以及用继电器实现直流电机正反转的具体方法&#xff0c;供大家学习参考。 继电器实现直流电机正反转 1、继电器内部原理 线圈断电时公共与常闭…

华贝甄选商业生态,成功背后的秘诀在这里

华贝甄选通过其独特的商业生态模式&#xff0c;不仅展示了对电子商城业务的深刻理解&#xff0c;更体现了对市场趋势和政策导向的敏锐把握。其S2B2C2B的用户交互模式&#xff0c;无疑是对传统商业模式的一次创新&#xff0c;它融合了供应链、企业和消费者之间的紧密联系&#x…

javaweb学习day4--《maven篇》maven的项目创建及其依赖管理详解(基于最新版本的idea)

一、前言 javaweb学习的第四天&#xff0c;不知道今天你们是否坚持下去了。今天学习到的是maven&#xff0c;温馨提示一下&#xff0c;idea中自带maven不用自行去下载了。前期的配置工作太过复杂了&#xff0c;小编感觉自己能力有限并不能将其讲的太清楚&#xff0c;还请大家在…

c小红的图上划分(牛客127)

题意&#xff1a; 有一个无向图&#xff0c;有 n 个点 m 条边&#xff0c;q 个询问&#xff0c;每次给出 L,R&#xff0c;求将图划分为至少 L 个连通块&#xff0c;最多 R个连通块的最大划分价值&#xff0c;若不可划分输出 "NO ANSWER"。 图的划分定义为将图划分为一…

如何将本地仓库中的文件推送到远程git服务器

第一步&#xff1a;进入所在项目&#xff0c;右击打开"Git Bash Here" 第二步&#xff1a;git config --global user.email "18351810763163.com" // 输入你的名称 第三步&#xff1a;git config --global user.name "chenliang-sam&quo…

如何将一个2D数组切分成多个块

要将一个2D数组切分成多个块&#xff0c;可以考虑使用以下几种方法&#xff0c;具体取决于如何定义块的划分规则和需求。如果你希望将2D数组均匀地切分成固定大小的小块&#xff0c;可以使用简单的循环和切片操作。 1、问题背景 Python 中, 如果有一个 raw 数据文件&#xff0…

SSM社区物业管理系统-计算机毕业设计源码91276

摘要 随着城市化进程的加快&#xff0c;居民社区的规模和数量不断增长&#xff0c;传统的人工管理方式已经无法满足管理需求。借助信息技术和互联网应用&#xff0c;社区物业管理系统可以实现物业管理信息的集中化、自动化和便捷化&#xff0c;提供全方位的管理和服务支持。社区…