基于单片机的电子琴的电路设计

发布者:美丽花朵最新更新时间:2012-10-15 来源: 21ic 关键字:单片机  电子琴  STC89C51 手机看文章 扫描二维码
随时随地手机看文章

    引言

    随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入,同时带动着工业、农业、商业、家电以及玩具的日新月异更新,极大地提高了电子电路及系统设计质量和效率。

    本文中所设计的具有存储功能的单片机电子琴是由STC89C51单片机、小键盘、LCD以及音频功放电路和扬声器组成的。利用该电子琴电路,用户可以自由地输入音符,利用单片机产生不同频率来获得我们要求的音阶,使扬声器发出悦耳的音乐,最终可随意弹奏想要表达的音乐。同时详细论述了该系统的设计过程及关键技术。

    1 系统硬件组成

    电子琴的控制电路分为单片机STC89C51、工作指示LED、LCD显示器、按键输入、喇叭接口等几部分。其硬件电路结构框图如图1所示。


    1.1 单片机STC89C51简介

    STC单片机是一款增强型5l单片机,完全兼容MCS-51。STC89C51可以代替AT89C51,而且功能更强,速度更快,寿命更长,价格更低。该单片机具有40个引脚,采用双列直插DIP-40封装。STC89C51可以完成ISP在线编程功能,而AT89C51则不能。因此,将AT89C51中的程序直接烧录到STC89C51中后,STC89C5l就可以代替AT89C51直接工作。STC推出的系列51单片机芯片全面兼容其它51单片机。STC89C51内部有E2PROM,可以在程序中修改,而且断电不丢失数据。此外,还增加了两级中断优先级等等,STC89系列单片机的基本特性如图2所示。

    通常电子琴所输入的音阶值都先存入变量数组中,演奏时才逐一取出来播放单音。程序中的变量使用的是内部存储器RAM,范围为空间30H~7FH,因此,其程序内存规划是:RAM地址30H~70H存放音阶值,最大内存空间为64字节;RAM地址71H~7FH存放程序其他变量。程序执行后,工作指示LED闪动,表示程序开始执行。当按下键盘组中的相对按键时,压电喇叭会发出相对音阶单音,全系统共有2个8度音阶,DO~SI,HI DO~HI SI,14个音阶,所输入的单音会存入89C5l内,至多可以输入64个单音,并可以一起演奏出来,同时还有清除存储功能,可将原数据清除后再重新输入。

    1.2 LCD硬件接口

    本设计所用LCD的引脚如图3所示,其中,DO~D7为双向数据总线,LCD数据读写方式可以分为8位及4位两种。若以8位数据进行读写,则DO~D7皆有效,若以4位方式进行读写,则只用到D7~D4。RS为寄存器选择控制线,当RS为O且做写入操作时,可以写指令寄存器;若RS为l,则用于读写数据寄存器。P/W为LCD读写控制线,R/W为0,LCD执行写作,R/W为1时,则做读操作。VO为亮度调整电压输入控制引脚,输入0V时,字符显示最亮。


    LCD可以实时显示目前演奏的单音码,可以实时显示所存储的单音计数。按键9是清除键,可将存储的单音计数清0;按键8是放音键,可将内存中的单音逐一演奏出来,演奏中可以按K4键来中断。本设计使用一般的LCD显示器来显示音乐演奏的消息及单音码。按下键盘组按键,喇叭就会发出相对音阶。将这些音阶存储起来然后放音,就可成为自动演奏电子琴。

    1.3 键盘扫描

  键盘上的每一个键都有两个唯一的数值进行标志。为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放。当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个唯一的数值,我们把这些数值都保存在一张表里面,到时候通过查表就可以知道是哪一个键被敲击,并且可以知道是它是被按下还是被释放了。

    整个4x4键盘按键的分配及配置原理图如图4所示。图4中为16键的控制电路,使用AT89S51端口2的8条I/O线做16个按键的键盘扫描,并由P2.0~P2.3送出扫描信号,而由P2.4~P2.7读取按键数据返回码。表l所列是4x4按键与音阶的对应表。

[page]

2 电子琴硬件类参数

  键盘(琴键):电子琴的键盘分为标准力度键盘、半配重键盘、全配重键盘、逐级配重式键盘(也叫渐层式锤感键盘)。

  标准力度键盘:拉簧结构键盘,这是从低端琴到中高端琴都有使用的,其优点是回键速度快(也就是按下琴键后,弹回来的速度),缺点是对于力度过渡和定位不精确。

  半配重键盘:一样是采用拉簧结构的键盘,只是比普通的拉簧键盘下多了配重铅 块,这种构造的键盘以前一直是中高端合成器才用的,现在有不少普及琴也有了该配置。相对于标准力度键盘的优点是力度定位更加精确。

  全配重键盘:这种键盘的构造是模仿钢琴的,模拟击弦机结构,每个琴键下方都有固定重量的配重铅块,所以称为全配重键盘。可让弹奏者有种“在弹钢琴的感觉”。优点是比较适合初期替代钢琴来学习演奏,对于各种演奏力度均有良好表现,缺点是不适合弹一些要求演奏速度快的曲子(回弹慢)。

  逐级配重键盘:和全配重键盘一样,也是模拟击弦机结构的,所不同之处就在于逐级配重键盘的琴键在低音区比较重,高音区就比较轻了,这是模仿大三角钢琴的手感。

    3 系统软件设计

    由于本系统可以产生各种频率的声音,所以可由喇叭发出“DO”、“RE”、“ME”……的音阶。系统中的定时器O工作于模式0,计时时长可根据所发音的频率而定,表2所列是各个音符所对应的频率值。而由频率值推得的定时器计数初值。则可由以下关系式求得:

