当前位置:文档之家› 单片机课程设计 简易电子琴设计

单片机课程设计 简易电子琴设计

单片机课程设计课程设计名称专学学指级名号师导课程设计时间需求分析1.1课题背景随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。

我们都会抽空欣赏世界名曲,作为对精神的洗礼。

本论文设计一个基于单片机的简易电子琴。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

电子科技也在不断的前进,电子技术正在以不同的方式改变着我们的生活,电子琴设计也是希望给人们带来一些生活的乐趣。

电子琴可以应用在很多方面,比如一些简易的玩具上或手机上。

单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化。

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。

利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。

并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

1.2课题设计的任务与主要内容本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有1 6个按键和扬声器。

定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。

先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。

本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

1.3简易电子琴功能概述单片机因体积小、功能强、价格低廉而得到广泛应用。

AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光 二极管用来指示电子琴的工作状态。

本系统分为两个部分,一个是音乐,另一个就是电子琴。

1. 单片机并行连接4*4矩阵键盘和一位数码管2. 利用单片机内部定时器T0的定时功能产生音符所对应的音调3. 经功率放大器后输出至音箱4. 在弹奏音乐的同时将音符显示与数码管5. 具备存储在播放所弹奏的音乐的功能6. 具备示范音乐播放功能概要设计2.1硬件系统的组成嵌入式电路,按键电路,LED 显示电路和三个功能键组成,通过功能键可以 选择播放音乐。

(按键一:是否录音;按键二:是否播放;按键三:复位键)该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。

通过这样可 以不断的弹奏音乐。

硬件系统总体框图晶振产生频率供电复位电路AT89C51 中心控制弹奏或播放音乐4*4矩阵键盘LED 灯的显示扬声器,放大音乐2.2软件设计流程图图2 软件设计流程图2.3工作原理打开电子琴电源开关后,电子琴默认为弹奏状态(录音LED丁亮表示按键弹奏录音,不亮则普通按键弹奏功能),弹奏/播放显示灯点亮。

此时可以进行弹奏音乐,按下矩阵键盘中的任意键,扬声器发相应的音调,数码管显示对应的数字。

按下播放按钮,电子琴处于自动播放状态,弹奏/播放显示灯不亮,就会播放刚才弹走过的音乐,并循环进行播放,如果按下录音按键,将录音灯灭掉,此时播放的音乐改变,播放电子琴内置的音乐,并显示相应音符,循环播放。

此时,如果按下复位键,数码管显示0,清楚录音,此时系统又处于弹奏状态。

本设计存储了二首音乐,可循环播放.(小星星和欢乐颂)此设计模块实现的功能有 :1. 把不同的频率也就是节拍的声音输入到放大器,播放弹奏的声音;2. 在弹奏音乐的同时将音符显示于数码管;3. 弹奏音乐的时候要将音符输入到数码管;4. 播放内置储存的音乐时要显示此时播放的音乐音符;5. 具备存储在播放所弹奏的音乐的功能;6. 复位功能,模式复位、录音清楚,数码管显示为 3.1.2 AT89C51 单片机相关介绍 1) AT89C51 简介AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPERO —MFlash Programmable and Erasable Read Only Memory )的低电压,高性能 CMOS 8位 微处理器,俗称单片机。

AT89C51它是一个低功耗高性能单片机,40个引脚,32 个外部双向输入 /输出( I/O )端口,同时内含 2 个外中断口, 2 个 1 6位可编程定时计数器,2个全双工串行通信口,AT89C5何以按照常规方法进行编程,也 可以在线编程。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价运行环境3.1 硬件环境3.1.1 总体设计软件模型连线:P 3八7 蜂鸣器P^O 连接LEDO (模式指示灯:弹奏--亮,播放--不亮)P2A1 连接LED1和独立开关(录音指示灯:弹奏保存--亮,弹奏不保存-- 不亮) P3A2 P3A3 独立按键,外部中断控制复位键独立按键,外部中断播放 / 弹奏切换按键 P1 连接数码管显示 PO连接矩阵键盘O 。

