单片机论文参考:1、基于单片机的电子琴

2023-11-02

摘要

        随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机AT89C51为主控制器,附有矩阵键盘、LED显示管、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

关键词:AT89C51,矩阵键盘,LED显示管,扬声器。

1、引言

1.1 目的和意义

        单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
        电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
        本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有一个小的飞跃。

1.2 本系统主要研究内容

本系统设计制作一个可演奏的电子琴。综合应用了两项设计。

(1)键盘矩阵识别。即矩阵扫描,显示当前按键。

(2)不同频率音符播放。可以通过按键控制16种发音。

1.3 主控芯片介绍

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
        AT89S51具有如下特点:40个引脚(引脚图如图1-2所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。            

        此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

2 系统分析

2.1系统组成

本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:

2.2 系统工作原理

本系统扫描键盘矩阵、显示按键、扬声器发出对应音符。

4X4行列式键盘识别及显示原理如下:

        组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。
        编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。
        非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。
        键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。
    (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问

题可通过软件延时或硬件电路解决。
    (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。
    (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。
    (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。

        用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。

总体电路具体原理如下:

3 系统硬件设计

3.1 系统硬件总体设计

        本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:

3.2 LED显示模块设计

        LED显示模块如图2-2所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源

矩阵扫描显示当前按键模块如下:

3.3 按键控制蜂鸣器设计

矩阵扫描扬声器发出对应音符模块如下:

4 系统软件设计

4.1 系统软件总体设计

本系统的软件流程图如下:

4.2  LED控制设计

七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码

本系统按键显示模块软件流程图如下:

4.3 音频控制设计

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可

利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

    计数脉冲值与频率的关系式(如式2-1所示)是:

                         N=fi÷2÷fr                         2-1

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:

                        T=65536-N=65536-fi÷2÷fr

    例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

    T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr

    低音DO的T=65536-500000/262=63627

    中音DO的T=65536-500000/523=64580

    高音DO的T=65536-500000/1046=65059

本系统按键发出对应音符模块软件流程图如下:

5 系统使用说明

(1)Keil下编译,产生目标HEX文件,Proteus下Programme Files选择产生的HEX文件,点击运行开始模拟。

(2)开启本系统,数码管显示“-”。

(3)按任意键盘,数码管显示所按下的键盘数,扬声器发出相应的音符。

6 结论

通过这次课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本设计音频效果不是很好。不足之处有:1.可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度2.音量不可调。

我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了Protel99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。

参考文献

附录:代码清单

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机论文参考:1、基于单片机的电子琴 的相关文章

  • 【TCP协议】MTU和MSS详解

    需要注意的是 区别两种帧封装格式 802标准帧和以太网帧 1 在802标准定义的帧格式中 长度字段是指它后续数据的字节长度 但不包括C R C检验码 RFC 1042 IEEE 802 2 RFC 894 以太网 所以 以太网帧报头为目的地
  • SSM框架下,级联数据库表的访问查询

    SSM框架下 级联数据库表的访问查询 级联数据库表 如何快速通过子级查询父级 级联数据库表 在日常的软件设计中 多级联动的数据库表比较常见 如省市联动的数据 对这些数据按级分表的方式存储 以表示数据之间的包含关系 一般情况下 不会使用外键将
  • [NSSCTF] web之[HDCTF 2023]SearchMaster

    前言 靶机 HDCTF 2023 SearchMaster NSSCTF HDCTF 2023 SearchMaster 看到题目的提示 ovo but you can post me a data tip 你可以使用 POST请求发送da
  • 蛇形矩阵(C++)

    蛇形矩阵 C 文章目录 蛇形矩阵 C 一 题目 二 思路分析 三 代码实现 四 运行结果 一 题目 输入 3 3 6 2 输出 1 2 3 8 9 4 7 6 5 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33

随机推荐

  • 认识区块链,认知区块链

    周末参加了 唐胡子遇见区块链 线下交流会 除了第一次近距离接触区块链技术 也是直接面基了两位大咖 汪洋总和友强总 两位一直在技术社群中活跃 一直也未曾谋面 这次终于得见 感谢唐胡子 唐帮主提供的平台 结合本次交流会及个人在平时的一些学习 作
  • Swift3.0 -- get & set 方法

    1 Swift中的get set 方法 定义一个Person类 class Person NSObject getter setter 仅供演示 日常开发不用 var name String var name String get 返回成员
  • 针对urdf文件中出现中文注释导致报错的问题

    ubuntu18 04 melodic版本中一般使用python2 7环境 该环境下urdf文件中不能有中文注释出现 否则报错 UnicodeEncodeError ascii codec can t encode characters i
  • 【华为OD机试2023】二进制差异数 100% C++ Java Python

    华为OD机试2023 二进制差异数 100 C Java Python 前言 如果您在准备华为的面试 期间有想了解的可以私信我 我会尽可能帮您解答 也可以给您一些建议 本文解法非最优解 即非性能最优 不能保证通过率 Tips1 机试为ACM
  • Servlet的4种会话管理技术

    Servlet的会话管理技术主要有4种 URL重写 Cookie 隐藏表单域以及HttpSession 下面的例子通过一个动态验证码的实例详细说明了这4种技术的具体应用方式 为了简单起见 动态验证码没有采用图片生成技术 其原理和效果与本例中
  • 国际货运代理行业分析

    国际货运代理面临的困局 是一个时代的结束 https zhuanlan zhihu com p 68044703 国际货运代理行业的未来 https zhuanlan zhihu com p 86243754 国际货运代理的存在有何意义 h
  • Spring boot 2.7以上版本集成swagger

    pom xml 引入依赖
  • 使用轻量级 CDC debezium-server-databend 构建实时数据同步

    作者 韩山杰 Databend Cloud 研发工程师 hantmac Jeremy GitHub Debezium Server Databend 是一个基于 Debezium Engine 自研的轻量级 CDC 项目 用于实时捕获数据库
  • .NET 正则表达式

    using System Text RegularExpressions 使用正则表达式替换主题中的特殊符号 用以生成文件夹或者文件名 string title Regex Replace Subject lt gt string patt
  • MacOS set MarkText and PicGo

    MacOS set MarkText and PicGo 192 xxx picgo h Usage picgo options command Options v version output the version number d d
  • win7计算机脱机,win7浏览器解除脱机状态的简单方法(图文)

    大家都知道 脱机工作就是浏览器不使用网络工作 而是使用曾就浏览网页的时候已经下载下来的文件来工作 如果win7纯净版系统浏览器开启了脱机工作 打开陌生的网页的时候就会看到下面的这个错误提示 目前没有可以的Internet 连接 要查看已保存
  • 台式计算机怎么看有没有开独显,怎么看是集显还是独显?台式电脑应该怎么选择...

    怎么看是集显还是独显 台式电脑应该怎么选择 在装机的时候我们经常会听到集显和独显 很多小白也并不知道集显和独显的区别 甚至都不知道怎么看自己的电脑是独显还是集显 下面电脑配置网就来为大家科普一下关于集显和独显的相关问题 显卡是电脑主机不可缺
  • sklearn进行归一化

    利用神经网络预测数据时 突然就被一个以前从来没想过的问题困扰了 训练集与测试集应该分别进行归一化还是合并为一个大的矩阵统一进行归一化 如果放在一起 测试集会参与到模型的训练当中 感觉不对 如果分开 怎么对测试集进行归一化呢 咨询老师 得到了
  • rk3368 Android9.0 升级固件后,一直在recovery界面

    升级固件后 一直在recovery界面 Platform RK3368 OS Android 9 0 Kernel 4 4 194 文章目录 升级固件后 一直在recovery界面 1 串口日志 2 解决方法 1 串口日志 E Failed
  • 欧拉操作系统和linux区别

    centos和Linux区别 linux与centos的区别与联系 1 centos是基于linux建立的操作系统 2 linux属于内核系统 只有终端命令界面 无图形界面 3 centos同时拥有终端命令界面和图形界面 4 linux和c
  • Warning:(23, 8) java: lombok.javac.apt.LombokProcessor could not be initialized.

    项目背景 开发工具idea springboot项目 在使用 Data时 启动项目后控制台报以下信息 Warning 23 8 java lombok javac apt LombokProcessor could not be initi
  • 闭关之 C++ 并发编程笔记(二):同步、内存模型和原子操作

    目录 第4章 并发操作的同步 4 1 等待事件或等待其他条件 4 1 1 凭借条件变量等待条件成立 4 1 2 利用条件变量构建线程安全的队列 4 2 使用future等待一次性事件发生 4 2 1 从后台任务返回值 4 2 2 关联fut
  • 定时删除某目录下几天前的文件

    系统每天生成日志 为了保证系统正常运行 需要不断清理系统空间 就把这种事情交给批处理文件来吧 这种方法简单实用 你只要通过任务计划和批处理文件就能实现 1 任务计划 进入 控制面板 任务计划 然后根据提示选择要运行的程序 运行时间即可 2
  • 基于STM32F103 实现按键状态机

    文章目录 开发板 开发环境 前言 按键消抖 按键硬件原理图 软件延时实现思路 实验目的 代码 按键状态 按键信息 按键相关定义 按键底层配置及状态获取 总结 开发板 正点原子STM32F103ZET6战舰 开发环境 stm32cubeMX
  • 单片机论文参考:1、基于单片机的电子琴

    摘要 随着社会的发展进步 音乐逐渐成为我们生活中很重要的一部分 有人曾说喜欢音乐的人不会向恶 我们都会抽空欣赏世界名曲 作为对精神的洗礼 本论文设计一个基于单片机的简易电子琴 电子琴是现代电子科技与音乐结合的产物 是一种新型的键盘乐器 它在