当前位置:首页 > 作文大全 > 【基于单片机的简易电子琴录/放音系统】51单片机简易电子琴
 

【基于单片机的简易电子琴录/放音系统】51单片机简易电子琴

发布时间:2019-02-21 04:13:49 影响了:

  [摘 要]以MCS-51单片机为核心研制了多功能电子琴录放音系统,该系统具有弹奏、放音与录音三种功能,用8×2矩阵键盘实现两个八度音符的输入;用LED数码管显示录音和放音的乐曲。此外,系统还创新性地利用LED阵列实现了乐谱音量和音调的显示。系统的多种功能结合使用可作为一种电子琴辅助学习工具,也可为单片机的学习提供一种综合运用的实例参考。
  [关键词]MCS-51单片机 电子琴 录音与存储 乐谱显示
  [中图分类号]TP368.1[文献标识码]A[文章编号]1007-9416(2010)02-0014-02
  
  Mcu-based Electronic Organ System with Record/playback Function
  Li Lintao2 Chen Ming2 Liang Yiyong1 Wang Xiaoping1
  (1.Department of Optical Engineering, Zhejiang University,Hangzhou 310027,China;
  2.Department of Control Science and Engineering, Zhejiang University, Hangzhou 310027,China.)
  [Abstract]This paper introduces a multi-functional electronic organ system based on MCS-51 MCU, which has the function of playback, record and play. In the system, two octaves can be inputted using a 8×2 matrix keyboard. And the name of music which is playing or recording can be displayed on the LED nixie tube. Besides, the volume and tone of music score can also be displayed by the creative use of LED array. By the combined use of multiple functions mentioned above, the system can be used as an auxiliary tool in electronic organ learning, as well as a reference example of MCU synthetical application in MCU learning.
  [Key words]MCS-51 microcontroller,electronic organ,record and save,music score display
  
  1 引言
  近年来,电子琴在国内越来越受到广大青少年的喜爱,关于将微处理机与电子琴结合的文献也越来越多[1-3]。有些文献是专门讨论如何制作电子琴的,方法很多,主要有两类:基于集成电路或可编程器件的[4-5],还有是基于单片机的“软”电子琴[6-9]。本文作者也通过目前应用广泛的单片机技术,以一种较为简便的方式实现了电子琴的主要功能,但与其它单片机电子琴不同的是,在功能上进行了扩展,此款电子琴录放音系统,不但具有了电子琴基本的弹奏功能,还实现了对弹奏乐曲的录制与播放功能,此外借助LED阵列显示的乐谱显示功能,使其成为了一款功能全面的电子琴学习平台。
  2 系统整体结构
  此系统主要拥有三大部分,以MCS-51单片机为核心,辅以键盘输入设备和音频输出设备。硬件资源上,单片机是整套系统的微处理器,负责管理I/O设备。输入设备包括控制键、8×2矩阵键盘和HD7279芯片。HD7279是具有串行接口,可以同时驱动最多8个数码管和控制最多64键矩阵键盘的智能芯片。本系统中的16键矩阵键盘连接于HD7279之上,通过HD7279与单片机进行串行通信。控制键listen和over则与单片机直接连接,用于选择系统的具体功能。输出设备包括蜂鸣器、8×16双色LED阵列和8位数码管。蜂鸣器和LED阵列直接从单片机获取信号,分别负责产生乐音和显示简谱。这里利用HD7279控制数码管。芯片从串行总线上接受数据,解码后驱动8位数码管。系统的整体组成见图1。
  3 系统硬件设计
  本系统的8×2矩阵键盘是此电子琴的音符输入键盘,共有16个按键,所以此系统可以产生两个八度的音阶。实际工作过程为HD7279监视键盘情况,若有按键按下,芯片的KEY引脚从低电平跳变成高电平,通知单片机有数据需要输入。单片机向HD7279发出查询键值指令,HD7279则返回该按键的编码值,单片机从而间接获得键盘上的键值。
  单片机以HD7279为中间桥梁,接收到按键编码值后,对此数据进行处理,输出一电信号到蜂鸣器,驱动蜂鸣器发出声音。此电信号为经过调制的方波信号,频率不同,蜂鸣器发出的音调就不同。方波信号的频率与某一音符的频率相同,蜂鸣器受此信号驱动,就产生此音符对应的音高。
  简而言之,单片机的核心功能是根据不同的键盘键值,查找程序中存储的表格,获得对应的频率数值,从而输出一定频率的方波。如若需要录制音乐,则单片机会把按键编码值和按键持续时间保存到片外RAM。本系统使用单片机的定时器/计数器和中断功能来完成这一任务。
  MCS-51单片机有两个定时器/计数器。系统使用定时器/计数器0产生方波。定时器/计数器1则用于记录音符的时长,即按键持续的时间。定时器/计数器0的工作方式是1,即为16位定时器/计数器。16位定时器/计数器被赋予一个初值,并开始记数。当记数溢出,产生中断后,中断服务程序将与蜂鸣器连接的引脚电平置反,并且对定时器/计数器再赋初值,重新开始记数。之后产生中断,引脚电平再被置反,如此周而复始,在引脚上就能产生一个频率与定时初值有关的方波信号。而定时初值与音符频率有关,相应频率的确定,可参照12平均律,相邻两个半音A和B的频率之间的关系为:。
  定时器/计数器1的作用为记录音符的时长,工作方式为1,即16位定时器/计数器。在12MHz的晶体振荡器下,单片机的机器周期为1μs。本系统中,定时器/计数器1以10ms的时长为1定时单位,记录音符持续了多少个定时单位,如此,使用一个unsigned char型变量既可以记录2.55s的时长,这在用于记录一般弹奏的音符时是足够的。而若一个音符的时长超过2.55s,则程序将在数组该位记满时强制跳转,并复制此音符信息至数组下一位来记录该音符剩余的时长,实现一种“无缝连接”。如此以来,在存储空间允许的情况下,系统允许记录任意时长的音符。)。音乐是由音符和时长组成,单片机将一连串音符和时长的时间序列以两组对应的数组的形式保存起来,也就是保存了一段音乐。
  此电子琴还拥有两个控制键,listen和over,用于选择系统功能,控制程序的流程。除此之外,8位数码管显示程序的基本信息,而LED阵列则在74HC595芯片的控制下,动态显示乐谱。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   4 系统软件设计
  此电子琴的设计,使用片外RAM作为音乐文件保存介质。文件结构为两个二维数组。这里将音乐所包含的信息分成音符与时长两部分,并分别保存在相应的数组中。
  音符数组为unsigned char yinfu[SONGNUM][LENGTH];
  时长数组为unsigned char shichang[SONGNUM][LENGTH];
  其中,两数组的第一维用于表示乐曲对应的存储扇区,用于播放时选择某一乐曲,第二维则记录实际的音符与时长信息。在播放与录音时,系统规定两个数组的每一字节都是成对出现的,即一个字节的音符数据对应一个字节的时长数据。
  系统程序的主函数是main(),初始化时把音乐文件的保存信息显示到数码管上。在确定某一功能之前,它一直等待键盘的输入信息。如果键值符合要求,程序就转到具体的一个功能函数中。
  程序中最重要的是三个功能函数,分别为song()、play()和rec(),分别完成放音、弹奏和录音功能。
  由于系统功能较多,为便于操作并让系统更具人性化,系统软件中设计有一套严密的运行流程并配有相应的状态指示(通过HD7279驱动8位动态数码管实现)。如此,在使用时可方便选择任意一种功能,并允许用户在任一功能的执行过程中退出并返回主菜单,进行其他功能的操作。而用于状态指示的8位数码管根据使用者的操作,实时显示系统当前的状态,软件中已对非法操作进行了处理,相应的操作将被予以提示,而系统则依情况选择返回主菜单或忽视非法操作。图2给出了实拍的数码管图,各位的意义(由左至右)如下:
  *前四位:0~~3,四个存储扇区状态显示,0表示扇区为空,1表示扇区中存有乐曲,当前状态表示0和1号扇区为空,可用于录音存储,2和3号扇区中则已存有乐曲。
  *第五位:当前运行功能显示,当前为3号,录音功能。
  *第六位:所选扇区代号,放音时表示播放的乐曲所在扇区,录音时表示将录制的乐曲存放的扇区。
  *第七位未使用。
  *第八位:系统状态显示,1表示正常运行,0则表示有非法操作,系统处于不正常状态。
  此外,我们还特别使用LED阵列设计了乐谱音符与时长的显示功能,在系统的三种功能进行中,当蜂鸣器发声时,将在LED阵列上显示相应音符的简谱值,并通过对应的动态亮条的持续时间来表示音符的时长,从而直观的显示了当前乐曲的乐谱。
  这样,电子琴具备了一定的弹奏比较功能:首先利用播放乐曲的功能,通过观察LED阵列的显示来了解歌曲的乐谱,再通过弹奏功能进行模仿,或者直接通过录音功能存储弹奏的乐曲,与已有乐曲进行比较,从中发现差异。
  5 测试结果与分析
  此系统的测试平台为浙江大学光电系微机原理与接口技术实验室提供的ZDGDTH-1型80C51/C8051/嵌入式(ARM9)/CPLD实验箱。实验箱涵盖了上述的所有硬件资源。测试中,程序运行正常,系统完全实现了设计中的三个功能。
  系统上电后,经过程序延时和初始化,进入主程序main(),数码管随即显示程序的状态和音乐文件保存情况。此时键盘成为功能选择器,若按下正确的按键,程序随即进入功能函数。这里以录音功能为例说明。程序进入rec()函数后,选择存储扇区。此后键盘键位被按下时,蜂鸣器立刻发出相应频率的声音,而且LED阵列显示对应的音符简谱。此时程序还将音符和时长信息保存到音乐文件中。弹奏一段时间后,listen控制键置位,系统随即循环播放刚被录制的音乐。若over控制键置位,程序退出功能函数,返回主程序。此时,数码管存储扇区选择位中的事先选定位从0变1,表示该扇区已保存音乐,即存储了先前弹奏的音乐。在主程序中,使用者即可再次选择任一功能,进行相应操作。
  6 结语
  此款电子琴录放音系统,使用方便,可靠性高。系统除实现了一般的模拟电子琴所具有的实时弹奏功能外,还创新性地加入了放音与录音功能,使其实际上成为了一个简易的多媒体平台。通过灵活使用系统的多种功能。此外,本系统的开发使用了单片机课程的大部分内容,涵盖了中断、定时器、串口通信、动态显示等多个知识点,提供了一个综合运用课程内容的研究实例,具有一定的参考价值。最后,系统的I/O设备的增强还有很大上升空间,利用系统已有的核心再加入各种高级的I/O设备可使系统成为一款具有创新功能的实际产品,具有一定市场价值。
  
  [参考文献]
  [1] 潘晓利,陈学煌,祝祥迪.基于单片机的MIDI电子琴的设计[J].电子测量技术,2008(6).
  [2] 李康林.单片机控制多台电子琴演奏教学系统[J].长沙大学学报,2006(5).
  [3] 薛凤鸣.电子琴电声性能微机辅助分析测试系统[J].电声技术,1992(2).
  [4] 黄鑫,马善农,赵永科.基于CPLD的电子琴研究与设计[J].科技广场,2007(5).
  [5] 王毅,罗振元.自制多功能电子琴[J].电气时代,1989(1).
  [6] 张建平,朱伟娜.单片机电子琴[J].无线电,2008(5).
  [7] 刘建超.用单片机制作简易电子琴[J].电子制作,2005(7).
  [8] 杜丽芳.用单片机设计的电子琴[J].电子世界,2005(7).
  [9] 王兵.用单片机设计微型电子琴[J].电子工程师,2002(3).
  [通讯作者、指导教师]
  梁宜勇(1969-),男,浙江象山,博士,副教授,主要从事微机原理课程的教学和光电工程领域的科学研究。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3