廉的方案。

外形及引脚排列如图 3.2所示。

F1 G —— P1 I —— P1 2—— P1 3—— FI 4 ---- PI 5 ---- P1 6—— n 7 -----KSTWPD ------RXDP3 0 ----- IXPPJ 1 -----P3 2 ---INTI ¥3 3—— W PS# -------IL 即—— 里誉 —— 蔚 PJ7 -------VFAU ------XTAL1I ----V 勢—图3 AT89C51引脚分布图主要引脚功能:1、RST(9):复位输入。

当振荡器复位时,要保持 RST 引脚2个机器周期的高电平时间;2、XTAL1( 19):反向振荡器放大器的输入及内部时钟工作电路的输入;3、XTAL2 (18):来自反向振荡器的输出;4、P1 口( 1— 8): P1 口是从内部提供上拉电阻器的 8位双向I/O 口,P1 口缓冲 器能接收和输出4个TTL 门电流;电平时,单片机只访问内部程序存储器。

2) 芯片擦除整个PEROMP 列和三个锁定位的电擦除可通过正确的控制信号组合,ALE 管脚处于低电平10ms 来完成。

在芯片擦操作中,代码阵列全被写“任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在零频率的条件下静态逻辑,支持两种 软件可选的掉电模式。

在闲置模式下,CPU 亭止工作。

但RAM 定时器、计数器、 串口和中断系统仍在工作。

在掉电模式下,保存RAM 的内容并且冻结振荡器,禁 止所用其他芯片功能,直到下一个硬件复位为止。

' --- *运 ---- P00 ——POI-- TO :' --- P03 ----- P OS ----- P 06 ---- P07 ----- , --- P2 J P22 P2 I P2 05、EA / V PP :当EA 保持低电平时,单片机只访问外部程序存储器。

EA 为高并保持1”且在3.1.3矩阵式键盘的结构与工作原理矩阵式结构的键盘显然比直接法要复杂一些, 识别也要复杂一些,本系统中的矩阵键盘中,列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输 出端,而列线所接的I/O 口则作为输入。

当按键没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是 低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就 可得知是否有键按下了。

RP1 --3.1.4按键显示模块 1)数码管的分类本设计用的是七段码。

可显示 0-F 。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

1.共阳数码管:是指将所有发光二极管的阳极接到一起形成公共阳极(COM 的数码管。

共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的 阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就 不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM 的数码管。

2.共阴数码管:在应用时应将公共极CO 瞅到地线GNDt ,当某一字段发光二极 管的阳极为高电平时, 相应字段就点亮。

当某一字段的阳极为低电平时, 相应字 段就不亮。

• • 1 -- !• •fl —O ' O —'-4 fc- # -- —Q ---C=L*—O - 0—1--4 ----- 1- ♦- ―Q ~1 --- L- ♦-1 -----h •--Y -r -.i -----1--图4 矩阵式键盘2)数码管的驱动方式数码管的驱动方式分为:静态式和动态式两类。

1.静态显示驱动:静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCC码二-十进制译码器译码进行驱动。

优点是:编程简单,显示亮度高,缺点是占用I/O 端口多。

2. 动态显示驱动:动态驱动是将所有数码管的8 个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COMS电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的COM^,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1〜2ms由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O 端口,而且功耗更低。

显示模块如图所示。

3.1.5功能显示灯模块当按下弹奏/播放功能键时,LEDO 灯亮(P2八0)表示弹奏模式,再次按下LEDO 熄火表示播放模式;当独立开关控制 LED1亮时表示弹奏保存录音或者播放录音 歌曲,不亮时则表示弹奏不会保存录音或者播放内置音乐。

4,ISAyE=1 , LEDTI誉乐图6 功能显示灯模块3.1.6音乐播放装置本次设计很简陋,没有MP3那样优美的音乐,但此次设计分成“音调”和“节拍”两部分,听起来还是不错的。

音调:表示一个音符唱多高的频率 节拍:表示一个音符唱多长的时间。

由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握, 不由程序控制。

相关主题