汇编接口综合实验——简易电子琴实验 下载本文

内容发布更新时间 : 2024/5/2 14:13:20星期一 下面是文章的全部内容请认真阅读。

汇编与接口技术研究型实验报告2013

简易电子琴

——键盘控制电子音响发声、8x8点阵LED灯显示

实验报告

12281166 崔雪莹 12281161 安容巧 12281183 张佳悦

一、 实验目的

1. 了解小键盘的工作原理,学会如何使用小键盘进行控制,熟悉流程和代码编程; 2. 了解电子音响的发声原理,会利用8253A级联方式控制其发出不同频率的声音; 3. 了解8X8点阵LED灯的工作原理,学会显示想要显示的文字和图形; 4. 实验结合8253,8259,8255和小键盘,8*8点阵的应用共同实现。

5. 实验目的效果:小键盘触发按键,控制电子音响发出相应频率的声音,8X8点阵LED灯显示相应的内容。

二、 实验内容

实验主要概述:

键盘控制实现两个音部(高音部、低音部)的发声,即: 当在键盘上按下‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’时,电子音响发出不同频率的低音调,当在键盘上按下‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’时,电子音响发出不同频率的高音调。

同时,在8x8LED灯上显示相应音调对应的‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’。 1.小键盘按键的获取:

图1 小键盘原理图

- 1 -

汇编与接口技术研究型实验报告2013

小键盘按键获取原理:

(1)判断是否有按键按下:若某行为低电平,此时该行某按键对应某列也为低电平,则说明该按键此时被按下。将8255A的A口PA0-PA3接行0到行3,B口的PB0-PB3接列0到列3。A口做输出,B口做输入。将A口输出设置为0000读取B口的此时的值,若不是全为1则说明有按键按下。无按键按下则等待。

(2)去抖动:延时,等待按键通断引起的抖动消失。延时后再读B端口,若还有按键闭合,则认为按键已确定。

(3)找到被按下的按键:用逐行扫描的方法读出此时按键相应的值。从第0行开始,输出0,顺序逐行扫描。每扫描一行,读入列线值,从0列开始,逐列检查是否为0。若为0,则表示该列有键按下;若为1,则表示无键按下。这样按顺序扫描每一行及其列值,直到找到为0列值,则该键就是被按下的键。计算按键编号。

(4)根据找到的键号,执行键号对应的程序。

2.电子音响发声

电子音响发声基本原理:

8253A的1工作方式和3方式配合可以产生占空比不同的输出方波,用这种波形可控制电子音响发出不同的音调。

使用通道0和通道2,通道0 的输出OUT0作为通道2的GATE2的门控信号;通道0工作在3方式,产生一定周期的方波信号,通道2 工作在1方式;1方式虽然不是周期输出,但是在GATE2信号上升沿周期出现时,1方式可以重新计数。通过对这两种工作方式的计数初值的合理设置,通道2可以产生不同频率的周期性信号,来控制扬声器的发声。

当3方式的方波周期大于1方式定时长度时,可通过改变1方式定时时间常数就可以改变方波的占空比(如下图2示);当3方式的方波周期小于1方式定时长度时,1方式总处于定时期间(发声停止)。

图2 波形图

3.8x8点阵LED灯显示 8x8LED灯的工作原理:

只要在行线R1-R8加上高电平,在列线C1-C8加上低电平,则两线交叉点的LED就会发光。通过此原理我们计算出了‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’所对应的编码方案。并通过逐列扫描并延迟的方法实现字母的显示。

- 2 -

汇编与接口技术研究型实验报告2013

图3-1 8x8点阵内部结构图

图3-2 8x8点阵外部图

举一个很简单的例子,将8X8点阵简化为1个平面有64个点 图像,来确定其显示的编码形式,如代码中DATA部分的那个大的显示矩阵

以“0”来举例说明显示8X8点阵显示过程:

- 3 -