单片机课程设计电子琴汇编语言资料讲解

上传人:新** 文档编号:497133383 上传时间:2023-11-26 格式:DOC 页数:36 大小:1,017.50KB
返回 下载 相关 举报
单片机课程设计电子琴汇编语言资料讲解_第1页
第1页 / 共36页
单片机课程设计电子琴汇编语言资料讲解_第2页
第2页 / 共36页
单片机课程设计电子琴汇编语言资料讲解_第3页
第3页 / 共36页
单片机课程设计电子琴汇编语言资料讲解_第4页
第4页 / 共36页
单片机课程设计电子琴汇编语言资料讲解_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《单片机课程设计电子琴汇编语言资料讲解》由会员分享,可在线阅读,更多相关《单片机课程设计电子琴汇编语言资料讲解(36页珍藏版)》请在金锄头文库上搜索。

1、1. 引言11.1. 设计的目的11.2. 设计的内容与要求 错误!未定义书签。2. 总体设计12.1. 音乐产生原理12.2. 设计流程33. 硬件设计83.1. AT89C51 芯片简介83.1.1 主要特性83.1.2 功能描述83.1.3 引脚说明与硬件连接93.2. 元器件清单134. 系统工作说明135. 结束语145.1 收获与体会145.2 遇到的问题与解决方法 155.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软件的布局和布线功能绘制PCB图并输出显 示电路的3D图。(5)根据电路图

3、、PCB图和3D图快速地焊接电路。(6)下载程序代码,调试(Easy 51Pro)。2. 方案总体设计2.1. 音乐产生设计原理一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频率,这样我 们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片 机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。 若 要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即 为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相, 然后重复计时再反相。就可在 P1

4、.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式 (M0DE1下,改变计数 值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周 期T= 1/523 = 1912卩s,因此只要令计数器计时 956卩s/1卩s = 956,每计数956 次时将I/O反相,就可得到中音D0(523H0。计数脉冲值与频率的关系式是:N=fi- 2- fr式中N是计数值;fi是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ; fr 是想要产生的频率。其计数初值T的求法如下:T= 65536- N= 65536 fi - 2-fr例如:设 K= 65536,

5、 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值)音符频率(HQ简谱码(T值)

6、低1 DO26263628# 4 FA#74064860#1 DO#27763731中5 SO78464898低2 RE29463835# 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、7 SI49464524高4 FA139765178中1 DO52364580# 4 FA#148065198# 1 DO#55464633高5 SO156865217中2 RE58764684# 5 SO#166165235# 2 RE#62264732高6 LA176065252中3 M65964777# 6186565268中4 FA69864820高7 SI196765283表1音符频率表我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据。低音0 19之间,中音在20-39之间,高音在40- 59之间。TABLE: DW 0,63628,63835,64021,6410

8、3,64260,64400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 0在这个程序中,弹奏音乐的程序是用定时/计数器T0来完成的,播放音乐程序则是用定时/计数器T1来

9、完成的。2.2. 设计流程(1) 键盘扫描程序:此文档仅供学习和交流检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序; 无键按下,则返回键盘扫描程序继续检测。(2)功能转移程序:对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳 转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放 乐曲功能。(3)琴键处理程序:根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音。(4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序, 电子琴会自动播放 事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序, 继续等待

10、 是否有键按下。程序简易流程图:图1 程序简易流程图弹奏程序流程图:图2 弹奏程序流程图自动播放歌曲程序流程图延时图3自动播放歌曲程序流程图3.硬件设计3.1. AT89C51 芯片简介3.1.1 主要特性与MCS-51兼容 4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定 128*8位内部RAM 32可编程I/O线两个16位定时器/计数器 5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路功能描述(1) AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROFalsh Programmable a

11、nd Erasable ReadOnly Memory 的低电压,高性能 CMOS8 位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读 存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL勺 AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。(2) 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入

12、和输出。 该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(3) 芯片擦除:整个PERO阵列和三个锁定位的电擦除可通过正确的控制信号组合, 并保持 ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“ 1”且在 任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种 软件可选的掉电模式。在闲置模式下,CPU亭止工作。但RAM定时器

13、,计数器, 串口和中断系统仍在工作。在掉电模式下,保存RAM勺内容并且冻结振荡器,禁 止所用其他芯片功能,直到下一个硬件复位为止。3.1.3 引脚说明与硬件连接(1) 弓I脚图,如图4:4VM70)1 IMT I)T I ) IWW) twos卓丄 FTQ、J-9占 vl 严bA尸f*f*ppi”D”LIT:匕CDbnDPCU Co 41. f f - 明 ,H U-Tr: :;tA:;: *4 4 4 4 4 4 一图4 AT89C51引脚图(2) P1 口:P1口是一个内部提供上拉电阻的 8位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验此文档收集于网络,如有侵权请联系网站删除 时,P1 口作为第八位地址接收。利用P1 口为按键接入口,形成4x4组成具有16个按键矩阵的键盘,作为 琴键键盘,设计成16个音

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号