单片机课程设计电子琴 汇编语言.docx
- 文档编号:2156487
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:34
- 大小:583.24KB
单片机课程设计电子琴 汇编语言.docx
《单片机课程设计电子琴 汇编语言.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电子琴 汇编语言.docx(34页珍藏版)》请在冰豆网上搜索。
单片机课程设计电子琴汇编语言
1.引言...................................................1
1.1.设计的目的.........................................1
1.2.设计的内容与要求...................................错误!
未定义书签。
2.总体设计...............................................1
2.1.音乐产生原理.......................................1
2.2.设计流程...........................................3
3.硬件设计...............................................8
3.1.AT89C51芯片简介..................................8
3.1.1主要特性........................................8
3.1.2功能描述........................................8
3.1.3引脚说明与硬件连接..............................9
3.2.元器件清单........................................13
4.系统工作说明..........................................13
5.结束语...............................................14
5.1收获与体会.........................................14
5.2遇到的问题与解决方法...............................15
5.3教程建议...........................................15
6.参考文献..............................................15
7.附录..................................................16
1.引言
1.1设计的目的
本设计的主要目的是掌握单片机系统的开发应用,掌握prteus和keilC51软件的应用,巩固和加深已学过的知识,提高动手能力及解决实际问题的能力,同时培养团队合作精神。
1.2.设计内容与要求
(1)本设计以AT89C52单片机为核心控制元件设计一个电子琴,与键盘、扬声
器等模块组成核心主控制模块,在主控模块上设有16个弹奏按键、1个播
放按键和扬声器,并且按下时按键发声,松开延时一段时间停止,中间再
按别的键则发另一音调的声音。
16个按键设置成4x4矩阵键盘,能弹奏出
16个音,添加歌曲程序同时能够播放出歌曲。
(2)利用软件keilC51进行程序的调试。
(3)利用proteus软件画电路图,并在单片机加载程序进行仿真。
(4)根据电路图运用proteus软件的布局和布线功能绘制PCB图并输出显
示电路的3D图。
(5)根据电路图、PCB图和3D图快速地焊接电路。
(6)下载程序代码,调试(Easy51Pro)。
2.方案总体设计
2.1.音乐产生设计原理
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这
样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即反相,P1.0每当计时终止后就将利用定时器计时半周期时间,为半周期的时间。
.
然后重复计时再反相。
就可在P1.0引脚上得到此频率的脉冲。
利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式是:
N=fi÷2÷fr
式中N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。
其计数初值T的求法如下:
T=65536-N=65536-fi÷2÷fr
例如:
设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1046=65059
单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表1所示:
HZ)简谱码(T值)
HZ)简谱码(值)
音符
频率(
音符
频率(
1DO
63628
64860
低
262
#4FA#
740
DO##1
63731277
5SO中
64898784
2低RE3M
294638356392864021
#5SO#6LA
64934831
6496864994
#2RE#
311
中
880
低
330
#6
932
T
4FA有键按下否是延时去抖动给定时器T0赋值开始计取该音符的节拍码
YSTOPA=0NY
休止符返回键盘扫描A=0FFH
64103工作停止T0CPL3.0
7SI停止
65030工作T1
低
349
中
988
#4FA#
37064185退出中断
1DO高
650581046
低5SO6LA
642603926433164400延时
#1DO#2RE
650851109
6511065134
#5SO#
415
高
1175
低
440
#2RE#
1245
64463
3M
65157
#6
466
高
1318
7SI
64524
4FA
65178
低
494
高
1397
1DO
64580
自动播放音乐程序
弹奏子程序
65198
中
523
#4FA#
1480
64633开始开中断并允许中断设定A<<0,DPTR<<
5SO歌谱地址
65217
#1DO#
554
高
1568
2RE中
58764684T0初始化并开中断允许定时器工作方式
#5SO#中断T0
652351661
#2RE#3M4FA
622647326477764820T1初始化并开中断允许键盘扫描程序根据键值查音律开中断,设定定时器取简谱码
高6LA7SI中断T1工作模式T1
6525217606526865283
取键值
中
659
#6
1865
中
698
高
1967
表1音符频率表
我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据。
低音0-19之间,中音在20-39之间,高音在40-59之间。
TABLE:
DW0,63628,63835,64021,64103,64260,64400,64524,0,0
DW0,63731,63928,0,64185,64331,64463,0,0,0
DW0,64580,64684,64777,64820,64898,64968,65030,0,0
DW0,64633,64732,0,64860,64934,64994,0,0,0
DW0,65058,65110,65157,65178,65217,65252,65283,0,0
DW0,65085,65134,0,65198,65235,65268,0,0,0
DW0
在这个程序中,弹奏音乐的程序是用定时/计数器T0来完成的,播放音乐程序则是用定时/计数器T1来完成的。
2.2.设计流程
(1)键盘扫描程序:
检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测。
(2)功能转移程序:
对检测到得按键值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计电子琴 汇编语言 单片机 课程设计 电子琴