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