微机原理及应用课程设?/p>
1
一
.
设计任务及要?/p>
1.
?/p>
8255
接八个开?/p>
K1~K8
,做电子琴按键输入?/p>
2.
?/p>
8253
控制扬声器,拨动不同的开关,发出相应的音阶?/p>
要求?/p>
K1
?/p>
静音
K2
?/p>
?/p>
si
的音
493Hz
K3
?/p>
?/p>
la
的音
440Hz
K4
?/p>
?/p>
sol
的音
392Hz
K5
?/p>
?/p>
fa
的音
349Hz
K6
?/p>
?/p>
mi
的音
329Hz
K7
?/p>
?/p>
re
的音
293Hz
K8
?/p>
?/p>
do
的音
261Hz
?/p>
.
方案比较和认?/p>
通过
8255
?/p>
8253
来实现电子琴模拟?/p>
主要可以分成
两部分,
分别为输入部分和发音部分?/p>
输入部分主要是由
8255
?/p>
8
个常开型开关来完成?/p>
常开型开关如右图?/p>
8
?/p>
常开型开?/p>
K1~K8
?/p>
8255
?/p>
A
?/p>
PA0~PA7
相接,不?/p>
动开关时,为高电平输入,当按下开关时,就接地,为?/p>
电平输入。例如当
K1
键按下时,从
8255
?/p>
A
口输入的
数为
11111110B
,十六进制为
0FEH
。每一个开关按下时?/p>
都对应一?/p>
ASCII
码,如下表所示:
开
?/p>
K1
K2
K3
K4
K5
K6
K7
K8
对应数据
0FEH
0FDH
0FBH
0F7H
0EFH
0DFH
0BFH
7FH
对应频率
静音
493 Hz
440 Hz
392 Hz
349 Hz
329 Hz
293 Hz
261 Hz
输入部分的硬件实现比较简单,所以说主要还是在发音部分。在设计中驱
动扬声器地声的主要有两种方式?/p>
分别是以位触发和定时器控制?/p>
下面就这两种
不同的方式确定两个不同的设计方案?/p>
方案
1
?/p>
发声采用位触发方式。电路原理图如下所示。程序直接控?/p>
PPI
?/p>
8255
可编
程序外围接口芯片)的输出控制寄存器(
I/O
端口?/p>
61H
)的第一位,使该位按
所需的频率进?/p>
1
?/p>
0
的交替变化,
从而产生一串脉冲控制波形,
这些脉冲经过
放大后驱动扬声器发出声音?/p>
可以利用软件延时来控制所产生的脉冲波形的长度和脉宽,
就可以实?/p>
产生不同频率和不同音长的声音。软件实现的程序如下?/p>
IN
AL
?/p>
61H
MOV
AH
?/p>
AL
AND
AL
?/p>
0FCH
;关断定时器通道
2
的门?/p>
SOUND
?/p>
XOR
AL
?/p>
2
;触?/p>
61H
端口?/p>
1
?/p>
OUT
61H
?/p>
AL
MOV
CX
?/p>
DX
?/p>
?/p>
DX
?/p>
=
控制脉冲的计数?/p>
WAIT
?/p>
LOOP
WAIT
;延时循?/p>