基于单片机的简易电子琴设计
2015-12-22彭建英彭光含曾志刚
彭建英, 彭光含, 曾志刚
基于单片机的简易电子琴设计
彭建英, 彭光含, 曾志刚
(湖南文理学院物理与电子科学学院, 湖南常德, 415000)
采用单片机AT89S52作为主控芯片, 用4 × 4键盘电路进行音调的选择, 音调值由LED数码管显示, 设计了一款简易电子琴, 实现了16个音调的发音和歌曲的播放。对音调的产生原理和节拍的控制进行了说明。最后利用PROTEUS和KEIL软件进行了联合仿真和调试, 较好地实现了16音调发音和歌曲播放的功能。
AT89S52; 电子琴; 音调; PROTEUS仿真
电子琴的制作方法主要有基于集成电路或可编程器件[1–2]和基于单片机[3–4]2类。本文利用单片机AT89S52设计了一款简易电子琴, 可以实现16音调的发音和歌曲的播放等功能。
1 系统总体设计方案
电子琴系统由AT89S52单片机、4 × 4矩阵键盘、选择按键、LED显示器等模块组成, 系统设计如图1所示。
图1 系统框图
2 系统硬件设计
键盘电路利用4 × 4行列式矩阵键盘产生2个8度的音阶, 0—7表示低8度do—xi, 8—F表示高8度的do—xi。P10—P13接行线, P14—P17接列线, 键盘电路如图2所示。
图2 键盘电路图
数码显示电路由P0口提供数码管的数据端, P0口作为输出端口需要接上拉电阻, 数码管选取共阳极数码管。数码管显示0—F, 对应键盘电路中的按键值。
扬声器电路如图3所示, 由P3.0产生信号, 经过电阻R3和R2分压电路, R2上的电压加在三极管的基极, 三极管的集电极加扬声器。当P3.0为低电平时, 三极管截止, 扬声器不发声; 当P3.0为高电平时, 三极管导通, 扬声器发声[5–8]。
图3 扬声器电路
3 系统软件设计
3.1 音阶频率的确定
在音乐理论中, 把一组音按音调高低的次序排列起来就成为音节, 也就是dou, ruai, mi, fa, sou, la, xi, dou。高音dou的频率正好是中音dou频率的2倍。以下是音调A阶、B阶、C阶、D阶的频率, 单位为Hz[9–10]。A: L1, 131; L2, 147; L3, 165; L4, 175; L5, 196; L6, 220; L7, 247。B: N1, 262; N2, 296; N3, 330; N4, 349; N5, 392; N6, 440; N7, 494。C: H1, 523; H2, 587; H3, 659; H4, 698; H5, 784; H6, 880; H7, 988。D: I1, 1 047; I2, 1 175; I3, 1 319; I4, 1 397; I5, 1 568; I6, 1 760; I7, 1 976。
3.2 单片机产生不同频率脉冲信号的原理
要产生音频脉冲, 只要计算出某一音频脉冲的周期, 然后将此周期除以2, 利用定时器定时该半周期的时间, 每当计时时间到后将输出脉冲取反, 就可得到这个音频信号的频率。
所求得的16个音调对应的定时器计数值建立的表为: TABLE DW
64 021, 64 103, 64 260, 64 400, 64 524, 64 580, 64 684, 64 777, 64 820, 64 896, 65 010, 65 030, 65 058, 65 110, 65 157, 65 178。TABLE后面的16个数是16个音调对应的定时器计数值。
表1 节拍时间表
3.3 节拍的延时的确定
如果一拍为0.4 s, 则1/4拍为0.1 s, 只要设定延时时间就可求得节拍的时间。求得1/4拍的延时时间, 其余的节拍是它的倍数, 表1为1/4和1/8节拍的时间设定。
3.4 软件流程
软件流程如图4所示, 其中KEY键断开播放歌曲, 闭合进行音调的显示和播放。
图4 软件流程图
4 系统仿真
系统仿真如图5所示, 由4 × 4键盘的16个按键对应16个音调, KEY键控制歌曲的播放。键盘按下1号键, 发do的音调, 在数码管上显示1。
图5 电子琴系统仿真图
5 结论
本设计是以AT89S52单片机为主控芯片设计了一款电子琴, 主要进行了4 × 4键盘电路、按键选择电路、LED数码显示和扬声器播放电路等硬件的设计, 软件部分对音调的产生原理和节拍的控制进行了说明。利用PROTEUS和KEIL软件进行了仿真, 结果表明系统设计可行。
参考文献:
[1] 陈华容. 基于FPGA电子琴的设计[J]. 器件与电路, 2006(2): 26–29.
[2] 闫娟. 基于Verilog HDL的简易电子琴设计[J]. 企业技术开发, 2011(13): 104.
[3] 张丹, 马淑云. 基于AT89C51单片机电子琴的设计[J]. 中国高新技术企业, 2010(36): 6–7.
[4] 周琛晖. 基于AT89S51单片机的电子琴设计[J]. 电脑知识与技术, 2009(27): 7 679–7 681.
[5] 胡建波. 微机原理与接口技术实验——基于Proteus仿真[M]. 北京: 机械工业出版社, 2011: 117–121.
[6] 楼然苗. 单片机课程设计指导[M]. 北京: 北京航空航天大学出版社, 2007: 1–10.
[7] 蓝和慧, 宁武. 全国大学生电子设计竞赛单片机应用技能精解[M]. 北京: 电子工业出版社, 2010: 32–33.
[8] 谢维成, 杨加国. 单片机原理与应用及C51程序设计[M]. 北京: 清华大学出版社, 2009: 192–196.
[9] 张建平, 朱伟娜. 单片机电子琴[J]. 无线电, 2008(5): 76–77.
[10] 李林涛, 陈明, 梁宜勇, 等. 基于单片机的简易电子琴录/放音系统[J]. 数字技术, 2010(2): 14–15.
(责任编校:刘刚毅)
Design of simple electronic piano based on single chip microcomputer
PengJianying, Peng Guanghan, Zeng Zhigang
(College of Physics and Electronics, Hunan University of Art and Science, Changde 415000, China)
A simple electronic piano is designed based on AT89S52 MCU, the tone is chosen by 4 × 4 keyboard circuit to and the tone value is displayed by the LED digital tube, which has the function of the 16 tones’s pronunciation and song’s play. At the same time, the tone realization principle and the control of the rhythm is described. Finally, the PROTEUS and KEIL softwares are used to simulate and debug, the functions of the 16 tones’s pronunciation and song’s play are achieved.
AT89S52; electronic piano; tone; PROTEUS simulation
10.3969/j.issn.1672–6146.2015.04.007
TP 273+.5
1672–6146(2015)04–0030–03
彭建英,1186198908@qq.com。
2015–07–11
湖南省教育厅项目(13C626)。