第 4 章 数字逻辑与数字系统综合设计实验
4.1 简易电子琴实验
4.1.1 简易电子琴实验部分
本实验是个大型实验,可作为课程设计使用,也可作为一个演示实验。
一、实验目的
⑴ 掌握简易电子音响的基本原理。
⑵ 通过简易电子的设计掌握数字逻辑系统的设计方法。
⑶ 掌握 EDA 软件 Quartus Ⅱ的基本使用方法。
⑷ 掌握用 VHDL 语言设计复杂数字电路的方法。
二、实验原理 1.简易电子音响
电子音响是当今一个很时髦的物品,操作简单,声音动听。大家都知道一个基本的物理原理: 振动发声。无论是何种声音,都是通过振动产生的。例如刮风时由于空气的振动产生了风声,用木棍敲击铜钟时,铜钟振动产生钟声。在 TEC-8 实验台上,通过喇叭的纸盆振动发声,只要控制纸盆的振动频率,就能控制声音的音调;只要控制纸盆振动的长短,就能控制声音的节拍;只要控制振动的幅度,就能控制声音的强度。本实验只控制声音的音调和节拍。
2.小喇叭及其驱动电路
TEC-8 实验台上的喇叭及其驱动电路如图 4.1 所示。
SPEAKER
DZ1
Q2
1kΩ
R29
51Ω R30
VCC
喇叭
图 4.1 喇叭及其驱动电路
图 4.1 中,当短路子 DZ1 断开时,喇叭不受控制,因此不发声。喇叭的阻抗为 8 欧姆,R30 是防止喇叭烧毁的限流电阻。R29 是晶体三极管 Q2 的基极电阻,当控制信号 SPEAKER 为高电平时,Q2 饱和,电流流过喇叭;当控制信号 SPEAKER 为低电平时,Q2 截止,没有电流流过喇叭。控制了电流流过喇叭的频率,就控制了喇叭纸盆振动的频率。本实验中,我们使用方波信号 SPEAKER 控制喇叭纸盆的振动。方波信号虽然不是正弦波,但它的基波是正弦波,而且频率同方波频率一致。基波在控制喇叭振动中起主要作用。喇叭的纸盆振动也不可能突变,因此用方波信号控制喇叭纸盆的振动也能产生出清晰的声音。
3.音调的频率
每个音调对应 1 个固定的频率,本实验中用到的 C 调的音符和对应频率见表 4.1。
表 4.1 C 调的部分音符对应频率表
音调
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
|
频率(Hz)
|
262
|
294
|
330
|
349
|
392
|
440
|
494
|
523
|
三、实验设备
序 号
|
名 称
|
数 量
|
备 注
|
1
|
个人计算机
|
1 台
|
|
2
|
TEC-8 实验系统
|
1 台
|
|
3
|
双踪示波器
|
1 台
|
|
4
|
万用表
|
1 只
|
|
四、实验要求
⑴ 利用 TEC-8 实验系统上的时钟信号 MF,对其进行分频,产生出表 4.1 中的 8 个音频信号。
⑵ 使用 TEC-8 实验系统上的 8 个开关 K8~K1 代表 8 个琴键。其中 K8 代表 。当 K8~K1 中的某个开关拨到向上位置时,发出对应的音调,拨到向下位置时,停止发声。任何时候,只允许 K8~K1 中的一个开关处于向上位置。
⑶ 在个人计算机 PC 上 Quartus Ⅱ环境中用 VHDL 语言设计出程序,经过编译,然后下载到
EPM7128 器件中,构成一个电子琴。
⑷ 听喇叭发出的声音,如果不符合要求,重新修改程序、编译后下载,直到正确为止。
五、实验提示
1.EPM7128 引脚信号
喇叭控制信号 SPEAKER 由 TEC-8 实验台的 EPM7128 器件产生。本实验中,使用下列信号,对应
EPM7128 的引脚如下:
序号
|
信号名
|
管脚号
|
方向
|
信 号 意 义
|
1
|
MF
|
55
|
In
|
1MHz 的时钟频率。
|
2
|
CLR#
|
1
|
OUT
|
复位信号,低电平有效。
|
3
|
Speaker
|
52
|
Out
|
喇叭的控制信号
|
4
|
K1
|
81
|
IN
|
开关
|
5
|
K2
|
80
|
IN
|
开关
|
6
|
K3
|
79
|
IN
|
开关
|
7
|
K4
|
77
|
IN
|
开关
|
8
|
K5
|
76
|
IN
|
开关
|
9
|
K6
|
75
|
IN
|
开关
|
10
|
K7
|
74
|
IN
|
开关
|
11
|
K8
|
73
|
IN
|
开关
|
上述信号中的 MF、K8~K1,EMP7128 的引脚并没有直接和时钟、开关连接,它们是通过一条扁平电缆连接的,因此做实验时,需将扁平电缆的 34 芯端插到插座 J6 中,将 6 芯端插到插座 J5 中, 将 16 芯端插到插座 J8 中。注意:扁平电缆进行插接或者拔出必须在关电源后进行。另外,做实验时,应将短路子 DZ1 左侧短接,以使喇叭受到控制;实验完成后,应将短路子 DZ1 右侧短接,使其断开。
2.音调分频程序示例
音调 1 的频率是 262Hz,音调 i 的频率是 523Hz,如果直接用 1MHz 的主时钟信号分频,则产生
262Hz 的信号需要对 1MHz 信号进行 3816(十六进制 0EE8)分频,产生 523Hz 的信号需要对 1MHz 的信号进行 1912(十六进制 778)分频。这样产生 262Hz 信号的分频器需要 12 个宏单元,产生 523Hz 信号的分频器需要 11 个宏单元,占用资源太多。为了节省资源,首先对 1MHz 信号进行 10 分频得到
100KHz 信号,作为分频的基准,其他音调的信号由 100KHz 信号通过分频产生。驱动喇叭发声的信号 SPEAKER 应当是占空比为 50%的方波。
对 100KHz 信号进行分频产生 261Hz 的设计程序如下: p1:process(clr,f100k,f1_t,f1)
begin
if clr = '0' then f1_t <= x"00"; f1 <= '0';
elsif f100k'event and f100k = '1' then
if f1_t = x"be" then --十六进制 be 相当于 190,因此是进行 191 分频。f1_t <= x"00";
f1 <= not f1; --2 分频else
f1_t <= f1_t +'1'; f1 <= f1;
end if; end if;
end process;
上面的程序中首先对 100KHz 信号进行了 191 分频得到信号 f1_t,然后对 f1_t 进行 2 分频得到信号 f1。f1 实际频率为 261.7Hz。。
3.如果只进行演示性实验,则可以直接把电子琴文件夹中的.sof 文件下载到 EPM7128 中进行。六、实验完成后,必须要将硬连线控制器重新装入 EPM7128 中。以备以后做其他实验使用。
4.1.2 实验报告