基于51单片机的电子琴设计_论文(编辑修改稿)内容摘要:
部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。 基于 51 单片机的电子琴设计 13 音乐相关知识 在人类还没有产生语言时,就已经知道利用声音的高低、强弱等来表达自己的思想和感情。 声带、琴弦等物体振动时会发出声波,声波通过空气传播进入人耳, 人们就听到了声音。 声音有噪音和乐音之分振动有规律的声音是乐音,音乐中所用的声音主要是乐音。 乐音听起来有的高、有的低,这就叫做音高。 音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。 音持续时间的长短即时值,一般用拍数表示。 休止符表示暂停发音。 一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率 ,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。 如果单片机要自己播放音乐就必须考虑到节拍的设置。 对于 AT80C51 而言要产生一定频率的方波一般是先将某口线输出高电平 ,延迟一段时间后再输出低电平。 通过改变延迟时间可以改变单片机的输出频率。 单片机的延时主要有两种方式,即软件延时和使用定时 /计数器延时。 其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时 /计数器延时。 由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。 因此,我们只需弄清楚音乐中的音符和对应的频率,利用单片机的定时 /计数器来产生方波频率信号即可。 要产生相应的音频脉冲,只需要计算出某音频的周期,再除以 2。 利用计数器计时半周期,计满时使 反向 ,然后重复计时再反向。 本例中,单片机工作在 12MHz 时钟 , 使用定时器 /计数器 T0,工作模式为 1,改变计数初值 TH0、 TL0 就可产生不同频率的脉冲信号。 例如低 3MI 音,频率为 330Hz,其周期 T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数 1515 次 反向。 计数初值 T=65536N=64021。 C调的各音符频率与计数值 T 的对照表如表 1 所示。 基于 51 单片机的电子琴设计 14表 1 C 调各音符频率与计数值 T 对照表 音符 频率 (HZ) 简谱码 (T 值 ) 音符 频率 (HZ) 简谱码 (T 值 ) 低 1 DO 262 63628 4 FA 740 64860 1 DO 277 63731 中 5 SO 784 64898 低 2 RE 294 63853 5 SO 831 64934 2 RE 311 63928 中 6 LA 880 64968 低 3 M 330 64021 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 4 FA 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 1 DO 1109 65085 5 SO 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 2 RE 1245 65134 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 4 FA 1480 65198 1 DO 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 5 SO 1661 65235 2 RE 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 /计数器的设计和状态字定义: 若要产生音频脉冲,只要算出某一音频的周期( 1/频率),再将此周期除以2,即为半周期的时间。 利用定时器计时半周期时间,每当计时终止后就将 反相,然后重复计时再反相。 就可在。 利用 AT89C51的内部定时器使其工作计数器模式( MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T= 1/523= 1912μs ,因此只要令计数器计时 956μs/1μs = 956,每计数 956 次时将 I/O 反相,就可基于 51 单片机的电子琴设计 15得到中音 DO( 523Hz)。 计数脉冲值与频率的关系式是: N= fi247。 2247。 fr , 式中, N是计数值; fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz); fr 是想要产生的频率。 其计数初值 T 的求法如下: T= 65536- N= 65536- fi247。 2247。 fr 例如:设 K= 65536, fi= 1MHz,求 中 音 DO( 261Hz)。 T= 65536- N= 65536-fi247。 2247。 fr = 65536- 1000000247。 2247。 fr = 65536- 500000/fr, 中音 DO 的 T= 65536- 500000/523= 64580。 单片机 12MHZ 晶振,中音符与计数 T0相关的计数值如表所示 : 表 2 音符表 音符 频率 ( HZ) 简谱码( T值) 音符 频率( HZ) 简谱码( T值) 低 1 DO 262 63628 4 FA 740 64860 1 DO 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 5 SO 831 64934 2 RE 311 63928 中 6 LA 880 64968 低 3 M 330 64021 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 4 FA 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 1 DO 1109 65085 5 SO 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 2 RE 1245 65134 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 基于 51 单片机的电子琴设计 16中 1 DO 523 64580 4 FA 1480 65198 1 DO 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 5 SO 1661 65235 2 RE 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 采用查表程序进行查表时,可以为这个音符建立一个表格,有助于 单片机 通过查表的方式来获得相应的数据: 低音 0- 19 之间,中音在 20- 39 之间,高音在 40- 59 之间 用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。 为了输出合适的方波,首先应该知道音符与频率的关系。 单片机发出不同频率的方波,人听起来,就是不同的音调。 上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。 定义音调数据表的程序如下: DW 63628,63835,64021,64103,64260,64400,64524。 64580,低音区 :1 2 3 4 5 6 7 DW 64580,64671,64777,64820,64898,64968,65030 65058中音区 :1 2 3 4 5 6 7 DW 65058,65110,65157,65178,65217,65252,65283 65312高音区 :1 2 3 4 5 6 7 把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。 音乐的音拍,一个节拍为单位( C 调): 基于 51 单片机的电子琴设计 17表 3 节奏表 曲调值 DELAY 曲调值 DELAY 调 4/4 125ms 调 4/4 62ms 调 3/4 187ms 调 3/4 94ms 调 2/4 250ms 调 2/4 125ms 图 本系统单片机软件在设计中是用 C 语言编写。 电子琴控制系统控制和播放内容的程序。 见附录。 基于 51 单片机的电子琴设计 18 四、电路的仿真 Proteus 的 ISIS 事一款 Labcenter 出品的电路分析实物仿真系统,可仿真各种电路和 IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。 目前支持的单片机类型有: 680 以及各种外围芯片 0 系列、 8051 系列、 AVR系列、 PIC12 系列、 HC11 系列。 直接播放音乐: 基于 51 单片机的电子琴设计。基于51单片机的电子琴设计_论文(编辑修改稿)
相关推荐
功能部件的控制;另一类用于对片外存储器或 I/O 口的控制。 STC89C52 内部有一个用于构成振荡器的高增益反向放大器,它的输入端为芯片的 XTAL1 脚,输出端为 XTAL2 脚。 这两个引脚跨界石英晶体和微调电容,构成一个稳定的自激振荡器。 电路的电容 C1 和 C2通常选择 30pF。 该电容的大小会影响振荡器频率的高低,振荡器的稳定性和起振的快速性。 晶体振荡频率的范围通常是。
输入端,是外接晶体的一个引脚。 当采用外部振荡器时,此引脚接地。 ( 2) XTAL2 内部振荡电路反相放大器的输出端。 是外接晶体的另一端。 当采用外部振荡器时,此引脚接外部振荡源。 3. 控制或与其它电源复用引脚 RST/VPD, ALE/和 /Vpp ( 1) RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在 Vcc 掉电期间,此引脚可接
12Mhz晶振 1 3 30pF陶瓷电容 2 4 10181。 F 无极性电容 1 5 10K 9 10K x9。 x1 6 240电阻 10 7 NPN 三极管 1 s8550 8 七段共阴极数码管 2 9 无源蜂鸣器 1 10 电位器 1 11 发光二极管 10 红色 x8 黄 x1 绿 x1 12 排针 3排 13 双面覆铜铜板 1 15x10 cm 14 40P杜邦线 1 15
行驱动器 T6A40 工作原理如下:两个 34 位双向移位寄存器产生的两个 34 位并行数 据将输出到两个 LCD 驱动电路中,并在 LCD 偏压电路作用下产生 68 位并行 LCD 行输出信号,最后加到 LCD 屏的行输入端。 4 硬件设计 ( 1)控制液晶显示模块实现英文、汉字、图形、及图像的显示。 ( 2)实现便携式设计。 ( 3)可提供实现与计算机的数据传输的接口电路。
地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2口在 FLASH编程和校 验时接收高八位地址信号和控制信号。 P3 口: P3口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 当 P3口写入“ 1”后,它们被内部上拉为高电平
外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。 AT89C51是属于 CMOS8位微处理器,它的时钟 电路在结构上有别于 NMOS型的单片机。 CMOS型单片机内部(如 AT89C51)有一个可控的负反馈反相放大器,外接晶成都理工大学本科毕业设计(论文) 10 振(或陶瓷谐振器)和电容组成振荡器,图 4- 2为 CMOS型单片机时钟电路框图。 振荡器工作受 /PD端控制