51-基于单片机的智能语音识别与处理系统设计
目录
一、主要功能
二、硬件资源
三、程序编程
四、实现现象
一、主要功能
基于51单片机,搞L298N驱动两个电机转动,然后搞LCD1602显示屏,弄个超声波传感器实时检测距离 通过LCD1602显示距离,如果距离小于阈值,则两个电机停止,蜂鸣器报警,灯光亮起。如果大于阈值,说明没有障碍物,电机正常运作。有两个按键,一个是自动按键,就是按下后靠超声波来避障。一个是手动按键,按下后,由电脑云端也就模拟语音来控制小车的运转,比如发现0x01,让小车停止运行,发送0x02,让小车正常运行。
二、硬件资源
基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。
三、程序编程
#include <REGX52.H>
#include<intrins.h>
#include<stdio.h>
#include "Delay.h"
#include "LCD1602.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit CS=P1^0; //51单片机引脚设置
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit Motor1_IN1 = P3^3; //电机IN1口
sbit Motor1_IN2 = P3^4;
sbit Motor2_IN1 = P1^0; //电机IN2口
sbit Motor2_IN2 = P1^1;sbit LED = P1^5; //LED灯定义
sbit key1 = P1^4;
sbit key2 = P1^6;
sbit BEEP = P1^3;
sbit Tr=P3^5;//触发信号
sbit Ec=P3^6;//回响信号uchar Recv_Buffer[4];
uint Voltage[]={'0','0','0','0'};
bit bdata IIC_ERROR;
static int flag = 0;
unsigned int distance;
static char Dat_rxd;
unsigned int Read_value(void);//读值函数void Delay10us(void);//10us延时函数void Time0_Init() //定时器初始化
{TMOD = 0x21;TH0 = 0x00;TL0 = 0x00;TR0 = 0;//先关闭定时器0
}void Time0_Int() interrupt 1 //中断程序
{TH0 = 0xfe; //重新赋值TL0 = 0x33;
}
unsigned int Read_value()
{uint result;Tr=1;//触发引脚发出11us的触发信号(至少10us)Delay10us();Tr=0;while(!Ec);//度过回响信号的低电平TR0=1;//开启定时器0while(Ec);//度过回响信号高电平TR0=0;//关闭定时器0result=((TH0*256+TL0)*0.034)/2; // 距离cm=(时间us * 速度cm/us)/2return result + 2; //+2修正补偿
}void Com0_Init(void)
{EA=1; //开总中断ES=1; //允许串口中断TMOD=0x21; //定时器T1,在方式3中断产生波特率SCON=0x50;TH1=0xfd; //波特率设置为9600(晶振12M)TL1=0xfd;TR1=1; //开定时器T1运行控制位// TI=1;
}void Com0(void) interrupt 4 using 1
{if(RI){Dat_rxd=SBUF; //串口接收Dat_rxd=Dat_rxd-0x30;RI=0;}
}
void main() //主函数
{ Tr=0; //出发引脚首先拉低LCD_Init(); //显示屏初始化LCD_ShowString(1,1,"Distance:"); //显示字符串DistanceTime0_Init(); //定时初始化Com0_Init();//串口初始化 LED = 0;BEEP = 0;while(1){distance = Read_value();//读值distance+=3;LCD_ShowNum(1,10,distance,3); //显示距离if(flag == 1){if(distance>=50){Motor1_IN1 = 1;Motor1_IN2 = 0;Motor2_IN1=1;Motor2_IN2=0;LED = 0; //LED灯熄灭BEEP = 0; //蜂鸣器关掉}else if(distance < 50) //超声波距离判断{Motor1_IN1 = 0;Motor1_IN2 = 0;Motor2_IN1 = 0;Motor2_IN2 = 0;LED = 1; //LED灯亮起BEEP = 1; //蜂鸣器响起}}if(flag == 2){if(Dat_rxd==0x01){ Motor1_IN1 = 0;Motor1_IN2 = 0;Motor2_IN1 = 0;Motor2_IN2 = 0;}else if(Dat_rxd==0x02){Motor1_IN1 = 1;Motor1_IN2 = 0;Motor2_IN1=1;Motor2_IN2=0;}else if(Dat_rxd==0x03){Motor1_IN1 = 1;Motor1_IN2 = 0;Motor2_IN1=0;Motor2_IN2=0;}else if(Dat_rxd==0x04){Motor1_IN1 = 0;Motor1_IN2 = 0;Motor2_IN1=1;Motor2_IN2=0;}}if(key1 == 0){Delay(100); //消除抖动if(key1 == 0){flag = 1;}}if(key2 == 0){Delay(100);//消除抖动if(key2 == 0){flag = 2;}}}}void Delay10us()
{TL0=0xF5;TH0=0xFF;TR0=1;while (TF0==0);TR0=0;TF0=0;
}
四、实现现象
具体动态效果看B站演示视频:
基于单片机的智能语音识别与处理系统设计_哔哩哔哩_bilibili
全部资料(源程序、仿真文件、安装包、演示视频):
点击进入百度网盘下载源代码资料
相关文章:
51-基于单片机的智能语音识别与处理系统设计
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,搞L298N驱动两个电机转动,然后搞LCD1602显示屏,弄个超声波传感器实时检测距离 通过LCD1602显示距离,如果距离小于阈值,则两…...
民安:助力提升城市安全水平
随着城市化进程的加速,平安城市的创建成为了社会治理的重要议题。为了解公众对平安城市创建的看法和评价,为提升城市安全水平提供参考,近期某市委托民安智库专业市场调查公司开展了一次安全感满意度调查。 本次调查围绕公共安全、个人安全、…...
类和对象--中--运算符重载、日期类实现(重要)
目录 1.运算符重载 2.日期类 1.运算符重载 2.1作用: 为了让C的新类型:类。也可以进行内置类型的运算符操作。所以就有了运算符重载。 2.2定义: 运算符重载是具有特殊名字的函数,他的名字是由operator和后⾯要定义的运算符共…...
个人回顾。
一鸡摸塔塔开! 2024/11/24 18:20:42 2019.6毕业。入职hg。到2020.6。入职一年。居住侨源山庄极小房间。月租一千。 一鸡摸塔塔开! 2024/11/24 18:21:15 期间也有保持学习。也玩游戏看小说。把大学缺失的补回来。 一鸡摸塔塔开! 2024/11/24 18:30:33 博客园随笔 学习笔记 100…...
前端面试题-1(详解事件循环)
1.了解浏览器的进程模型 1.什么是进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 2.什么是线程?…...
http的文件上传和下载原理
目录 一:上传 1:http请求格式 2:文件上传类型分析 1:md5秒传 2:分片上传 1. 什么是分片上传 2. 分片上传的场景 3:断点续传 1. 什么是断点续传 2. 应用场景 3. 实现断点续传的核心逻辑 4. 实现流…...
leetcode 212. 单词搜索 II
给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一…...
1、数据结构概述及顺序表(附:可以直接打印显示的源码)
《数据结构》概述: 数据结构:数据元素之间的关系(逻辑关系) 数据类型:高地电平 表示 1/0 要做大量的运算:诞生了基本数据类型:int double .....--》反应了数据的取值范围 (int字…...
Redis
概述 Redis(全称 REmote DIctionary Server)是一个开源的内存数据存储系统,它被广泛应用于缓存、消息队列、实时数据存储等场景。Redis 是一个基于内存的数据结构存储,可以作为数据库、缓存和消息中间件使用 优点 高性能…...
Android 13 编译Android Studio版本的Launcher3
Android 13 Aosp源码 源码版本Android Studio版本Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源)Launcher3IconLoaderLib(图...
【高等数学学习记录】微分中值定理
一、知识点 (一)罗尔定理 费马引理 设函数 f ( x ) f(x) f(x) 在点 x 0 x_0 x0 的某邻域 U ( x 0 ) U(x_0) U(x0) 内有定义,并且在 x 0 x_0 x0 处可导,如果对任意的 x ∈ U ( x 0 ) x\in U(x_0) x∈U(x0) ࿰…...
百度 文心一言 vs 阿里 通义千问 哪个好?
背景介绍: 在当前的人工智能领域,随着大模型技术的快速发展,市场上涌现出了众多的大规模语言模型。然而,由于缺乏统一且权威的评估标准,很多关于这些模型能力的文章往往基于主观测试或自行设定的排行榜来评价模型性能…...
wordpress使用Markdown语法写的文章图片显示不正常,记录一次折腾之旅
wordpress使用Markdown语法写的文章图片显示不正常,记录一次折腾之旅 当我把wordpress站点地址改成域名之后,wordpress上写的文章是使用Markdown语法进行写作的,但是Markdown引用的图片就会加载不出来,但如果把站点地址改成局域网的IP,所有的一切都显示正常了。除非我把图…...
MTK 展锐 高通 sensorhub架构
一、MTK平台 MTK框架可以分为两部分,AP和SCP。 AP是主芯片,SCP是协处理器,他们一起工作来处理sensor数据。 SCP 是用来处理sensor和audio相关功能和其他客制化需求的一个协处理理器,MTK SCP选择freeRTOS作为操作系统,…...
npm 最新国内淘宝镜像地址源 (旧版已不能用)
注意:原域名https://registry.npm.taobao.org/ 在 2022.06.30 号正式下线和停止 DNS 解析 最新地址: #最新地址 淘宝 NPM 镜像站喊你切换新域名啦! npm config set registry https://registry.npmmirror.com 查看镜像使用状态 npm config get registr…...
(超详细图文详情)Navicat 配置连接 Oracle
1、下载依赖文件 Oracle官网下载直链:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 夸克网盘下载(oracle19c版本):https://pan.quark.cn/s/5061e690debc 官网下载选择对应 Oracle 版…...
iOS 系统中使用 webView 打印 html 的打印边距问题
需求是使用系统提供的打印功能将HTML代码打印出来 1、使用CSS page 设置边距(iOS不生效) page {margin: 0;padding: 0;size: A6 portrait; }在 Android 中边距设置生效的,但是在 iOS 系统使用CSS page规则是不生效的 当从 iOS 系统打印网页…...
深度学习Pytorch中的模型保存与加载方法
深度学习:Pytorch中的模型保存与加载方法 在 PyTorch 中,模型的保存和加载对于模型的持久化和后续应用至关重要。这里详细介绍了两种主要方法:保存整个模型(包括架构和参数)和仅保存模型的状态字典。以下内容进一步完善了加载模型…...
(vue)启动项目报错The project seems to require pnpm but it‘s not installed
(vue)启动项目报错The project seems to require pnpm but it’s not installed 原因 该错误信息表明你的项目需要使用 pnpm 作为包管理工具,但系统中尚未安装 pnpm。 解决方法 【1】删除pnpm.lock 【2】npm install -g pnpm 之后再重新启动 yarn报错࿰…...
【Leetcode 每日一题】3250. 单调数组对的数目 I
问题背景 给你一个长度为 n n n 的 正 整数数组 n u m s nums nums。 如果两个 非负 整数数组 ( a r r 1 , a r r 2 ) (arr_1, arr_2) (arr1,arr2) 满足以下条件,我们称它们是 单调 数组对: 两个数组的长度都是 n n n。 a r r 1 arr_1 arr1 是…...
C++语法·叭
阁下何不乘风起,扶摇直上九万里。 qi fei 目录 内存管理 分区介绍 1.栈区: 2.内存映射段: 3.堆: 4.数据段: 5.代码段: 补充: C内存管理(简略回忆) C内存…...
ComfyUI | ComfyUI桌面版发布,支持winmac多平台体验,汉化共享等技巧!(内附安装包)
ComfyUI 桌面版正式推出,支持 Windows 与 macOS 等多平台,为 AI 绘画爱好者带来全新体验。其安装包便捷易用,开启了轻松上手之旅。汉化共享功能更是一大亮点,打破语言障碍,促进知识交流与传播。在操作上,它…...
探索Python词云库WordCloud的奥秘
文章目录 探索Python词云库WordCloud的奥秘1. 背景介绍:为何选择WordCloud?2. WordCloud库简介3. 安装WordCloud库4. 简单函数使用方法5. 应用场景示例6. 常见Bug及解决方案7. 总结 探索Python词云库WordCloud的奥秘 1. 背景介绍:为何选择Wo…...
用PHP抓取HTTPS资源时的常见问题与解决方法
概述 随着互联网的发展,HTTPS已经成为主流协议,网站的数据安全性得到了显著提升。然而,对于开发者来说,HTTPS的广泛应用也增加了数据抓取的复杂性。尤其是在PHP中实现HTTPS资源的抓取时,开发者可能会遇到以下问题&…...
spring知识点复习--针对面试的
前言 此内容是笔者通过B站的视频总结而来。原视频链接地址:6、Bean Factory与FactoryBean有什么区别_哔哩哔哩_bilibili 1.谈谈springIOC的理解,原理与实现 回答涉及到的点: 控制反转:是一种理论思想,原来的对象是由…...
Web前端学习_CSS盒子模型
content padding border margin <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>CSS盒子模型</title><style></style> </head> <body> <div class"demo&quo…...
ajax基础
一:express框架 在终端输入nodejs文件名 // 引入express const express require(express); //创建应用对象 const app express(); //创建路由规则 app.get(/,(request,response) > {//设置响应response.send(Hello Express); }); // 监听3000端口 app.lis…...
Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型
往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…...
强化学习导论 -章9 基于函数逼近的同轨策略预测
基于函数逼近的同轨策略预测 我们前面已经完成了基于表格的学习任务,基于表格的就是每个s是独立学习的,基本上不考虑泛化的能力,但是也对于每个任务状态学习的非常好。考虑到状态空间越来越大,我们必须考虑到函数逼近的情况。 1…...
Ubuntu环境中RocketMQ安装教程
参考教程 https://blog.csdn.net/weixin_56219549/article/details/126143231 1、安装JDK,并配置环境变量(略) 2、下载RocketMQ安装包 RocketMQ下载地址,选择二进制包下载 unzip rocketmq-all-5.0.0-ALPHA-bin-release.zip 使…...
Linux操作系统2-进程控制3(进程替换,exec相关函数和系统调用)
上篇文章:Linux操作系统2-进程控制2(进程等待,waitpid系统调用,阻塞与非阻塞等待)-CSDN博客 本篇代码Gitee仓库:Linux操作系统-进程的程序替换学习 d0f7bb4 橘子真甜/linux学习 - Gitee.com 本篇重点:进程替换 目录 …...
ThinkPHP Nginx 重写配置
目录 NGINX 重写 Admin项目隐藏入口文件,且禁用Admin模块&Admin.php 1️⃣配置仅用模块 2️⃣新增admin_xyz.php文件(自定义入口文件名),并绑定admin模块 3️⃣配置nginx 重写规则 NGINX 重写 在Nginx低版本中࿰…...
SpringBoot小知识(2):日志
日志是开发项目中非常重要的一个环节,它是程序员在检查程序运行的手段之一。 1.日志的基础操作 1.1 日志的作用 编程期调试代码运营期记录信息: * 记录日常运营重要信息(峰值流量、平均响应时长……) * 记录应用报错信息(错误堆栈) * 记录运维过程数据(…...
深度学习:利用GPU进行训练
深度学习:利用GPU进行训练 在现代深度学习框架中,如PyTorch,利用GPU加速模型训练是一种常见的做法。GPU(图形处理单元)由于其并行处理能力,特别适合执行大量的矩阵运算,这在训练神经网络时尤为…...
PHP 生成分享海报
因为用户端有多个平台,如果做分享海报生成,需要三端都来做,工作量比较大。 所以这个艰巨的任务就光荣的交给后端了。经过一定时间的研究和调试,最终圆满完成了任务,生成分享海报图片实现笔记如下。 目录 准备字体文件…...
A050-基于spring boot物流管理系统设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...
【docker】8. 镜像仓库实战
综合实战一:搭建一个 nginx 服务 Web 服务器 Web 服务器,一般是指“网站服务器”,是指驻留于互联网上某种类型计算机的程序。Web 服务器可以向 Web 浏览器等客户端提供文档,也可以放置网站文件,让全世界浏览…...
基于Springboot在线招投标系统【附源码】
基于Springboot在线招投标系统 效果如下: 系统主页面 系统登陆页面 招标人信息管理页面 招标信息管理页面 招标信息页面 评标信息页面 中标信息页面 研究背景 随着互联网技术的不断发展,传统的招投标方式已经无法满足现代企业的需求。传统的招投标流程…...
elasticsearch集群部署及加密通讯
原文地址:elasticsearch集群部署及加密通讯 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 第零步,准备 给各台设备配置虚拟主机名,这样集群不依赖IP,即使IP变动,改动也更方便。参考…...
yolov5的pt模型转化为rk3588的rknn,并在rk3588上调用api进行前向推理
当使用yolov5进行目标检测且进行边缘计算的场景时,要考虑性价比或者国产化的话,rk3588板子是个不错的选择。 本篇介绍yolov5的pytorch模型转化为rknn的流程,并展示在rk板子上如何调用相关api来使用转好的rknn模型进行前向推理。 pt转rknn流程…...
【机器学习】—PCA(主成分分析)
主成分分析(PCA)详解 引言 主成分分析(PCA)是一种统计方法,它可以通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些变量称为主成分。PCA经常用于降维,数据压缩,以…...
【Linux】vim
🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、Linux开发工具 🌟vim的基本概念 二、Linux编译器-gcc/g使用 🌟gcc如何完成(ESc - iso) 1、预处理(进行宏替换ÿ…...
virtualbox给Ubuntu22创建共享文件夹
1.在windows上的操作,创建共享文件夹Share 2.Ubuntu22上的操作,创建共享文件夹LinuxShare 3.在virtualbox虚拟机设置里,设置共享文件夹 共享文件夹路径:选择Windows系统中你需要共享的文件夹 共享文件夹名称:挂载至wi…...
SQLModel与FastAPI结合:构建用户增删改查接口
SQLModel简介 SQLModel是一个现代化的Python库,旨在简化与数据库的交互。它结合了Pydantic和SQLAlchemy的优势,使得定义数据模型、进行数据验证和与数据库交互变得更加直观和高效。SQLModel由FastAPI的创始人Sebastin Ramrez开发,专为与FastA…...
数据库日志
MySQL中有哪些日志 1,redo log重做日志 redo log是物理机日志,因为它记录的是对数据页的物理修改,而不是SQL语句。 作用是确保事务的持久性,redo log日志记录事务执行后的状态,用来恢复未写入 data file的已提交事务…...
力扣第 71 题 简化路径
一、题目描述 给定一个字符串 path,表示一个由目录名和斜杠 "/" 组成的绝对路径,请简化该路径,使其变为规范路径。 在 Unix 风格的文件系统中: 一个点 "." 表示当前目录本身;两个点 "..&q…...
Android 性能优化:内存优化(理论篇)
内存作为App程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。喜马直播随着近些年的业…...
Flink四大基石之窗口(Window)使用详解
目录 一、引言 二、为什么需要 Window 三、Window 的控制属性 窗口的长度(大小) 窗口的间隔 四、Flink 窗口应用代码结构 是否分组 Keyed Window --键控窗 Non-Keyed Window 核心操作流程 五、Window 的生命周期 分配阶段 触发计算 六、Wi…...
Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能
目录 Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能需求原型:相关数据:要导出的对象字段postman 格式导出对象VO 自定义批注拦截器业务代码: 拦截器代码解释:详细解释:格式优化: Easy Excel…...
PHP 去掉特殊不可见字符 “\u200e“
描述 最近在排查网站业务时,发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 …...