单片机课程设计电子琴 (汇编语言) .doc
《单片机课程设计电子琴 (汇编语言) .doc》由会员分享,可在线阅读,更多相关《单片机课程设计电子琴 (汇编语言) .doc(30页珍藏版)》请在三一办公上搜索。
1、 目 录1. 引言.1 1.1. 设计的目的.1 1.2. 设计的内容与要求.12. 总体设计.1 2.1. 音乐产生原理.1 2.2. 设计流程.33. 硬件设计.8 3.1. AT89C51芯片简介 .8 3.1.1 主要特性.8 3.1.2 功能描述.8 3.1.3 引脚说明与硬件连接.9 3.2. 元器件清单.134. 系统工作说明.135.结束语.14 5.1 收获与体会.14 5.2 遇到的问题与解决方法.15 5.3 教程建议.156. 参考文献.157. 附录.161. 引言 1.1 设计的目的 本设计的主要目的是掌握单片机系统的开发应用,掌握prteus和keil C51软件
2、的应用,巩固和加深已学过的知识,提高动手能力及解决实际问题的能力,同时培养团队合作精神。 1.2. 设计内容与要求(1) 本设计以AT89C52单片机为核心控制元件设计一个电子琴,与键盘、扬声 器等模块组成核心主控制模块,在主控模块上设有16个弹奏按键、1个播 放按键和扬声器,并且按下时按键发声,松开延时一段时间停止,中间再 按别的键则发另一音调的声音。16个按键设置成4x4矩阵键盘,能弹奏出 16个音,添加歌曲程序同时能够播放出歌曲。(2)利用软件 keil C51进行程序的调试。(3)利用proteus软件画电路图,并在单片机加载程序进行仿真。(4)根据电路图运用proteus软件的布局和
3、布线功能绘制PCB图并输出显 示电路的3D图。(5)根据电路图、PCB图和3D图快速地焊接电路。(6)下载程序代码,调试(Easy 51Pro) 。2. 方案总体设计 2.1. 音乐产生设计原理 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止
4、后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。 利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是: N=fi2fr式中N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 其计数初值T的求法如下: T65536N65536fi2fr例如:设K65536,fi1M
5、Hz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/104665059 单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表1所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463
6、835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#1480651
7、98# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283 表1 音符频率表我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据。 低音019之间,中音在2039之间,高音在4059之间。TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185
8、,64331,64463,0,0,0 DW 0,64580,64684,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 0 在这个程序中,弹奏音乐的程序是用定时/计数器T0来完成的,播放音乐程序则是用定时/计数器T1来完成的。2.2. 设计流程 (1)键盘扫描程序: 检测是否有键按下,有键按下则记录
9、按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测。 (2)功能转移程序: 对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能。 (3)琴键处理程序: 根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音。 (4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。 程序简易流程图: 开始键盘扫描程序T0初始化并开中断允许T0中断T1初始化并开中断允许
10、T1中断有键按下否 否延时去抖动识别按键功能 是 是否弹奏键 否 播放键 是取相应的音符码装入T1根据按键功能装入相应音符值到T0启动T1启动T0按键释放成功否按键释放成功否停止T0工作停止T1工作 图1 程序简易流程图 弹奏程序流程图:弹奏子程序开中断并允许中断设定定时器工作方式取键值根据键值查音律表给定时器T0赋值开始计时进入中断CPL P3.0 P3.0退出中断延时返回键盘扫描程序 图2 弹奏程序流程图自动播放歌曲程序流程图:自动播放音乐程序A 0,DPTR歌谱地址开中断,设定定时器T1工作模式取简谱码 取该音符的节拍码STOPA=0 Y N休止符返回键盘扫描A=0FFH Y N 查音律
11、表,给定时器赋值INC DPTR 开始计时进入中断CPL3.0退出中断延时 图3 自动播放歌曲程序流程图3.硬件设计 3.1. AT89C51芯片简介 3.1.1 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.1.2 功能描述 (1) AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasa
12、ble Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 (2)振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可
13、以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 (3)芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工
14、作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.1.3 引脚说明与硬件连接 (1) 引脚图,如图4: 图4 AT89C51引脚图 (2)P1口: P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 利用P1口为按键接入口,形成4x4组成具有16个按键矩阵的键盘,作为琴键键盘,设计成16个音,如下图5: 所对应的键码 0 1 2 3 4 5 6
15、7 8 9 A B C D E F 图5 4x4键盘(3) P2口: P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 利用P2.0接播放音乐键,如图6: 图6 自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计电子琴 汇编语言 单片机 课程设计 电子琴 汇编语言
链接地址:https://www.31ppt.com/p-2392602.html