基于单片机的电子琴设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州航空工业管理学院

单片机课程设计说明书届电子信息工程专业班级

题目基于单片机的电子琴设计学号

姓名

指导教师

二О一年月日

一、电子琴的基本原理

1、本次设计的内容是:

具有7个基本音符的按键,能够弹奏简单乐曲;能够播放存贮在内存中的3首乐曲;每次按下一个8键可以播放一首歌。

2、整体工作原理:

采用STC89C52单片机作为主控芯片,设置了键盘、蜂鸣器等外围器件,另外还用到一些简单器件如:四位数码管和PNP型三极管及电阻等。利用按键实现音符和音调的输入;四位的数码管进行被操作的按键显示;用PNP型三极管实现低音频功率放大;最后用蜂鸣器发音。主控芯片采用STC89C52单片机,它是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点,同时具有强大的控制功能和灵活的编程实现特性。

3、发音原理:

若要产生音频脉冲,只要算出某一音频的周期(频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.7反相,然后重复计时再反相。就可在P1.7引脚上得到此频率的脉冲。利用STC89C52的内部定时器使其工作计数器模式(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)。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580

单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:

用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。

二、电子时钟的硬件设计

1、硬件原理图:

本系统有主控芯片STC89C52、发音单元、显示模块、按键模块组成。硬件电路要以单片机作为主控芯片,实现按键输入音符和音调,两位数码管的显示以及低音频功率放大和蜂鸣器发音。针对本设计的功能和用途,采用STC89C52单片机更好.

2、时钟电路

单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚Xl和X2跨接石英晶体和两个补偿电容构成自激振荡器,结构图2 中X1、C1、C2。可以根据情况选择6MHz、12MHz或24MHz 频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。

图-时钟电路

3、键盘设计

键盘可以分为2类:独立连接式键盘和矩阵式键盘。本设计采用矩阵式按键,矩阵式键盘由行线和列线组成,按键位于行、列线的交

叉点上。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上.当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。

图-矩阵键盘

4、元件清单

如下图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。

图4发音电路

6、硬件调试

硬件调试主要是针对单片机部分进行的调试。在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况的任务。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要是检测单片机控制部分、数码管点亮部分、和音频转换电路硬件调试,

三、电子时钟的软件设计

1、键盘扫描程序:

检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。2、功能转移程序:

对检测到的按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲的功能。

3、琴键处理程序:

根据检测到的按键值,查询音调表,给计时器赋值,使发出相应频率的声音。

4、自动播放歌曲程序:

检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有按键按下。

5、程序流程图

图5 流程图

6、设计源程序:

/*说明*************************************************************************

曲谱存贮格式unsigned char code MusicName{音高,音长,音高,音长...., 0,0}; 末尾:0,0 表示结束(Important)

音高由三位数字组成:个位是表示1~7 这七个音符;十位是表示音符所在的音区:1-低音,2-中音,3-高音;百位表示这个音符是否要升半音: 0-不升,1-升半音。

音长最多由三位数字组成:个位表示音符的时值,其对应关系是:

|数值(n): |0 |1 |2 |3 | 4 | 5 | 6

相关文档
最新文档