基于单片机的微型电子琴建模

摘 要: 游戏是儿童的天性,同时也在孩子们的童年中扮演着“启蒙老师”的角色,对儿童的身也发展起到至关重要的作用。当前电子玩具在市场上供不应求,电子琴玩具就是一个非常好商机。电子琴经过上百年的发展,其设计生产技术已经趋于成熟。近几年儿童玩具的微型电子琴研究具有广阔的市场前景。该文通过单片机AT89C1发声原理制定微型电子琴系统设计方案。首先,通过编程控制单片机产生不同频率来获取音阶。其次,设计基于单片机的微型电子琴的整体模型。最后,对整个系统进行仿真测试和调试。系统运行过程中可以演奏不同乐曲以及模拟各种大自然音响,如生日快乐歌、两只老虎、雨滴声、叮咚门铃声等,取得了较好的控制效果。
关键词: 单片机 电子琴 Proteus 音阶
单 片 机 又 称 单 片 微 控 制 器 ( S i n g l e - C h i pMicrocomputer),就是将微处理器、存储器(程序存储器ROM或数据存储器RAM)、总线、定时器/计数器、输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上。由于它具有重量轻、体积小、功能强、可靠性高、性价比高等特点,因此几乎渗透到工业和日常生活的各个领域,如,数据传输与通讯、数据处理、仪表控制、实时控制以及程控玩具等。
随着人们对精神生活越来越重视,音乐渐渐进入了人们的生活。传统乐器是由机械振动产生的声音的,如空腔谐振、膜的振动、弦的振动等;而电子琴是通过控制脉冲信号的频率来产生音源。电子琴因其操作简单,携带方便,价格较低廉,且能逼真地模拟各种传统乐器的音色以及各种大自然音响,如钢琴、雨滴声、叮咚门铃声等,而深受音乐爱好者和消费者的喜欢。如今电子技术和电子计算机技术的快速发展,为电子乐器的产生和发展,提供了广阔的空间。特别是大规模集成电路技术的高度发展,使得电子琴在音域上超出钢琴、风琴、小提琴等传统乐音电子琴成为可能。可以说,电子琴是是音乐和计算机技术相结合的产物,既满足人们对精神生活的追求,又符合科技发展的规律。
该文设计一种微型电子琴模型及其演奏系统,采用单片机AT89C51作为控制芯片,并配以键盘和蜂鸣器实现该系统。其主要原理为:通过编程控制单片机的定时/计数器T0 产生各种不同频率的脉冲信号来驱动蜂鸣器发声,并通过控制蜂鸣器驱动信号的变化规律,即可实现的微型电子琴的演奏功能。

1 仿真环境

Proteus软件是英国著名的EDA工具(仿真软件),由LabCenter Electronics公司出版。是由PCB设计、实时交互仿真及电子应用系统设计组成的最先进的平台 ,集EDA工具软件的仿真功能和单片机及外围器件的仿真为一体。
从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
Proteus软件的功能特点为主要有下几点。
(1)不仅能仿真单片机的工作情况,还能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。因此,这种仿真弥补了实验和工程应用间脱节的矛盾
(2)同时支持模拟电路和数字电路仿真,可以利用系统提供的虚拟的输入输出器件或设备,如开关、按钮、键盘、发光二极管、数码管、LCD 显示器及图形仪表等直观实现信息的输入输出交互。
(3)支持第三方集成编译软件,如IAR、Keil和MPLAB等多种编译器,进行高级语言的源码级仿真和调试[6]
综上所述,Proteus软件具有开发周期短、设计成本低、实现效率好和竞争力强等特点,是目前比较好的仿真单片机及外围器件的工具,很大程度上为电子产品的开发提供了帮助。该控制系统采用Proteus8.7进行仿真。

2 控制系统建模与仿真

2.1 控制系统模型建立

通过分析微型电子琴控制系统的设计要求,硬件电路选用单片机AT89C51作为核心器件,建立单片机最小系统电路,然后设计出完整的控制系统原理框图及仿真模型。该控制系统是采用单片机AT89C51作为控制芯片,通过定时/计数器T0 产生各种不同频率的脉冲信号,来实现的微型电子琴的演奏功能,单片机时钟频率为12MHz。系统中通过按下S1~S8共8个按钮开关来演奏乐曲,单片机通过键盘扫描电路判断出是哪个按钮被按下,并通过查表得到相应按钮的频率,然后通过编程实现不同的音阶,最后通过扬声器播出音乐。

