北京理工大学微机原理实验报告一.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验名称:  本科实验报告 基于并行接口的键盘控制 课程名称: 计算机原理与应用 实验时间: 任课教师: 实验地点: 实验教师: 实验类型: □ 原理验证 ■ 综合设计 □ 自主创新 学生姓名: 实验类型: □ 原理验证 ■ 综合设计 □ 自主创新 学号/班级: 组 号: 学 院: 同组搭档: 专 业: 成 绩: 实验一 基于并行接口的键盘控制 一、实验目的 掌握简单并行接口(8255)的工作原理及使用方法。 了解小键盘的工作原理,学会设计小键盘的接口技术。 利用 8255 并行接口芯片作为小键盘的接口电路,掌握它们之间的线路连接。 4、程序实现实验系统上的 4×4 键盘输入。 二、实验内容与步骤 1、接线: PA0-PA3 /8255 PB0-PB3 /8255  接 接  行 0-行 3 /4×4 键盘 列 0-列 3 /4×4 键盘 CS /8255 接 YI/IO 地址 2、编程:实现在按下小键盘上的任意键后,在微机屏幕上显示相应的字符。输入输出 关系如下: 小键盘 显示 小键盘 显示 0 -- 0 8 -- 8 1 -- 1 9 -- 9 2 -- 2 A -- A 3 -- 3 B -- B 4 -- 4 C -- C 5 -- 5 D -- D 6 -- 6 E -- E 7 -- 7 F -- F 三、实验原理 1、熟悉 8255A-5 芯片工作方式的设置 (1)基本控制字 基本控制字的格式如下: 各位含义如下: D7:设定工作方式标识,1 有效。 D6、D5:A 组方式选择:00--方式 0 01--方式 1 1X—方式 2 D4:端口 A 功能(1=输入,0=输出) D3:端口 C 高四位功能(1=输入,0=输出) (2)端口 C 置位/复位控制字 端口 C 置位/复位控制字如下: 各位含义如下: D7:位置 0 位置 1 标识,0 有效。 D6、D5、D4:不用,可人任意值。 D3、D2、D1:端口 C 的每位选择,由 111—000 分别表示第 7 位—第 0 位。 D0:位置 1/置 0,1=置 1,0=置 0. 2、键盘阵列由 8255 芯片控制,并将行列连接到 8255 芯片的 A 口、B 口,还需要连 接 8255 芯片的片选到 YI/IO 地址(288H~28FH),以使键盘阵列由 8255 芯片控制。其线 路连接图如下: 3、编程方法 对于片选信号根据设置的 YI/IO 地址来具体连接相应的输出端口。8255A 与 4×4 矩阵 键盘接口线路如图所示。PA0-PA3 分别连接矩阵键盘的 4 条行线,PB0-PB3 分别连接矩阵键 盘的四条列线。所有的行线、列线通过上拉电阻共与正电压源相连。因此当按键没有按下 时,所有的端口读入的数据均为‘1’。当有按键按下时,对应的行线与列线读入的数据应 保持一致。皆为‘0’或皆为‘1’。矩阵键盘的检测就是按照上述特性实现的。一共有两 种检测方法:行扫描法、行反转法。 (1)键的识别—行扫描法 第一步应该判断是否有键按下 第二步判断哪一个键被按下,显示 程序参考流程如下: (2)键的识别—行反转法 第一步应该判断是否有键按下 第二步行线输出,列线输入 第三步列线输出,行线输入 第四步判断哪一个键被按下,显示 程序参考流程如下: 图 3 行反转法工作示意图 四、实验代码及注释 data segment tab1 DB F, E, D, C tab2 DB B, A, 9, 8 tab3 DB 7, 6, 5, 4 tab4 DB 3, 2, 1, 0 kb DB 00eh, 00dh,00bh,007h port equ 288h data ends stack segment sta db 256 dup(?) top equ size sta stack ends code segment assume cs:code,ds:data,ss:stack main proc far mov ax,data mov ds,ax mov ax, stack mov ss,ax mov sp,top mov dx, port+3 ;初始化 8255 mov al out dx,al begin: mov al,0 mov dx, port ;A 口设置 out dx,al ;A 口输出 mov dx, port+1 ;B 口设置 in al,dx ;B 口输出 and al,0fh ;判断是否有键按下 cmp al,0fh je begin ;没有键按下,则继续扫描 mov al mov dx, port out dx,al mov dx, port+1 in al,dx lea bx,tab1 cmp al

文档评论(0)

liuxingmeng + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档