找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于单片机的电子琴电路设计

[复制链接]
admin 发表于 2013-3-21 00:08:09 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
引言
        随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入,同时带动着工业、农业、商业、家电以及玩具的日新月异更新,极大地提高了电子电路及系统设计质量和效率。
       本文中所设计的具有存储功能的单片机电子琴是由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所示。
    20121107053511133263365.jpg
       通常电子琴所输入的音阶值都先存入变量数组中,演奏时才逐一取出来播放单音。程序中的变量使用的是内部存储器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时,字符显示最亮。
    20121107053511180143366.jpg
   
     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按键与音阶的对应表。
    20121107053511227013367.jpg
    20121107053511273883368.jpg 2 电子琴硬件类参数
   
     键盘(琴键):电子琴的键盘分为标准力度键盘、半配重键盘、全配重键盘、逐级配重式键盘(也叫渐层式锤感键盘)。
     标准力度键盘:拉簧结构键盘,这是从低端琴到中高端琴都有使用的,其优点是回键速度快(也就是按下琴键后,弹回来的速度),缺点是对于力度过渡和定位不精确。
     半配重键盘:一样是采用拉簧结构的键盘,只是比普通的拉簧键盘下多了配重铅 块,这种构造的键盘以前一直是中高端合成器才用的,现在有不少普及琴也有了该配置。相对于标准力度键盘的优点是力度定位更加精确。
     全配重键盘:这种键盘的构造是模仿钢琴的,模拟击弦机结构,每个琴键下方都有固定重量的配重铅块,所以称为全配重键盘。可让弹奏者有种“在弹钢琴的感觉”。优点是比较适合初期替代钢琴来学习演奏,对于各种演奏力度均有良好表现,缺点是不适合弹一些要求演奏速度快的曲子(回弹慢)。
     逐级配重键盘:和全配重键盘一样,也是模拟击弦机结构的,所不同之处就在于逐级配重键盘的琴键在低音区比较重,高音区就比较轻了,这是模仿大三角钢琴的手感。
       3 系统软件设计
       由于本系统可以产生各种频率的声音,所以可由喇叭发出“DO”、“RE”、“ME”……的音阶。系统中的定时器O工作于模式0,计时时长可根据所发音的频率而定,表2所列是各个音符所对应的频率值。而由频率值推得的定时器计数初值。则可由以下关系式求得:
    20121107053511320763369.jpg
   式中,f为频率值;t为方波的宽度,以μs表示;co为定时器所计数的次数,lo为计数初值的低字节,hi为计数初值的高字节。图5所示为主程序的工作流程。
   
   
   
    20121107053511367633370.jpg
    20121107053511398883371.jpg

   
       4 结束语
       通过改变按键式电子琴的控制程序,也可以设计不同类型的电子琴。还可以通过扩展RAM的方法增加内存容量,从而更大地发挥电子琴的存储功能。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 23:42 , Processed in 0.059856 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表