2.2 键盘扫描电路

键盘电路的原理图包括S1~S8共8个按钮开关,按钮-音阶对照关系为:按钮S1-S8分别对应中音Do、中音Re、中音Mi、中音Fa、中音So、中音La、中音Si、中音Si、高音Do。键盘扫描电路扫描方式有两种:
(1)常用的行扫描法;
(2)速度较快的线反转法。该系统采用行扫描法,需要完 的工作如下。
(1)采用软件延时,调用延时子程序实现去抖处理,并判断是否有键按下。
(2)根据反馈给单片机的信号确定是哪个按钮被按下,并发送给主程序,以实现相应的功能。

2.3 晶振电路

晶振电路的原理图包含一个晶振和两个电容。其中电容是帮助振荡器起振和微调振荡器的频率,一般情况下其值均为30pF。

2.4 复位电路

复位电路的原理图包括电源,0.1微法电容,100K电阻和复位按钮。

2.5 仿真测试

在Keil C51中编写微型电子琴的软件控制程序。首先,编写源程序(微型电子琴. c),对源程序进行调试、编译。直至编译通过后,在Keil C51中点击“option for target”按钮,打开相应对话框,选择“Outpu”选项卡,勾选“Creat HEXfile”选项,以生成可执行HEX文件(微型电子琴. hex)。其次,在Proteus中搭建微型电子琴控制系统仿真模型,并将Keil C51产生的HEX文件(微型电子琴. hex)下载到单片机中,选中 AT89C51芯片,单击左键从编辑属性窗口中增加“微型电子琴. hex”文件即可。最后,点击Proteus工具栏的“Debug”下拉菜单中的“Run simulation”按钮或点击左下角的快捷键,开始运行仿真系统。
运行过程中演奏不同乐曲以及模拟各种大自然音响,如生日快乐歌、两只老虎、雨滴声、叮咚门铃声等,取得了较好的控制效果。

3 结语

该文建立了一种基于单片机的微型电子琴模型,该微型电子琴控制系统包括AT89C51模块电路、键盘扫描模块电路、复位电路、晶振电路、电源模块电路等。采用KeilC51编写微型电子琴控制程序,并下载到单片机中,最后利用Proteus8.7软件对控制系统电路进行仿真测试和调试。通过演奏不同乐曲以及模拟各种大自然音响,表明该微型电子琴有较好的控制效果,实现了电子琴的简单、低成本的控制方法。

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

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

相关文章

python股票数据分析(Pandas)练习

需求: 使用pandas读取一个CSV文件,文件内容包括股票名称、价格和交易量。完成以下任务: 找出价格最高的股票; 计算总交易量; 绘制价格折线图。 代码实现: import pandas as pd import matplotlib.pyplot …

利用Python爬虫精准获取淘宝商品详情的深度解析

在数字化时代,数据的价值日益凸显,尤其是在电子商务领域。淘宝作为中国最大的电商平台之一,拥有海量的商品数据,对于研究市场趋势、分析消费者行为等具有重要意义。本文将详细介绍如何使用Python编写爬虫程序,精准获取…

K8s调度器扩展(scheduler)

1.K8S调度器 筛选插件扩展 为了熟悉 K8S调度器扩展步骤,目前只修改 筛选 插件 准备环境(到GitHub直接下载压缩包,然后解压,解压要在Linux系统下完成) 2. 编写调度器插件代码 在 Kubernetes 源代码目录下编写调度插件…

领养我的宠物:SpringBoot开发指南

第2章 开发环境与技术 本章节对开发宠物领养系统需要搭建的开发环境,还有宠物领养系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生,不仅仅是创造者感觉C语言在编…

Permute for Mac 媒体文件格式转换软件 安装教程【音视频图像文件转换,简单操作,轻松转换,提高效率】

Mac分享吧 文章目录 Permute for Mac 格式转换软件 效果图展示一、Permute 格式转换软件 Mac电脑版——v3.11.15⚠️注意事项:1️⃣:下载软件2️⃣:安装软件2.1 左侧安装包拖入右侧文件夹中,等待安装完成,运行软件2.2…

【Android】EventBus的使用及源码分析

文章目录 介绍优点基本用法线程模式POSTINGMAINMAIN_ORDEREDBACKGROUNDASYNC 黏性事件 源码注册getDefault()registerfindSubscriberMethods小结 postpostStickyunregister 介绍 优点 简化组件之间的通信 解耦事件发送者和接收者在 Activity、Fragment 和后台线程中表现良好避…

原子类、AtomicLong、AtomicReference、AtomicIntegerFieldUpdater、LongAdder

原子类 JDK提供的原子类,即Atomic*类有很多,大体可做如下分类: 形式类别举例Atomic*基本类型原子类AtomicInteger、AtomicLong、AtomicBooleanAtomic*Array数组类型原子类AtomicIntegerArray、AtomicLongArray、AtomicReferenceArrayAtomic…

【Electron学习笔记(三)】Electron的主进程和渲染进程

Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…

FFmpeg一些常用的命令

官网:https://ffmpeg.org/ 官网下载:https://ffmpeg.org/download.html 官网下载源码:https://www.ffmpeg.org/releases/ FFmpeg 实用命令 — FFmpeg 教程 文档 一、参数 1.1 FFmpeg 常用参数 参数说明备注-i filename指定输入文件&#…

JAVA篇08 —— String类

欢迎来到我的主页:【一只认真写代码的程序猿】 本篇文章收录于专栏【小小爪哇】 如果这篇文章对你有帮助,希望点赞收藏加关注啦~ 目录 1 String概述 1.1 String特性 1.2 String常用方法 2 StringBuffer类 2.1 String与StringBuffer互转 2.2 Stri…

Flink四大基石之Time (时间语义) 的使用详解

目录 一、引言 二、Time 的分类及 EventTime 的重要性 Time 分类详述 EventTime 重要性凸显 三、Watermark 机制详解 核心原理 Watermark能解决什么问题,如何解决的? Watermark图解原理 举例 总结 多并行度的水印触发 Watermark代码演示 需求 代码演示&#xff…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中,将TXT格式的文本文件内容转换为Excel格式(即CSV文件)是一项常见的数据处理任务,适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel(CSV&#x…

CENet及多模态情感计算实战

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

共享售卖机语音芯片方案选型:WTN6020引领智能化交互新风尚

在共享经济蓬勃发展的今天,共享售卖机作为便捷购物的新形式,正逐步渗透到人们生活的各个角落。为了提升用户体验,增强设备的智能化和互动性,增加共享售卖机的语音功能就显得尤为重要。 共享售卖机语音方案选型: WTN602…

云备份实战项目

文章目录 前言一、整体项目简介二、服务端环境及功能简介三、 客户端环境及功能简介四、服务端文件管理类的实现1. 获取文件大小,最后一次修改时间,最后一次访问时间,文件名称,以及文件内容的读写等功能2. 判断文件是否存在&#…

【Linux】死锁、读写锁、自旋锁

文章目录 1. 死锁1.1 概念1.2 死锁形成的四个必要条件1.3 避免死锁 2. 读者写者问题与读写锁2.1 读者写者问题2.2 读写锁的使用2.3 读写策略 3. 自旋锁3.1 概念3.2 原理3.3 自旋锁的使用3.4 优点与缺点 1. 死锁 1.1 概念 死锁是指在⼀组进程中的各个进程均占有不会释放的资源…

通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析

目录 一、序列标注(Sequence Tagging)二、命名实体识别(Named Entity Recognition,NER)**命名实体识别的作用****命名实体识别的常见实体类别** : 三、标签类型四、序列标注的三种常见方法1. **BIO&#xf…

设计模式学习[10]---迪米特法则+外观模式

文章目录 前言1. 迪米特法则2. 外观模式2.1 原理阐述2.2 举例说明 总结 前言 之前有写到过 依赖倒置原则,这篇博客中涉及到的迪米特法则和外观模式更像是这个依赖倒置原则的一个拓展。 设计模式的原则嘛,总归还是高内聚低耦合,下面就来阐述…

JUnit介绍:单元测试

1、什么是单元测试 单元测试是针对最小的功能单元编写测试代码(Java 程序最小的功能单元是方法)单元测试就是针对单个Java方法的测试。 2、为什么要使用单元测试 确保单个方法运行正常; 如果修改了代码,只需要确保其对应的单元…

用Transformers和FastAPI快速搭建后端算法api

用Transformers和FastAPI快速搭建后端算法api 如果你对自然语言处理 (NLP, Natural Language Processing) 感兴趣,想要了解ChatGPT是怎么来的,想要搭建自己的聊天机器人,想要做分类、翻译、摘要等各种NLP任务,Huggingface的Trans…