内容发布更新时间 : 2024/12/22 10:16:07星期一 下面是文章的全部内容请认真阅读。
《单片机原理与应用课程设计》 设计报告
2014——2015学年第2学期
设计题目: 基于单片机的简易电子琴 姓 名: 王 云 飞 专业班级: 光电信息132 学 号: 1893130221
安徽科技学院数理与信息工程学院
1 课题设计内容
本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。
先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 具体实现的功能:按下音符键可以发出相应的音符。
2 设计方案论证
基本乐理知识:
乐音听起来有的高、有的低,这就叫做音高。音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。如果单片机要自己播放音乐就必须考虑到节拍的设置。
对于AT80C51而言要产生一定频率的方波一般是先将某口线输出高电平,延迟一段时间后再输出低电平。通过改变延迟时间可以改变单片机的输出频率。单片机的延时主要有两种方式,即软件延时和使用定时/计数器延时。其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时/计数器延时。
由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。因此,我们只需弄清楚音乐中的音符和对应的频率,利用单片机的定时/计数器来产生方波频率信号即可。
要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2。利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。本例中,单片机工作在12MHz时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同
频率的脉冲信号。
例如低3MI音,频率为330Hz,其周期T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数1515次P2.0反向。计数初值T=65536-N=64021。C调的各音符对照表如表1所示。
表1 C调各音符频率与计数值T对照表
音符 低 1 DO # 1 DO# 低 2 RE # 2 RE# 低 3 M 低 4 FA # 4 FA# 低 5 SO # 5 SO# 低 6 LA # 6 低 7 SI 中1 DO # 1 DO# 中 2 RE # 2 RE# 中 3 M 中 4 FA 频率(HZ) 简谱码(T值) 262 277 294 311 330 349 370 392 415 440 466 494 523 554 587 622 659 698 63628 63731 63853 63928 64021 64103 64185 64260 64331 64400 64463 64524 64580 64633 64684 64732 64777 64820 音符 # 4 FA# 中 5 SO # 5 SO# 中 6 LA # 6 中 7 SI 高 1 DO # 1 DO# 高 2 RE # 2 RE# 高 3 M 高 4 FA # 4 FA# 高 5 SO # 5 SO# 高 6 LA # 6 高 7 SI 频率(HZ) 简谱码(T值) 740 784 831 880 932 988 1046 1109 1175 1245 1318 1397 1480 1568 1661 1760 1865 1967 64860 64898 64934 64968 64994 65030 65058 65085 65110 65134 65157 65178 65198 65217 65235 65252 65268 65283 1、基本思想:
简易的电子琴系统主要是采用AT89C51单片机,单片机工作
于
12MHZ的时钟频率,使用其定时/计
数器T0,工作模式为1,设计4*4键盘矩阵,设置成16个音,可随意弹奏想要表现的音乐,因为单片机产生的音频脉冲没有足够的驱动能力,所以用三极管放大电路实现音频的放大,保证扬声器能产生所要实现的音符声音。
2、硬件框图: