基于AT89C51的简易电子琴设计与实现

2019-08-10 06:36彭光泽胡正江卢涵宇
电脑知识与技术 2019年17期
关键词:电子琴单片机

彭光泽 胡正江 卢涵宇

摘要:随着计算机和通信技术的发展,电子琴等娱乐乐器走入千家万户。本系统采用STC89C51单片机,设计矩阵式键盘模块、LED显示管模块、扬声器模块、主程序部分、显示程序部分、按键检测部分等模块。 经系统仿真,实现了16个独立按键分别代表16个不同的音符,有高有低等功能。本设计电路耦合性好,易操作,成本低,实用性强,便于携带。

关键词: 单片机;矩阵式键盘;LED显示;电子琴

中图分类号: TP208        文献标识码:A

文章编号:1009-3044(2019)17-0235-02

开放科学(资源服务)标识码(OSID):

Abstract: With the development of computer and communication technology, electronic piano and other entertainment instruments have entered thousands of households. This system uses STC89C51 single chip computer to design matrix keyboard module, LED display tube module, loudspeaker module, main program module, display program module, key detection module and so on. Through system simulation, 16 independent keys representing 16 different notes are realized, which have the functions of high, low and so on. The designed circuit has good coupling, easy operation, low cost, strong practicability and portability.

Key words: MCU; Matrix Keyboard; LED Display; Electronic Piano

隨着我国经济快速发展,人民的生活质量逐步提高,娱乐产品走入千家万户。电子琴等电子产品的诞生,丰富了业余生活,让人民的生活多姿多彩。目前热销的有两种电:一种是带有脚键盘的立式电子琴;另一种是教育用的便携式电子琴。这两种电子琴都固有音色,还能模仿其他乐器及自然界的一些声音,还都带有自动节奏和伴奏功能。

本设计以AT89C51微控制器作为主控核心,带有矩阵式键盘模块、LED显示管模块、扬声器模块等硬件电路。硬件设计的独立键盘电路有4*4=16个独立按键,当用户按下按键,在数码管上会相应对应一个字符,16个独立按键分别代表16个不同的音符,有高有低。软件部分主要设计了主程序部分、显示程序部分、按键检测部分。本设计电路耦合性好,易操作,成本低,实用性强,便于携带。

1 系统整体方案设计

系统的整体设计由矩阵式键盘模块、LED显示管模块、扬声器模块、主程序部分、显示程序部分、按键检测部分等部分组成。

2 硬件设计

2.1 主控电路

主控电路采用89C51单片机最小系统外接按键电路、数码管显示电路进行控制电子琴。51单片机性能优越,完全能满足本设计的要求,七段数码管显示当前按键,扬声器发出对应音符,主控电路如图1所示。

2.2 LED显示电路

本次设计LED显示模块利用P0端口,把P0.0-P0.6连接a-h笔段上,数码管的公共端连通电源。当数码管所有位数都同时处于同一种状态,即显示状态时称为静态显示。因而,这种显示的方式具有显示无闪烁、亮度较高等特点,而且软件比较容易实现控制。

当需要显示的位数不是很少时,为了节省I/O口数目,经常采用该方式显示。这种方法是将所有的数码管的段码线的对应段进行并联,再通过一个8位的I/O口控制,而由另一个单独的I/O口线分别控制各显示位的公共端。

2.3 按键电路

利用I/O口接4*4=16的矩阵键盘。只需要我们提供8个I/O口,就可以轻松得到16个独立按键,其优点是操作容易、十分方便。

2.4 AT89C51

AT89C51是美国ATMEL公司生产的一款产品,带有4K字节的可反复擦写的只读程序存储器,内置CMOS8位微处理器——低电压、高性能,俗名就是我们常说的单片机。它具有高密度、非易失性、兼容性好、功能强大等特点。片内带通用8位中央处理器(CPU),还带128bytes的随机存取数据存储器(RAM)和Flash存储单元,各种控制领域皆可用到它,并且可以很灵活。

2.5 发音和节拍电路

一般规定每个音符使用1个字节,音符的高低由字节的高四位表示,音符的节拍由低四位表示,下表详细写出了节拍与节拍码的关系。假设1拍为0.8s,1/2拍为0.4s,节拍的时间由延迟时间决定。假设1/8拍为1 DELAY,那么1拍应为8 DELAY,以此类推。即只要我们求得1/8拍的DELAY 时间,就可以轻松得出其余的节拍的DELAY时间。

3系统测试和实现

3.1 软件开发环境

本设计选用Keil编译器来进行简单仿真,该软件是由Keil公司设计开发的一款针对51单片机基于C语言程序的开发系统,运行该编译器能够实现编译C源程序、汇编源程序、连接和重定位目标文件和库文件、创建HEX文件,以及调试目标程序。

Keil编译器包括以下几个组成部分。

(1)uVision2:这是一个集成开发环境,它把项目管理、源代码编译和程序调试灯集成到一个功能强大的环境中。

(2)C51交叉编译器:编译C源代码再生成能再定位的指定目标文件。

(3)A51宏汇编器:汇编MCS-51汇编源代码并产生可重定位的目标文件。

(5)LIB51库管理器:合并目标文件,自动生成库文件供连接器使用。

(6)OH51目标文件至HEX格式转换器:从绝对目标文件创建Intel HEX格式的文件。

(7)RXT-51实时操作系统(Real-Time Operating System,RTOS):简化对时间需求敏感和相对复杂的软件项目。

3.2软件总体设计

本次设计的基本流程是先对单片机进行模块初始化,然后再发送扫描码,首先,判断是否有键按下,如果一旦有按键按下,就开始扫描键盘矩阵,显示按键,然后启动定时器,根据KeyNo发音,按键不同,发音也不同,如果没有键按下,则停止播放音乐。

3.3系统仿真与实现

仿真步骤如下:

1)打开keil 4,建立工程,输入源程序代码。

2)程序写好之后点击编译,有错则改错,无错就生成hex文件。生成hex文件如图2所示。

4 结论

本文采用STC89C51单片机,设计矩阵式键盘模块、LED显示管模块、扬声器模块。 主程序部分、显示程序部分、按键检测部分等模块。仿真表明:系统设计电路耦合性好,易操作,成本低,实用性强,便于携带。

参考文献:

[1] 张均,卢涵宇.可编程控制器原理及应用[M].中国铁道出版社,2009.

[2] 熊小萍,卢涵宇.模拟电子技术 [M].哈尔滨工程大学出版社,2009.

[3] 徐爱钓,彭秀华.KeilCxs1V7.0单片机高级语言编程与林VisionZ应用实践[M].电子工业出版社,2004.

[4] 白延敏.51单片机典型系统开发实例精讲[M].电子工业出版社,2009.

【通联编辑:光文玲】

猜你喜欢
电子琴单片机
基于AT89C51单片机的电子琴设计
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
电子琴在群众文艺演出中的独特作用
小议PLC与单片机之间的串行通信及应用
基于单片机的平衡控制系统设计
电子琴
电子琴在小学音乐课堂中的应用探讨
Microchip推出两个全新PIC单片机系列