欢迎来到天天文库
浏览记录
ID:47024727
大小:1.15 MB
页数:32页
时间:2019-06-28
《基于51单片机的电子琴设计【附原理图、PCB和程序】》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计说明书题目:基于单片机的电子琴设计院(系):电子工程与自动化学院专业:测控技术与仪器(卓越)学生姓名:学号:指导教师:2013年9月21日目录1摘要……………………………………………………………………12关键字…………………………………………………………………13设计任务及要求………………………………………………………14方案可行性论证………………………………………………………15程序框图………………………………………………………………26关键单元电路与程序介绍……………………………………………36.1复位与震荡电路………………………………………………36.24
2、x4矩阵键盘…………………………………………………36.3数码管与LED灯………………………………………………46.4蜂鸣器…………………………………………………………66.5音乐相关知识…………………………………………………77调试过程………………………………………………………………118总结与体会……………………………………………………………119参考文献………………………………………………………………1110附录……………………………………………………………………1210.1设备与仪器……………………………………………………1210.2软件………………………………
3、……………………………1210.3原件清单………………………………………………………1210.4原理图与PCB图………………………………………………1310.5总程序……………………………………………………………1410.6实物图……………………………………………………………31【摘要】:打造一个多功能电子琴,核心是一块单片机。单片机读取键值,为内置定时器赋初值,定时器每溢出一次,驱动蜂鸣器的引脚电平就取反一次,产生相应频率的方波,即音调;设好键值与数码管段码表的对应关系,键按下时,数码管显示对应音调。一首音乐储存在一个表中,表中的数据是音调与节拍,单片机读取音符的音调
4、与节拍,根据音调赋予定时器初值,根据节拍决定定时器工作的时间,也就是蜂鸣器响的时间,一个接一个地读取音符,即可播放一首歌曲。节拍用led灯的点亮个数表示。单片机读取音乐表中的节拍,控制led灯的点亮个数,达到显示节拍的效果。特别要注意的是:该方案采用了两个定时器,T0、T1。T0作为驱动蜂鸣器的定时器,要给予高优先级,不然会被T1干扰,音质变差。【关键字】:单片机、stc89c52、电子琴、C51、keil。【设计任务及要求】:1.通过按键能够发出相应的音符并播放产生乐音,实现演奏;2.演奏的同时可数字显示当前的音调,利于培养乐感3.可以选定播放固定乐曲自动演奏,演奏时
5、LED进行节拍指示;4.在自动演奏和奏乐的过程中按停止键则中断演奏;5.可以选择调节音或小。【方案可行性论证】:本课题采用stc89c52单片机作为核心器件,实现基本的音乐弹奏、音乐播放、音调显示和音乐节拍指示的功能。1.音乐弹奏:通过程序识别4x4矩阵键盘中按下的键的坐标(x,y),然后根据(x,y)从计数初值表中读取对应的计数初值,赋值给定时器0,定时器产生对应频率的方波,达到播放对应音调的功能。2.音乐播放:先建立一个包含一首音乐的音调与节拍的表。其中,音调就是0x01(低音、do)、0x12(中音、re)、0x23(高音、mi)之类的数;节拍就是0x02(半拍)
6、,0x04(一拍)之类的数。然后,根据音调读取计数初值,再将计数初值赋给定时器T0->开启定时器T0->读取节拍并延时->关闭定时器T0。这样就发出了一个音,然后再读下一个音的初值与节拍,重复上一个操作即可。(具体实现方法见附录总程序)3.数码管显示音调:①按键:读出按键坐标(x,y),用if语句来判断(x,y)该给数码管赋什么值,然后从ucharcodenum[]表中读取这个值赋给数码管(例如P0)。②播放歌曲时:读入音调,根据音调的值来判断num[i]这个表中的i,再把num[i]赋给P0口。4.led灯的节拍指示:采用定时器1来控制,作为节拍指示。①按键时:根据按
7、下的时长来控制led的点亮个数,并且是按一定的时间间隔逐个点亮;释放按键时,led灯按一定的时间间隔逐个熄灭,从而达到一种比较简单的节拍指示效果。②播放音乐时:根据音符的节拍,控制点亮到哪一个灯,在点亮那个灯之前,前面的灯逐个等时距点亮。音符结束后,led灯全部一起熄灭。这样,达到了一个精确显示节拍的效果。开始【程序框图】:扫描键盘根据音调给T0赋初值开启T0T1是否停止播放读下一个音符关闭T0T1数码管与led数码管显示音调Led指示节拍否按节拍延迟算出音符的音调、节拍是否结束符关闭定时器P0口置0否否是按键是否释放开启定时器,并赋初值
此文档下载收益归作者所有