汇编接口综合实验——简易电子琴实验.docVIP

汇编接口综合实验——简易电子琴实验.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE/NUMPAGES

简易电子琴

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

实验报告崔雪莹安容巧张佳悦

实验目的

了解小键盘的工作原理,学会如何使用小键盘进行控制,熟悉流程和代码编程;

了解电子音响的发声原理,会利用8253A级联方式控制其发出不同频率的声音;

了解8X8点阵灯的工作原理,学会显示想要显示的文字和图形;

实验结合8253,8259,8255和小键盘,8*8点阵的应用共同实现。

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

实验内容

实验主要概述:

键盘控制实现两个音部(高音部、低音部)的发声,即:

当在键盘上按下‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’时,电子音响发出不同频率的低音调,当在键盘上按下‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’时,电子音响发出不同频率的高音调。

同时,在8x8灯上显示相应音调对应的‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’、‘A’、‘B’、‘C’、‘D’、‘E’、‘F’。

1.小键盘按键的获取:

图1小键盘原理图

小键盘按键获取原理:

(1)判断是否有按键按下:若某行为低电平,此时该行某按键对应某列也为低电平,则说明该按键此时被按下。将8255A的A口03接行0到行3,B口的03接列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的输出0作为通道2的2的门控信号;通道0工作在3方式,产生一定周期的方波信号,通道2工作在1方式;1方式虽然不是周期输出,但是在2信号上升沿周期出现时,1方式可以重新计数。通过对这两种工作方式的计数初值的合理设置,通道2可以产生不同频率的周期性信号,来控制扬声器的发声。

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

图2波形图

3.8x8点阵灯显示

8x8灯的工作原理:

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

图3-18x8点阵内部结构图

图3-28x8点阵外部图

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

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

图3-28x8点阵‘0’显示

8X8点阵显示“0”是因为,我们将所有的列都置高电平,然后让需要显示的发光二极管对应的点的行置低电平,其他行的则置高电平,然后把置低电平的行码记为1其他的记0,再从左向右读,则可以得到一个8位的2进制数。

如上图所示,第1行和第8行是00H,第2行和第7行是18H,第3、4、5行都是24H

则“0”显示的编码是:00H,18H,24H,24H,24H,18H,00H

实验分析与设计

硬件思路

小键盘部分:因为小键盘的读入用的扫描法,4行必须使用输入,4列必须输出,所以我们用到8255的03作为输出,03作为输入。8255片选接200H。

扬声器发声部分:8253使用级联方式,0接22接扬声器,片选接210H。

点阵显示部分:8X8阵列行接A口,列接B口。

中断部分:6接5中断。

软件分析

查询流程图如下:

图4-1主程序 图4-2小键盘子程序

图4-3发声子程序图4-48x8灯子程序

实验硬件连线

您可能关注的文档

文档评论(0)

152****7751 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档