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

上传人:第*** 文档编号:57519573 上传时间:2018-10-22 格式:DOC 页数:15 大小:11.30MB
返回 下载 相关 举报
汇编接口综合实验——简易电子琴实验_第1页
第1页 / 共15页
汇编接口综合实验——简易电子琴实验_第2页
第2页 / 共15页
汇编接口综合实验——简易电子琴实验_第3页
第3页 / 共15页
汇编接口综合实验——简易电子琴实验_第4页
第4页 / 共15页
汇编接口综合实验——简易电子琴实验_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《汇编接口综合实验——简易电子琴实验》由会员分享,可在线阅读,更多相关《汇编接口综合实验——简易电子琴实验(15页珍藏版)》请在金锄头文库上搜索。

1、简易电子琴键盘控制电子音响发声、8x8 点阵 LED 灯显示实验报告12281166 崔雪莹 12281161 安容巧 12281183 张佳悦 一、实验目的1.了解小键盘的工作原理,学会如何使用小键盘进行控制,熟悉流程和代码编程; 2.了解电子音响的发声原理,会利用 8253A 级联方式控制其发出不同频率的声音; 3.了解 8X8 点阵 LED 灯的工作原理,学会显示想要显示的文字和图形; 4.实验结合 8253,8259,8255 和小键盘,8*8 点阵的应用共同实现。 5.实验目的效果:小键盘触发按键,控制电子音响发出相应频率的声音,8X8 点阵 LED 灯 显示相应的内容。二、实验内容

2、实验主要概述:实验主要概述: 键盘控制实现两个音部(高音部、低音部)的发声,即: 当在键盘上按下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 小键盘原理图小键盘按键获取原理: (1)判断是否有按键按下:若某行为低电平,此时该

3、行某按键对应某列也为低电平,则说明 该按键此时被按下。将 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,则表示 该列

4、有键按下;若为 1,则表示无键按下。这样按顺序扫描每一行及其列值,直到找到为 0 列值, 则该键就是被按下的键。计算按键编号。 (4)根据找到的键号,执行键号对应的程序。2.2.电子音响发声电子音响发声 电子音响发声基本原理: 8253A 的 1 工作方式和 3 方式配合可以产生占空比不同的输出方波,用这种波形可控制电子 音响发出不同的音调。 使用通道 0 和通道 2,通道 0 的输出 OUT0作为通道 2 的 GATE2 的门控信号;通道 0 工作在 3 方式,产生一定周期的方波信号,通道 2 工作在 1 方式;1 方式虽然不是周期输出,但是在 GATE2 信号上升沿周期出现时,1 方式可以

5、重新计数。通过对这两种工作方式的计数初值的合理设 置,通道 2 可以产生不同频率的周期性信号,来控制扬声器的发声。 当 3 方式的方波周期大于 1 方式定时长度时,可通过改变 1 方式定时时间常数就可以改变方 波的占空比(如下图 2 示) ;当 3 方式的方波周期小于 1 方式定时长度时,1 方式总处于定时期间 (发声停止) 。图 2 波形图 3.8x83.8x8 点阵点阵 LEDLED 灯显示灯显示 8x8LED 灯的工作原理: 只要在行线 R1-R8 加上高电平,在列线 C1-C8 加上低电平,则两线交叉点的 LED 就会发光。 通过此原理我们计算出了1 、 2 、 3 、 4 、 5 、

6、 6 、 7 、 8 、 9 、 A 、 B 、 C 、 D 、 E 、 F所对应的编码方案。并通过逐列扫描并延迟的方法实现字母的显示。图 3-1 8x8 点阵内部结构图图 3-2 8x8 点阵外部图举一个很简单的例子,将 8X8 点阵简化为 1 个平面有 64 个点 图像,来确定其显示的编码形 式,如代码中 DATA 部分的那个大的显示矩阵 以“0”来举例说明显示 8X8 点阵显示过程:图 3-2 8x8 点阵0显示8X8 点阵显示“0”是因为,我们将所有的列都置高电平,然后让需要显示的发光二极管 对应的点的行置低电平,其他行的则置高电平,然后把置低电平的行码记为 1 其他的记 0,再从 左

7、向右读,则可以得到一个 8 位的 2 进制数。 如上图所示,第 1 行和第 8 行是 00H,第 2 行和第 7 行是 18H,第 3、4、5 行都是 24H 则“0”显示的编码是:00H,18H,24H,24H,24H,18H,00H三、实验分析与设计1.硬件思路 小键盘部分:因为小键盘的读入用的扫描法,4 行必须使用输入,4 列必须输出,所以我们用到 8255 的 PA0-PA3 作为输出,PB0-PB3 作为输入。8255 片选接 200H。 扬声器发声部分:8253 使用级联方式,OUT0 接 GATE2,OUT2 接扬声器,片选接 210H。 点阵显示部分:8X8 阵列行接 A 口,

8、列接 B 口。 中断部分:PC6 接 MIR5 中断。 2.软件分析 查询流程图如下:图 4-1 主程序 图 4-2 小键盘子程序图 4-3 发声子程序 图 4-4 8x8LED 灯子程序四、实验硬件连线图根据以上描述的硬件设计思路,电路连接线应如下图所示。图 5-1 发声子程序实验连线图图 5-2 小键盘子程序(含数码管)实验连接图图 5-3 8X8LED 灯子程序实验连接图五、实验创意我们应用了小键盘模块、扬声器和 8x8 点阵 LED 模块,同时结合 8253A 定时计数模块,8255 并行接口模块,8299 中断模块将整个实验联系起来,实现了一个简易电子琴的装置。同时在 8x8 点阵显

9、示了按键对应的字符显示,让这个电子琴看起来更加炫! 8*8 点阵我们最初想随着音调的高低变化亮度和点的多少,在实现的时候发现效果并不明显, 所以我们改成随着按键发声来显示对应的字符,效果比之前好得多。另外,发声频率由 8253A 写入计数控制,基本音有 7 个,加上一个高一调,而键盘可控制 16 个,所以我们分为高音部和低音部,实现了一个转换音的效果,更加人性化。 其实,我们有更高的愿望,比如,我们希望可以小键盘弹奏一首歌后按键实现自动播放整首 歌曲的功能,这样就更加完整了,但是因时间和能力关系没能实现。我们还想用 128x64LCD 实现 一个音阶才的实时变化,希望我们在今后的学习之余回顾这

10、个实验时可以补上这些功能。六、实验结果演示1. 实际实验连线图 黄线 8255 的 A 口连 8*8 点阵的行 18,小键盘的行 03,红线 B 口连点阵的列 18,小 键盘的列 03。绿线表示 8253 的级联和 cs 接法,黑线连接扬声器 SIN 和 out2,中断 MIR5 接 PC6。2. 8x8 点阵 各字母显示图(部分举例,未全部贴图)(2 5 8 9 A B D E )3. 声音视频见文件“实验效果视频” 。七、实验体会崔雪莹: 本次实验我主要负责程序代码的编写和整个实验的设计,通过此次实验,我对于硬件编程有 了更为深入的了解,懂得了怎样编写硬件的较大一点的程序,尤其是写代码的时

11、候一定要思路清 晰,明确的知道自己到底想要做些什么,怎么去设计这个实验,通过此次试验对于今后的硬件学 习打下了很好的基础。经过这次试验,我对 8255 等芯片以及小键盘、8X8LED 灯、电子音响的工 作原理有了更为全面、更为深刻的理解,锻炼自己独立的利用手上芯片进行独立编程的能力。实 验还有继续改进的地方,我会继续学习,更加深入的去学习和研究。安容巧: 本次试验是接口课中最复杂的一次实验,第一次实验课之前我们小组就去实验室讨论试验内 容,确定了试验内容之后开始代码的初步编写。经过实验课和老师的指导,我们完善了设计方案, 经过多次课下小组自己找时间自己做实验,最终完成了试验。经过这次试验,我们

12、队 8255 等芯片 以及小键盘、8X8LED 灯、电子音响的工作原理有了更为全面、更为深刻的理解。小组一起做实验, 一起讨论,让我们学会了团队合作,对以后的学习工作很有帮助。张佳悦: 本实验考查的内容很多,不仅有课堂上所学习的汇编与接口的知识,还对我们团队小组的分 工协作提出了很高的要求。我们小组成员分工明确、各尽所能,为整个设计性实验的完成作出了 贡献。同时,在和小组成员的交流中,我也强化了自己对汇编程序的理解以及对接口知识的巩固。 最后的成果,我个人感到非常满意,达到了预期的效果。汇编与接口方面还有很多我们不太会用 但的确重要的东西需要我们在接下来的学习中深入研究和探索。_附件:程序清单

13、(加注释).model small .386 DATA SEGMENT KEY_NO DB ? ;用来存储按键编号;8*8 点阵显示时字符 D0 DB 00H,18H,24H,24H,24H,24H,18H,00H;0 D1 DB00H,18H,18H,18H,18H,18H,18H,00H;1 D2 DB00H,3CH,20H,20H,3CH,04H,04H,3CH;2 D3 DB00H,3CH,20H,20H,3CH,20H,20H,3CH;3 D4 DB00H,24H,24H,24H,3CH,20H,20H,20H;4 D5 DB00H,3CH,04H,04H,3CH,20H,20H,3

14、CH;5 D6 DB00H,3CH,04H,04H,3CH,24H,24H,3CH;6 D7 DB 00H,3CH,20H,20H,20H,20H,20H,20H;7 D8 DB 00H,3CH,24H,24H,3CH,24H,24H,3CH;8 D9 DB 00H,3CH,24H,24H,3CH,20H,20H,3CH;9 DA DB18H,3CH,66H,66H,7EH,66H,66H,66H;A DB1 DB00H,1CH,24H,24H,14H,24H,24H,14H;B DC DB00H,18H,24H,04H,04H,24H,18H,00H;C DD1 DB 00H,1CH,24H

15、,24H,24H,24H,1CH,00H;D DE DB 00H,3CH,04H,04H,3CH,04H,04H,3CH;E DF DB 00H,3CH,04H,04H,3CH,04H,04H,04H;FNUMER DB 7FH,5BH,6DH,6FH,40H,77H DIPIN DW 0EE8H,0D49H,0BD6H,0B41H,9F7H,8E1H,7E8H,778H,7A6H,700H,66BH,600H,55BH,500H,454H,400H ;频率表即计数器计数初值 DATA ENDS;前 8 个低音,后 8 个高音CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX, DATAMOV DS, AX CLI MOV DX, 21H;设置主片中断屏蔽字 IN AL, DX AND AL, 11011111B ;使用 MIR5 OUT DX, AL CALL PREPARE;调用 PREPARE 子程序,写入中断向量表 LOP: CALL INKEY ;调用 INKEY 子程序,检测按键 CALL SHOWALP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号