1 / 17
文档名称:

电子音调发生器实验报告.docx

格式:docx   大小:2,536KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电子音调发生器实验报告.docx

上传人:ranfand 2017/9/19 文件大小:2.48 MB

下载得到文件列表

电子音调发生器实验报告.docx

文档介绍

文档介绍:电子音调发生器
班级:信号1402
姓名: 潘佳琪
学号:14212152
2016年4月28日
1课程设计总体目标
总体结构
利用JD51开发板上的按键S1--S4和蜂鸣器设计电子音调发生器,要求:
(1)利用JD51开发板上的按键S1--S4进行音调选择,即按下不同的开关产生不同的音调,依次按动S1--S4 及组合按键,蜂鸣器发出1234567i八个音调;并在数码管上显示。
(2)编写2支歌曲,并可进行选择播放。
数码管显示电路
89C51
单片机
按键
控制(S1—S4)
声音输出电路
音乐播放控制


计时器计时
定时器预置定时初值,工作在工作方式1,定时器溢出位变为1计时结束。

音乐播放
音乐播放部分主要是播放音乐,按下不同按键可以发出不同声音。
按下K1键,显示“1”,发出“1”的声音。
按下K2键,显示“2”,发出“2”的声音。
按下K3键,显示“3”,发出“3”的声音。
按下K4键,显示“4”,发出“4”的声音。
按下K1和K2键,显示“5”,发出“5”的声音。
按下K2和K3键,显示“6”,发出“6”的声音。
按下K3和K4键,显示“7”,发出“7”的声音。
按下K1和K3键,显示“8”,发出高“1”的声音。
按下K1和K4键,显示“1”,发出第一首歌小星星。
按下K2和K4键,显示“2”,发出第二首歌天空之城。
硬件设计
利用51单片机的P3(—)口读取开关键盘状态,CPU不断查询P3口状态,根据 P3口不同状态跳转到不同的程序段中执行,,工作在工作方式1,定时器溢出位变为1计时结束,启动蜂鸣器,发出不同音调的声音。,程序段中存储了两个表,分别是音符表和节拍表。音符表中存放的是蜂鸣器发出音调的对应的频率所需的定时器的频率定时初值的高低位;节拍表存放的是发出每一个音调所需要持续的时间的双层循环中的内循环次数值。通过查表法在一次循环中通过累加器A连续取两个数据,分别送到定时器的定时初值寄存器TL0,TH0中,接着从节拍表中将一个对应节拍取出放入内循环的计数器(R5)中,并控制定时器发出对应方波并循环对应次数达到合适的节拍和音调效果,从而放出歌曲。
蜂鸣电路
模块鸣器驱动电路和89C51组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100MA驱动电流。当输出为低电平时蜂鸣器产生蜂鸣音,89C51 输出为高电平时,蜂鸣器不发声。
总体电路图如下:
软件设计
软件使用:单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,出现如图所示页面。
Proteus的设置
进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”,如图所示。此后,便可实现KeilC与Proteus连接调试。
KeilC与Proteus连接仿真调试
单击仿真运行开始按钮,就开始仿真,在proteus中点击不同的开关,就可以发出不同的声音,并显示对应的数字。
下面是利用proteus仿真的过程:


工作原理及设计思路
音节由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。。,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,,1/。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍,
每个音节相应的定时器初值X可按下法计算:(1/2)*(1/f)=(12/fose)*(216-x) 即x=216-(fose/24f) 其中f:音调频率,当晶振fose=,音节“1”相应的定时器初值为x,依次可以求得。
音调
频率(Hz)
X(HEX)
1
262
F921
2
294
F9E1
3
330
FA8C
4
349
FAD8
5
392
FB68
6
440
FBE9
7
494
FC5B
i
523
FC8F
表一
汇编程序
ORG 0000H
LJMP KEYP0
KEYP0: MOV R0,#00H
CLR TR0
SE