简易电子琴设计

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

1. 任务及要求

设计一个51单片机系统,实现简易电子琴操作的电路。

要求:

1.设计51单片机最小系统;

2.设置至少10个按键,能发出do re mi fa sol la si do;

3.能够调节低音、高音和中音。

2.设计方案

1.定时/计数器的设计和状态字定义:

若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(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相关的计数值如表所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低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 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

采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音0-19之间,中音在20-39之间,高音在40-59之间

用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输

出合适的方波,首先应该知道音符与频率的关系。

2.音名

从常见的电子琴的键盘谈起。

主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。

按键1345678

音符134567I

频率值5246606987848809881048 3.音调数据表

单片机发出不同频率的方波,人听起来,就是不同的音调。

上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。

定义音调数据表的程序如下:

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调)

曲调值DELAY曲调值DELAY

调4/4125ms调4/462ms

调3/4187ms调3/494ms

调2/4250ms调2/4125ms 三.设计电路图

1.晶振部分

本次采用12MHZ晶振,机器周期为1us,连接两个30pF的电容,连接到

AT89C51的XATL1,XATL2 上面,连接电路图如下:

2.音频输出 本次只是简单的使用一个蜂鸣器连接到AT89C51的

p1.0口上

3.高。中。低及音乐播放键:检测高中低是否按下,来跳转到音阶键上输出不同频率的音阶音,检测播放是否按下,跳转到示范曲目播放

4. AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

相关文档
最新文档