基于STC89C52单片机的简易电子琴设计

基于STC89C52单片机的简易电子琴设计[20200128191740]
摘要:伴随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说音乐可以使人的心灵得到净化,使人的灵魂得到升华。我们都会抽空欣赏世界名曲,把它作为对精神的洗礼。本论文设计的是一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。单片机在现代音乐中扮演着重要的角色,它具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机STC89C52为主控制器,附有矩阵键盘、LED显示管、扬声器组成。系统具有显示输入信息、播放相应音符等基本功能。本系统的优点是硬件电路简单,软件功能完善,控制系统可靠,价格相对便宜等,实用和参考价值很高。
 *查看完整论文请+Q: 351916072 
关键字:STC89C52,矩阵键盘,LED显示管,扬声器。
1 引言 1
1.1 目的和意义 1
1.2 本系统主要研究内容 1
2. 系统硬件设计 1
2.1主控模块 1
2.1.1 STC89C52单片机主要特性 2
2.1.2 STC89C52单片机管脚图 2
2.1.3 STC89C52单片机的中断系统 4
2.1.4 STC89C52单片机的定时/计数器 4
2.2数码管模块设计 4
2.2.1 数码管原理介绍 4
2.2.2 数码管电路设计 5
2.3键盘模块设计 5
2.3.1矩阵键盘原理介绍 5
2.3.2矩阵键盘电路设计 6
2.4功率放大模块设计 6
3.系统软件设计 7
3.1系统软件总体设计 7
3.2定时器产生音乐信号原理 8
4.系统调试 9
4.1软件调试 9
4.2硬件调试 10
4.3调试结果 11
5.结论 11
致谢 13
参考文献 15
附录 16
1引言
1.1目的和意义
单片微型计算机简称单片机,属于第四代电子计算机,它具有高速度、高性能、体积小、稳定可靠、价格低廉等特点。它的出现将导致传统的控制技术从根本上发生改变。因此,如何开发应用单片机已成为高科技和工程领域的一项重大课题。
本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本设计一共包含16个按键,其中15个按键对应15个音符,另外一个按键为播放独立的一首歌。当按下对应的按键的时,单片机通过设置定时器设定对应按键的定时时间即通过单片机的IO口输出固定的频率,输出的方波再通过LM386功率放大器把功率放大后驱动扬声器发声,除此外,配有一个1位的数码管,可以更清晰知道按下的是哪个按键,当按下按键后会对应显示0~F。通过设计本系统可了解单片机的基本功能。这样可以使我们对单片机的了解更加深入。
1.2 本系统主要研究内容
本系统设计制作一个可演奏的简易电子琴。
(1)键盘矩阵识别。即矩阵扫描,显示当前按键。
(2)不同频率音符播放。可以通过按键控制15种发音。
(3)设有一个按键,按下后可以播放预设的歌曲系统硬件设计。
2. 系统硬件设计
图2-1 系统硬件设计图
本系统结构如图2-1所示,本设计可分为以下模块:单片机主控模块、键盘模块、功率放大模块、数码管显示模块。下面对各个模块的设计方案逐一进行论证分析。
2.1主控模块
STC89C52单片机最初是由Intel公司开发设计的,但后来Intel公司把51单片机内核的设计方案卖给了几家大的电子设计生产商,譬如SST、Philip、Atmel等大公司。所以市面上出现了各式各样的但均以51为内核的单片机,倒是Intel公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容51指令、并在51的基础上扩展一些功能而内部结构是与51一致的。
STC89C52有40个引脚,4个8位并行I/O接口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器(ROM),和128B的数据存储器(RAM)组成。
2.1.1 STC89C52单片机主要特性
1. 一个8 位的微处理器(CPU)。
2. 片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及要显示的数据等,STC89 系列单片机最多提供1K 的RAM。
3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。
4. 四个8 位并行I/O 接口P0~P3,每个接口既可以用作输入,也可以用作输出。
5. 两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3个16 位定时器/计数器。
2.1.2 STC89C52单片机管脚图
图2-2 89C52单片机管脚图
如图2-2部分引脚说明:
1.时钟电路引脚XTAL1和XTAL2:
XTAL2(18脚):接外部晶体和微调电容的一端;在8051片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。
XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。
2.控制信号引脚RST,ALE,PSEN和EA:
RST/VPD(9脚):RST是复位信号输入端,高电平有效。当此输入端为备用电源的输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而复位后能继续正常运行。
ALE/PROG(30脚):地址锁存允许信号端。当8051上电压正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率FOSC的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
PSEN(29脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引接EPROM的OE端。PSEN 端有效,即允许读出EPROM/ROM中的指令码。PSEN端同样可驱动8个LS型TTL负载。
EA/Vpp(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA引脚接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
3.输入/输出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32 脚):P0口是一个漏极开路的8位准双向I/O口。作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。
P1口(P1.0~P1.7,1~8 脚):P1口是一个带内部上拉电阻的8位准双向I/O口。P1口每位能驱动4个LS型TTL负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4306.html

好棒文