当前位置: 首页 > ds >正文

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)

注:成品使用演示、项目源码、项目文档在文章末尾网盘链接中自取

所用硬件:STM32F103C8T6、无源蜂鸣器、4×4矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口

stm32f103c8t6                           

面包板                                        

杜邦线                                        

USB转TTL串口模块                   

RGB三色灯                                

4×4矩阵键盘                              

无源蜂鸣器                                

OLED液晶屏(128*64点阵屏)

flash存储模块                            

所用软件:keil5

一、项目介绍

本项目是一个基于 STM32F10x 系列微控制器的音乐播放系统,集成了按键控制、音乐播放、OLED 屏幕显示和三色 LED 指示以及 Flash 存储等功能。所用硬件为:用户可以通过按键选择不同的操作模式,播放内置的多首歌曲,还能在播放过程中实时控制音乐的音色和音量,同时 OLED 屏幕会显示相应的操作提示和信息,三色 LED 则用于指示当前的工作模式。

二、功能介绍

(一)按键控制

  • 模式选择:通过键盘上的按键,用户可以在不同的操作模式之间进行切换,包括音乐选择模式和按键弹奏模式。
  • 声音控制:在播放音乐过程中,用户可以使用按键控制声音的音色和音量。
  • 歌曲切换:在音乐选择模式下,用户可以通过按键切换不同的内置歌曲进行播放。

(二)内置歌曲

系统内置了多首歌曲,每首歌曲都有对应的音符频率和持续时间数据。这些歌曲包括《生日快乐》《两只老虎》等经典曲目。

(三)屏幕显示

  • 操作提示:OLED 屏幕会显示操作提示信息,引导用户进行模式选择和歌曲选择。
  • 信息显示:在播放歌曲时,屏幕会显示相应的歌曲信息或提示内容。

(四)LED 指示

通过三色 LED(红、绿、蓝)的不同颜色组合,指示当前系统所处的工作模式,方便用户直观了解系统状态。

   (五)Flash存储

提供了 Flash 读写功能,可以将数据存储到 Flash 中,也可以从 Flash 中读取数据。这为后续扩展功能,如保存用户自定义歌曲或设置提供了可能。

三、模式选择

(一)音乐选择模式(MODE_PLAYING)

  • 进入方式:按下键盘上对应的按键(如按键 1),系统进入音乐选择模式,此时三色 LED 显示绿色。
  • 功能操作
    • OLED 屏幕显示歌曲选择提示信息。
    • 用户可以通过按键选择不同的内置歌曲进行播放。
    • 在播放过程中,用户可以按下特定按键(如按键 16)停止当前歌曲的播放。
    • 播放结束或用户停止播放后,系统自动返回默认模式,三色 LED 恢复红色显示。

(二)按键弹奏模式(MODE_PLAYING_KEYBOARD)

  • 进入方式:按下键盘上对应的按键(如按键 2),系统进入按键弹奏模式,此时三色 LED 显示蓝色。
  • 功能操作
    • OLED 屏幕显示弹奏提示信息。
    • 用户按下键盘上的按键(1 - 15),系统会播放对应的音符。
    • 按下按键 16,系统退出按键弹奏模式,返回默认模式,三色 LED 恢复红色显示。

四、引脚接线

1、GND引脚都接到GND即可

2、VCC引脚都接到3.3V即可

3、USB转TTL串口的5V引脚连接到单片机的5V;3.3V引脚不使用

4、USB转TTL串口

TXD~A10

RXD~ A9

5、OLED液晶屏

SCL~B7

SDA~B6

6、矩阵键盘

C1~PA0
C2~PA1    
C3~PA2    
C4~PA3    
R1~PA4    
R2~PA5    
R3~PA6    
R4~PA7

7、RGB三色灯

R~B3

G~B4

B~B5

8、蜂鸣器

I/O引脚~B0

9、FLASH模块

CS~A4

D0~A6

SLK~A5

D1~A7

五、项目所需硬件及大致介绍结束,闲言少叙,开启正题,链接在此

链接: https://pan.baidu.com/s/1x-E5vJe-R4OsvBmG6CMnmw?pwd=1111 提取码: 1111

家人们,觉得有帮助点个赞吧,自学一周做的第一个项目,你的点赞支持就是我继续学习更新的最大动力,谢谢!!!!

http://www.xdnf.cn/news/13172.html

相关文章:

  • el-switch文字内置
  • 配置 macOS 上的 Ruby 开发环境
  • stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
  • 加密通信 + 行为分析:运营商行业安全防御体系重构
  • glb/gltf格式批量转换fbx/obj,材质贴图在,批量转换stl/dae等其他格式,无需一个个打开
  • 国产化Excel处理组件Spire.XLS教程:用 Java 获取所有 Excel 工作表名称(图文详解)
  • 【动态规划 数论】P9759 [COCI 2022/2023 #3] Bomboni|普及+
  • 十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
  • 大模型智能体核心技术:CoT与ReAct深度解析
  • mcts蒙特卡洛模拟树思想
  • 脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
  • 【Rust TCP编程】Rust网络编程之TCP编程语法解析与应用实战
  • PyG测试GCN无线通信网络拓扑推理方法时间复杂度
  • 使用python进行图像处理—像素级操作与图像算术(4)
  • Ai自动补全编程工具:llama vscode
  • kafka-重平衡
  • ES6(ES2015)特性全解析
  • PostgreSQL 对 IPv6 的支持情况
  • C/Python/Go示例 | Socket Programing与RPC
  • MinHook 如何对.NET底层的 Win32函数 进行拦截(上)
  • UE5 学习系列(二)用户操作界面及介绍
  • Python爬虫(四):PyQuery 框架
  • HTML(一)
  • Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
  • centos开启samba服务
  • 可视化预警系统:如何为企业生产保驾护航?
  • DingDing机器人群消息推送
  • LeetCode - 199. 二叉树的右视图
  • FreeRTOS任务基础知识
  • 2025年人文教育与社会科学国际会议(ICHESS 2025)