内容发布更新时间 : 2024/11/18 3:41:05星期一 下面是文章的全部内容请认真阅读。
汇编与接口技术研究型实验报告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 -