式中,f为频率值;t为方波的宽度,以μs表示;co为定时器所计数的次数,lo为计数初值的低字节,hi为计数初值的高字节。图5所示为主程序的工作流程。

 

 

    4 结束语

    通过改变按键式电子琴的控制程序,也可以设计不同类型的电子琴。还可以通过扩展RAM的方法增加内存容量,从而更大地发挥电子琴的存储功能。

关键字:单片机  电子琴  STC89C51 引用地址:基于单片机的电子琴的电路设计

上一篇:一种汇编查表程序
下一篇:基于单片机的智能家居安防系统方案设计

推荐阅读最新更新时间:2024-03-16 13:10

36-基于51单片机的LED彩灯控制器设计
具体实现功能 具体功能: (1)至少10个发光管4种花样自动变换,循环往复; (2)彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍; (3)系统复位清零开关。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16
[单片机]
36-基于51<font color='red'>单片机</font>的LED彩灯控制器设计
MSP430系列单片机(1)——基本知识
1.单片机 2.初识MSP430
[单片机]
MSP430系列<font color='red'>单片机</font>(1)——基本知识
单片机动态扫描接口及程序设计
    什么叫动态扫描显示   在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。   在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,
[嵌入式]
安森美的安全蓝牙低功耗5.2微控制器RSL15获创新产品奖
安森美的安全蓝牙低功耗5.2微控制器RSL15获创新产品奖 该奖项认可RSL15以创新的智能感知功能增强安全性和处理能力 中国深圳-2022年11月15日-领先于智能电源和智能感知技术的安森美(onsemi,)宣布其支持蓝牙®低功耗(以下简称“BLE”)无线联接的安全RSL15无线微控制器(MCU)凭借先进的系统级安全功能和领先的高能效获“物联之星——最佳创新产品奖”。 物联之星年度评选已经举办了14年,旨在促进物联网产业发展,同时表彰领先企业和卓越的产品创新。该奖项由数百名业内人士,从芯片制造商、传感器公司、无线通信企业到集成商、运营商和终端用户,根据技术创新、高市场应用价值和市场空间进行评判。 RSL15具有业
[嵌入式]
基于51单片机六位整数计算器源程序
#include reg52.h #define uint unsigned int #define uchar unsigned char sbit beep=P2^3; //beep用于控制蜂鸣器(每按一次键就为0并且叫一下) sbit dula=P2^6; //dula通过控制锁存器1来控制数码管段选 sbit wela=P2^7; //wela通过控制锁存器2来控制数码管位选 uchar code table ={ //数码管的显示编码 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x79}; uchar fuha
[单片机]
嵌入式学习笔记5——51单片机之步进电机
1. 步进电机简介:在工业控制系统中,通常要控制机械部件的平移和转动,这些机械部件的驱动大都采用交流电机、直流电机和步进电机。其中,步进电机最适合数字控制,因此它在数控机床,家用电器等中得到广泛应用。 2. 步进电机的特点:(1)一般电机都是连续旋转的,而步进电机却是一步一步地转动,故称之为步进电机,每次能转动的最小角度称为步距角(1-2相励磁方式,即A-A、B-B-B、C-C-C、D-D-D、A-A)。(2)每当步进电机的驱动器收到一个驱动脉冲信号后,步进电机将会按照设定的方向转动一个固定的角度(有的步进电机可以直接输出线位移,称为直线电动机)。(3)对于角位移步进电机,可通过控制脉冲的个数控制角位移量,从而准确定位。(4)可通过
[单片机]
嵌入式学习笔记5——51<font color='red'>单片机</font>之步进电机
关于AVR单片机的看门狗
看门狗这个东西以前没接触过 理解它费了一点周折。 使用它的复位MCU的功能实现LED的闪烁。 准备工作是设定WDT的超时时间(如1s) 首先使能看门狗(wdt_enable),然后喂狗(wdt_reset),再延时灯的闪烁时间(delay=0.5s),使灯亮(SET_LED);再用一个恰当的比较长的延时(delay 0.5s)饿死狗。之后MCU重启,如此往复。 (1)延时可以调用库函数,还可以使用定时器; (2)SET_LED; while(1) wdt_reset(); 表示 不断喂狗,从而不让MCU重启,使灯一直亮着。程序中使用这些代码的用途待考证,可以给作者发email 嘿嘿~ (3)软件看门狗和硬件看门
[单片机]
键盘接口在单片机系统与PC机通信中的应用
    摘要: 提出一种全新的利用键盘接口实现单片机系统和PC机通信的方案,介绍了键盘与PC机通信的原理,并成功地应用于实际系统。该方案为外部单片机系统与PC机通信提供了一条有效的途径。     关键词: 键盘接口 单片机系统 时序 命令字 在工控系统中,单片机应用系统与PC机之间的通信主要是采用异步串行通信方式,通过RS-232C、RS-422、RS-423或RS-499标准接口实现。这引起通信方式都各自规定了自己的电气标准,都不能直接满足 TTL电平的传送要求。为了通过这些标准接口通信,必须在单片机应用系统中加入电平转换芯片,以实现TTL电平向标准接口电平的转换 。 键盘接口是PC机的固有接
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved