没有合适的资源?快使用搜索试试~ 我知道了~
南京工程学院单片机课程设计——电子琴.doc
需积分: 13 31 浏览量
2022-07-17
11:12:31
上传
评论
收藏 102KB DOC 举报
温馨提示
本文介绍了南京工程学院自动化学院单片机课程设计的一个项目——电子琴设计。该设计任务要求学生利用单片机技术设计一款电子琴,实现按键控制发声、音量调节、音色切换等功能。本文提供了该项目的目录,包括设计任务要求等内容。
资源详情
资源评论
资源推荐

南京工程学院自动化学院 单片机课程 :电子琴设计
目录
目录...........................................................................................................1
一、设计任务(要求) .............................................................................2
二、总体方案 ...........................................................................................2
三、原理框图 ...........................................................................................3
四、系统模块详细设计与调试 ...............................................................4
(一)键盘扫描模块 ...................................................4
(二)数码管显示模块 ...............................................4
(三)音调编码读取模块 ............................................4
(四)定时器中断模块..................................................4
五、设计总结 ...........................................................................................5
六、参考文献 ...........................................................................................6
七、附件材料 ...........................................................................................6

南京工程学院自动化学院 单片机课程 :电子琴设计
一、设计任务(要求)
利用 51 系列单片机、按键、扬声器等器件,设计一个电子琴。
具体功能要求如下:
设计键盘电路,使其具有数字键 1、2、3、4、5、6、7、8、9 作为电子琴按
键,演示键 DEMO,其中 1~7 号键按下后即发出相应的音调。8 号键按下后依次发
出“1、2、3、4、5、6、7” 音调,9 号键按下后依次发出“7、6、5、4、3、2、
1” 音调,按下 DEMO 键,自动演示一首歌曲,用单片机某一接口发出音频脉冲,
驱动扬声器发音。
利用定时器定时,可以发出不同频率的脉冲,不同频率的脉冲经扬声器驱动
电路放大滤波后,就会发出不同的音调.定时器按设置的定时参数产生中断,一次
中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了
不同频率的脉冲.按键一次,发 50 个脉冲。发完后继续检测键盘,如果键还按下,
继续发音,发脉冲个数的多少可以决定节拍的长短。
二、总体方案
按照设计任务(要求),电子琴的主要涉及以下几个模块:
1、定时器控制不同频率发音;
2、矩阵键盘的扫描;
3、除此以外,我还在本次设计中加入了数码管显示,分别显示当前弹奏的音
符。于是又多了数码管显示模块;
实现方案:
通过不断地键盘进行扫描。当有按键按下时,执行该按键对应的程序,包括:
发出相应的音符或音乐、数码管显示当前音符。当按键松开,将音符停止发出,如
果是音乐,将进行演奏。
其中,不同的音符,采用定时器中断,从而发出不同的音符.即改变不同的定时
器初始值。
对于音乐的音符,采用自编的特殊编码,以便程序的调用。本程序的设计采用
了三位数编码,即:利用三位数表示一个音符。第一位由 1—7 组成,表示音符
1—7;第二位由 1—4 组成,表示音阶的低、中、高和超高;第三位由 1—9 组成,
表示该音阶的拍数,计算方式是 1/2 拍
´
数字.
例如:6,2,2……表示一拍中音 6;4,3,1……表示半拍高音 4。
关于对音符编码的调用,设一个音的编码为
, ,a b c
则,调用的频率参数为
7b a´ +
,该参数用于修改定时器初始值;调用的时间参数为
c
,该参数用于修改
定时器执行时间。

南京工程学院自动化学院 单片机课程 :电子琴设计
三、原理框图
开始
各模块初始化
键盘扫描
否
按键 1-8
判别按键
按键 9-13
按键 14-16
显示对应音符
显示音乐编号
播放音乐
(5 个)
是否键盘按下
读取当前第一个音符
否
结束标志
调用定时器中断,发出不同频率音调
弹奏单音节
(8 个)
无动作
是
读取下一个音符
读取下一音符
是

南京工程学院自动化学院 单片机课程 :电子琴设计
四、系统模块详细设计与调试
(一)键盘扫描模块
1、矩阵键盘工作原理
矩阵键盘的按键设在行、列线的交点上。行线通过上拉电阻接到+5V 电
源上.无键盘按下时,行线出于高电平状态;当有按键按下时,行线电平状态
将由此按键相连接的列线的电平决定。
2、设计思路
通过扫描法识别键盘。即,先将某一列线置为低电平,其余各列线置为
高电平,检查各行线电平的变化,如果某行线电平的为低电平,就可以确立此
行此列交叉点处的按键被按下.
(二)数码管显示模块
1、硬件电路
数码管的显示,是通过 74LS374 锁存器来实现的。段选和位选分别是
P3。5 和 P3.4.数据的输出为 P0 口.(详见附录一:硬件原理图)
2、设计思路
通过分别控制段选、位选锁存器的导通(低电平)、锁存信号(高电平).
从而分时给数码管写入数据并锁存.
(三)音调编码读取模块
1、编码规则
本程序的设计采用了三位数编码,即:利用三位数表示一个音符.第一位
由 1—7 组成,表示音符 1-7;第二位由 1-4 组成,表示音阶的低、中、高和超
高;第三位由 1-9 组成,表示该音阶的拍数,计算方式是 1/2 拍
´
数字。
例如:6,2,2……表示一拍中音 6;4,3,1……表示半拍高音 4。
2、读取方式
首先读取前两位数,以确定音调。然后读取最后一位,以确定拍数(时
间)。然后依次递增 3 位。
音调确定后,通过查表获取定时器初始值,并调用定时器中断。拍数,
即定时器中断执行的循环次数,以此来控制声音的时间。
(四)定时器中断模块
1、定时器的调用
本程序的设计采用定时器中断的方法来使蜂鸣器发出不同的频率声音,
从而实现电子琴的音调。定时器的初始值不同,产生的频率也就不同。
定时器的调用是循环不断的,它的循环包括两类:一类是一个音节频率
的循环,从而控制一个拍数的长短;另一类是下一个音节的到来,重新写入初值,
直至结束标志位的到来,即 0,0,0。
如果再调用程序中,再加入一个整体循环,则可以反复执行音乐播放.即,
检测到结束标志后,重新播放音乐而不间断。(本程序,没有使用该循环.)
2、初始值的生成与写入
定时器的初始值,是通过网络搜索得到的,不同的初值代表着会发出不同
频率的音调.将它制成表,以便程序读取。
五、设计总结
剩余16页未读,继续阅读









智慧安全方案
- 粉丝: 2960
- 资源: 59万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

评论0