83、基于STM32单片机录音机录音笔语音存储回放TF卡TFT屏系统设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

news2025/1/10 2:16:07

单片机主芯片选择方案
方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的4K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C51目前的售价比8031还低,市场供应也很充足。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需lOms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
方案二:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字节,本次设计足够,内部高达20K字节的SRAM。

比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STM32系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STM32为更合理的选择。

STM32STM32概述
          STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM32F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率为72MHz时,从闪存执行代码来看,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz[6]。
以STM32103C8T6单片机为处理器,该单片机为32位处理器。内核为Cortex-M3,其并行总线结构,嵌套中断向量控制单元,调试系统和它标准的存储映射。嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以为每个中断源赋予单独的优先级。采用NVIC可以达到非常快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态[7]。
  Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。
在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代码密度之间取得了平衡[5]。 专业嵌入式、单片机技术实训。而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。
  STM32微控制器的推出标志着ST公司在两条产品主线(低价位主线和高性能主线)上迈出了重大一步。STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。一般,STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CC8单元,支持8位字节和16位半字数据的CC8计算。在对SD或MMC等存储介质进行数据存取时相当有用。而且,STM32还包含了7个DMA通道。没恶搞通道都可以用来在设备与内存之间进行8位,16位,32位数据的传输。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。

一、硬件方案

硬件构成:本系统由STM32F103ZET6核心板、驱动音频编解码模块VS1053、音频放大器、按键电路制作的一款能够实际使用的MP3播放器产品。


 
二、设计功能

1、STM32F103ZET6核心板通过驱动音频编解码模块VS105实现对采集的音频文件进行保存。保存后的音频文件直接存入TF卡中,进行数据的存储,也可以驱动音频编解码模块播放刚刚录制的声音。

2、上电后直接进入录音功能,通过按键可以控制K1:开始录音/暂停录音、K2:保存录音、K3:设置麦克风增益、K4:播放刚刚录制的音频。

3、音频录制后,直接保存到TF卡中相应的目录中,格式时“WAV”音频格式电子文件。

4、如果你想保存录制的文件,将TF卡拔出插入读卡器连接电脑,将音频文件拷贝到电脑,可以用电脑播放该音频,方便保存。

三、实物图


 

 

 

LM386功放模块

LM386是美国国家半导体公司生产的音频功率放大器,是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。

一、LM386功放模块参数

(1)芯片:LM386。

(2)200倍增益电路设计

(3)板载喇叭接线座

(4)板载10K可调电阻,可以调节放大的音量

(5)板载电源指示灯

(6)芯片主要的引脚已经引出,可以直接输入音频信号

(7)工作电压:5~12V

(8)板子尺寸41(mm)x13(mm)

二、接口说明

(1)V  外接5-12V

(2)G  外接GND

(3)I  音频输入端

(4)O  音频输出端

四、原理图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。

 

五、PCB图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。


 

六、程序源码  

Keil 5是美国Keil Software公司出品的51和STM32系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。


 

 

 资料包括:

 

 

需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。

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

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

相关文章

Springboot 接口对接文件及对象

两个sprongboot项目实现文件对接,在传入文件同时传递其他对象信息,比如接口如下 一、创建文件 例如在D盘下创建1.txt,里边写入内容 2、传送方代码实现 import org.springframework.core.io.FileSystemResource; import org.springframework.…

保护您的密码安全:ADSelfService Plus防止密码被盗

在数字时代,密码的安全性至关重要。随着黑客攻击的不断增加,我们必须采取必要的措施来保护我们的密码免受盗窃和滥用。在这篇文章中,我们将介绍ADSelfService Plus,这是一种强大的密码管理和自助服务解决方案,可以帮助…

反向代理缓存服务器 Squid 、Nginx、CDN部署讲解

目录 一、Squid 反向代理1.1 概念1.2 工作机制1.3 搭建 二、 Nginx 反向代理缓存 一、Squid 反向代理 1.1 概念 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源&a…

三者ICG聚甲基菁染料:ICG COOH,ICG NHS,ICG NH2,具有良好的水溶性

一、ICG-COOH--CAS号:181934-09-8 ICG-COOH(吲哚菁绿羧酸)中末端羧酸在活化剂(如EDC或HATU)存在下可与伯胺基反应,形成稳定的酰胺键。ICG是一种带负电荷的聚甲基菁染料,具有良好的水溶性&#…

远程服务器ubuntu安装Jupyter Lab详细教程

不用打开电脑,不用启动anaconda,随时随地,公交地铁上使用手机输入网站就能启动jupyter notebook进行代码编写、数据分析,着实是很方便。在你成功白嫖一台服务器之后,可以按照下面的教程,手把手教你配置一个…

