1、 单片机应用与仿真训练设计报告单片机应用与仿真训练设计报告 -基于基于 AT89S52 单片机简易电子琴设计单片机简易电子琴设计 姓 名: 学 号: 专业班级: 电信 082 班 指导老师: 所在学院: 电气工程与自动化学院 2011 年 11 月 22 日 1 摘要摘要 设计的主要内容是用 AT89S52 单片机为核心控制元件,通过脉冲触发产生 出电子音调,设计一个简易的电子琴。以单片机作为主控核心,与键盘、蜂鸣器 等模块组成控制模块。 该系统运行稳定, 其优点是硬件电路简单, 软件功能完善, 控制系统可靠,性价比较高等,具有一定的实用与参考价值。 关键词:AT89S52;单片机;脉冲触发;
2、电子琴设计 2 目录目录 1 概述 . 3 1.1 功能简介 3 1.2 功能的实现 3 1.3 音乐产生原理. 3 2 系统总体方案及硬件设计 5 2.1 总体方案 5 2.2 硬件部分 5 2.2.1 矩阵键盘部分 5 2.2.2 扬声器接口电路部分 6 3 软件设计 7 4 Proteus 软件仿真 9 5 课程设计体会 . 10 参考文献 10 附录 1 源程序代码11 附录 2 系统原理图 19 3 1 概述概述 1.1 1.1 功能简介功能简介 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现 代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,
3、 它已经溶入现代人们的生活中,成为不可替代的一部分。 本简易电子琴的设计可实现的功能如下:程序中预存了一首音乐月亮代表 我的心 ,通过一个独立键盘可以实现对该音乐的播放和停止操作的控制。4*4 矩阵键盘的 16 个按键分别对应着 16 个不同的音符,分为高、低两个八度,当按 下某一按键,会发出相应的音调。按下按键时,扬声器会发出声音,松开按键后, 扬声器停止发声,按键的时间越长,发声时间越久。连续按下不同的按键,可以 实现乐曲的演奏。 1.2 1.2 功能的实现功能的实现 功能的实现部分分为软件和硬件两部分来简介。 1.3 1.3 音乐产生原理音乐产生原理 一首音乐是许多不同的音阶组成的,而每
4、个音阶对应着不同的频率,这样我 们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片 机来产生不同的频率非常方便, 我们可以利用单片机的定时/计数器 T0 来产生这 样方波频率信号,因此,只需将一首歌的音阶和频率相对应即可。 若要产生音频脉冲, 只要算出某一音频的周期 (1/频率) , 再将此周期除以 2, 即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将 P1.0 反 相,然后重复计时再反相。就可在 P1.0 引脚上得到此频率的脉冲。 利用 AT89S52 的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生
5、不同音阶,例如,频率为 523Hz,其周期 T1/5231912s,因此只要令计数器计时 956s/1s956,每计数 956 次 时将 I/O 反相,就可得到中音 DO(523Hz) 。 计数脉冲值与频率的关系式(如式 2-1 所示)是: 4 Nfi2fr 2-1 式中, N 是计数值; fi 是机器频率 (晶体振荡器为 12MHz 时, 其频率为 1MHz) ; fr 是想要产生的频率。 其计数初值 T 的求法如下: T65536N65536fi2fr 2-2 例如:设 K65536,fi1MHz,求低音 DO(261Hz) 、中音 DO(523Hz) 、 高音 DO(1046Hz)的计数
6、值。 T65536N65536fi2fr6553610000002fr65536 500000/fr 低音 DO 的 T65536500000/26263627 中音 DO 的 T65536500000/52364580 高音 DO 的 T65536500000/104665059 我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数 据,音符表见附录一。 音乐的音拍,一个节拍为单位(C 调) (如表 2-1 所示) 表 2-1 曲调值表 曲调值 DELAY 曲调值 DELAY 调 4/4 125ms 调 4/4 62ms 调 3/4 187ms 调 3/4 94ms 调 2/4 250ms 调 2/4 125ms 错误错误! !未指定书签。未指定书签。 对于不同的曲调我们也可以用单片机的定时/计数器 来完成。 程序流程图如图 2.5。 5 2 系统