car music

正常车载U盘即可 车载不可用的U盘 车载需要改进遍历文件夹

【机器学习核心总结】什么是BP反向传播算法

什么是BP反向传播算法 神经网络是个好工具,但就像有的刀削铁如泥,有的却只能拿来切豆腐。 真正决定神经网络好不好用的是神经元之间连接的权重和神经元的阈值。 如何确定这些数字,大部分时间我们都在使用反向传播,也就是常说的B…

Opencv图片样本预处理

前因 最近想学学,OPENCV识别物体,但是处理图片正样本时过于繁琐, 遂自己开发了工具,来处理样本图片,基于QT,文末附下载链接 程序 功能 一共有两个功能,一个是处理负样本,一个处理…

UE 5.1.1 引擎源码下载 执行Setup报错解决

Upcoming Disruption of Service Impacting Unreal Engine Users on GitHub - Announcements - Epic Developer Community Forums 文件下载地址:https://github.com/EpicGames/UnrealEngine/blob/9763f4c8f3fb047be1a4b5fee2b080587c1307a1/Engine/Build/Commit.gi…

React之hooks

Hooks函数 1.useState():状态钩子。纯函数组件没有状态,用于为函数组件引入state状态, 并进行状态数据的读写操作。 const [state, setState] useState(initialValue); // state:初始的状态属性,指向状态当前值,类似…

字节测试8年,肝到50W就剩这份学习笔记了····

在字节工作了8年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你开发框架与平台的时候,熬到年薪50W也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记…

如果你的idea启动突然卡住,那么请看我这篇文章

# 情景 我的idea什么操作都没做就突然运行不起来了,其他的操作都可以,只要运行就卡住1、不要相信网上文章的修改本机hosts文件 2、不要相信网上文章清理idea的cache 3、不要相信网上文章修改编译配置# 操作 只有两张图,如下

测试用例设计简单吗?简单!但你有可能栽在这5道S级设计题上!

很多人不知道写测试用例有什么用,而仅仅是像工具人一样,在每次提测之前,把测试用例照着需求文档抄一遍,仿佛像是走个过场。 开发提测之后,就照着测试用例点点点,可能一天就走完用例了,开发代码…

antv/g2图表自定义tooltip展示

默认图 效果图 需要自定义tooltip标题以及根据是字段显示名称和数值 chart.interval().transform({ type: stackY }).data(dataList).encode(y, value).encode(color, name).tooltip({title: (d) >办理状态, //标题设置}).tooltip((d, // 每一个数据项index, // 索引data…

首家!阿里云完成数据可视化服务能力评估

2023 年 5 月 22 日,在中国信通院组织的首批数据可视化服务能力成熟度评估中,阿里云计算有限公司(以下简称“阿里云”)顺利完成了数据可视化服务能力成熟度评估的全部内容,成为首家完成此评估的企业。 标准介绍 中国…

想知道好用的音频翻译软件有哪些?

随着全球化进程的加速和语言交流需求的增长,音频翻译软件正日益受到关注和应用。这样的软件以其高效、准确的翻译能力以及广泛的应用场景赢得了青睐。音频翻译软件具备诸多优势,如通过语音输入实时转化为文字输出,提供了便捷的写作工具&#…

[每日一水] Latex Tikz foreach 循环嵌套

\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} \foreach[count\i] \x in {20,18,...,2}\foreach[count\j] \y in {20,18,...,2}\node at (\i,\j) {\x \y}; \end{tikzpicture} \end{document}\node at (\i,\j) {\x \y}; 就是写文本的意思

Linux——统信UOS(v20-1060a)部署.net core项目

部署.net core之前,请先确定已经安装了运行环境 Linux安装.net core环境 新建一个用于测试的 .net core web 项目 直接发布到文件夹,目标运行时选择 linux-64,这里根据你自己的操作系统的运行环境选择。 先点击完成,后面再设置参…

2023容器网络趋势:CNI网络插件逐渐普及,Kube-OVN受欢迎度持续攀升

今年,Kube-OVN 社区联合OSCHINA、云原生社区共同发起了《2022-2023容器网络使用情况调研》,得到了大批K8s/容器网络技术人员的关注。 本调研旨在更加直观地了解各行业企业容器网络的使用现状,以及Kube-OVN在社区用户中的使用情况,…

【机器学习核心总结】什么是CNN(卷积神经网络)

什么是卷积神经网络 卷积神经网络(Convolutional Neural Network),在一个个填充着数字的正方形小格子,它们被称为卷积核。 原始图片经过输入层后,会变为灰度或是RGB数值填充的矩阵 将卷积核与图片矩阵对齐,对应格子中的数字相乘后…