当前位置:文档之家› 8255键盘扫描与LED数码管显示-实验1-2

8255键盘扫描与LED数码管显示-实验1-2


本实验中8255的地址分配如下: 的地址分配如下: 本实验中 的地址分配如下 端口A 04A0H 端口 端口B 04A2H 端口 端口C 04A4H 端口 04A6H 控制口
; 行扫描键盘和列扫描键盘,确定被按键的行值和列值 行扫描键盘和列扫描键盘, mov cl,3 ;行数 行数 mov ah,0 mov al, 0fbh ; 0fbh=1111 1011B contin: push ax ;将ax的内容 的内容(0fbh)入栈保存 将 的内容 入栈保存 mov dx,04a4h ;C口地址 口地址 out dx,al ;写入 口内容 写入C口内容 写入 口内容0fbh=1111 1011B,即将第三行置为低电平 , mov dx,04a0h ;A口地址 口地址 in al,dx ;读入 口的内容 读入A口的内容 读入 mov ah,al ;将A口的内容送入 口的内容送入ah 将 口的内容送入 cmp ah,0ffh ;判断是否有列线为低电平 判断是否有列线为低电平 jne next ;比较结果不等于 则转移,即有列线为低电平 比较结果不等于0则转移 比较结果不等于 则转移, pop ax ; 比较结果等于 即没有列线为低电平,( )=00fbh 比较结果等于0,即没有列线为低电平,(ax) 即没有列线为低电平,( ror al,1 ; fbh(1111 1011B)循环右移,( )=1111 1101检测下一行 ,(al) ( ) 检测下一行 loop contin ;循环扫描下一行,确定行 循环扫描下一行, 循环扫描下一行 jmp check0 ;若所有行都没有被按下,则返回 若所有行都没有被按下, 若所有行都没有被按下 则返回check0重新检测 重新检测 next: mov ch,cl ;保存行值至 保存行值至ch 保存行值至
五、实验设备
MUT— 型实验箱、8086CPU模块。 MUT—Ⅲ型实验箱、8086CPU模块。 模块
六、8255与8086及8255与键盘的电路连接 与 及 与键盘的电路连接
8255
DB D0~D7 系 统 总 线 IOW IOR A2 A1 A15~A19 ~ 地址 译码器 D0~D7 WR RD A1 A0 PB CS PC KA10~KA12 ~ 行选择线) (行选择线) LED1(位控 位控) 位控 LED-A~LED-DP ~ 段控) (段控) PA
A b c d e f g
*
二、键盘工作原理及键的识别方式
1 .键盘的工作原理 键盘的工作原理
键盘的结构
2 .键的识别 键的识别——行扫描 键的识别 行扫描
PC0 PC1 PC2
1
2
3
三、实验目的
掌握8255的编程原理及使用方法 掌握8255的编程原理及使用方法 8255
四、实验内容
用8255扩展扫描3X8行列式键盘,由一位LED数码管 8255扩展扫描3X8行列式键盘,由一位LED数码管 扩展扫描3X8行列式键盘 LED 显示。 显示。 设计出8255 8086接口对应硬件电路 8255与 接口对应硬件电路, 1、设计出8255与8086接口对应硬件电路,并完成相 应的连接; 应的连接; 调试对应8255 键盘、 8255、 2、调试对应8255、键盘、及数码管硬件接口电路及 相应接口软件 当用键盘输入时在数码管上显示相应值; 3、当用键盘输入时在数码管上显示相应值; 完成习题的内容。 4、完成习题的内容。
共阴极的情况下定义字形码: 共阴极的情况下定义字形码: 定义字形码 FECDBA9876543210
h—小数点 小数点
分类: 分类:
共阳极: 共阳极 公共端接 高电平“ 高电平“H” 发光段接 低电平“ 低电平“L”
a b c d e f g
+5V
共阴极: 共阴极 公共端接 低电平“ 低电平“L” 发光段接 高电平“ 高电平“H”
RL10~RL17 ~ 列选择线) (列选择线)
LED数码管显示屏 数码管显示屏 跳线冒 电源电路
8255并行接口 并行接口 LED1 ~LED6 LED-A~LED-DP ~
CPU板座 板座
3*8键盘 键盘 RL10~RL17 ~ KA10~KA12 ~ 复位键
七、实验步骤
1、实验接线 CS8255(地址为04A0H 04A0H); CS0 ↔CS8255(地址为04A0H); PA0~PA7( RL10~RL17(列选择线) PA0~PA7(输入)↔RL10~RL17(列选择线); PB0~PB7( LED-A~ PB0~PB7(输出)↔发光二极管LED-A~LED-DP ; PC0~PC2( KA10~KA12(行选择线) PC0~PC2(输出)↔KA10~KA12(行选择线) PC3( PC3(输出)↔LED1 编程并全速或单步运行。 2、编程并全速或单步运行。 全速运行时按动键盘,观察数码管的变化。 3、全速运行时按动键盘,观察数码管的变化。 编写实验报告。 4、编写实验报告。
PA
PB
PC
8255外部引脚 8255外部引脚 连接外设端的引线: 连接外设端的引线:
PA0~PA7 PB0~PB7 PC0~PC7
分别对应PA、 、 分别对应 、PB、 PC三个 位输入/输 三个8位输入 三个 位输入/ 出端口
D0 ~ D7 CS RD WR RESET A1 A0 PC PB PA
十、实验程序
assume cs:code code segment org 100h start: mov dx,04a6h ;控制寄存器地址 控制寄存器地址 mov ax,90h ;设置为 口输入,;B口输出 输出 设置为A口输入 口输出,C输出 设置为 口输入, 口输出 out dx,ax ;8255初始化 初始化 check0: ; check0检测是否有健被按下 检测是否有健被按下 mov ax,00h ;C口的 口的PC0、PC1、PC2作为行选择线 口的 、 、 作为行选择线 mov dx,04a4h ;C口地址 口地址 out dx,ax ; 写入 口内容 写入C口内容 口内容00H,即令所有行为低电平 , mov dx,04a0h ;A口地址 口地址 in ax,dx ;读入 口的内容 读入A口的内容 读入 cmp al,0ffh ;判定是否有列线为低电平 判定是否有列线为低电平 je check0 ;没有,无闭合键,则循环等待 没有, 没有 无闭合键, mov cx,05ffh ;延迟常数,可以修改来改变延时时间 延迟常数, 延迟常数 delay: loop delay ;有,则延迟清除抖动,当cx=0时则停止该 有 则延迟清除抖动, 时则停止该 循环
编程1 8255工作方式设定为 工作方式设定为: 口指定为方式0 编程 1 : 把 8255 工作方式设定为 : A 口指定为方式 0 , 输入, 口为输出; 口指定为方式0 输出; 输入 , C 口为输出 ; B 口指定为方式 0 , 输出 ; 设 8255控制字寄存器端口地址为04a 控制字寄存器端口地址为04 8255控制字寄存器端口地址为04a6H。 分析:根据题目得工作方式命令代码是1001 分析:根据题目得工作方式命令代码是10010000B或
本实验中8255的地址分配如下: 的地址分配如下: 本实验中 的地址分配如下 端口A 04A0H 端口 端口B 04A2H 端口 端口C 04A4H 端口 04A6H 控制口
八、实验程序流程图
采用行扫描 法检测
九 、编写实验报告
包括实验预习内容,实验目的,实验内容, 包括实验预习内容,实验目的,实验内容, 实验步骤和正确的程序代码 。 注意: 注意: 1、编程前先在E盘目录下建一个文件夹,并取 编程前先在E盘目录下建一个文件夹, 一个英名名字,即名字中不能有汉字和数字。 一个英名名字,即名字中不能有汉字和数字。编完 程序将其存于该目录下。 程序将其存于该目录下。 2、做实验之前先取下跳线冒。 、做实验之前先取下跳线冒。 3、做完实验将实验箱右上角的CPU板卸下,再 、做完实验将实验箱右上角的CPU板卸下, CPU板卸下 关实验箱。 关实验箱。
工作方式 低电平) 输入 置0(低电平 低电平 高电平) 输出 置1(高电平 高电平 数据传送方向 PC口各数据线的状态(必要时) 口各数据线的状态(必要时) 口各数据线的状态
通过向8255的控制口写入控制字实现
方式控制字* 方式控制字
用于控制8255各端口的工作方式和数据传输方向 各端口的工作方式和数据传输方向 用于控制
位控字
控制PC端口在方式 (输出) 控制 端口在方式0(输出)时每一根输出线的状态 端口在方式
8255工作方式控制字格式 工作方式控制字格式
2.端口寻址方式 2.端口寻址方式
端口的访问格式: 对20H端口的访问格式:直接寻址 端口的访问格式 IN AL,20H ;从地址为 从地址为20H的端口输入一个字节到 的端口输入一个字节到AL 的端口输入一个字节到 OUT 20H,AL ;将AL的内容输出到地址为 的内容输出到地址为20H的端口 的内容输出到地址为 的端口 端口的访问格式: 对200H端口的访问格式:间接寻址 端口的访问格式 MOV DX,200H ;将端口地址送DX寄存器 将端口地址送 寄存器 IN AL,DX ;从地址为 从地址为200H的端口输入一个字节到 的端口输入一个字节到AL 的端口输入一个字节到 OUT DX,AL ;将AL的内容输出到地址为 的内容输出到地址为200H的端口 的内容输出到地址为 的端口
三个端口可通过编程分别指 三个端口可通过编程分别指 编程 定为输入或输出口。 定为输入或输出口。
8255的初始化 8255的初始化
方式0:基本输入 输出方式 方式 :基本输入/输出方式 方式1: 方式 :选通方式 方式2:双向方式(仅 口 方式 :双向方式 仅A口)
8255工作前必须初始化,初始化时需设置: 工作前必须初始化,初始化时需设置: 工作前必须初始化
90H。 90H。
初始化程序段为: 初始化程序段为: dx,04 04a mov dx,04a6h ;控制寄存器地址 mov out ax,90h ax,90h 90 dx,ax ;设置为A口输入,;B口输出,C输出 设置为A口输入, 口输出,C输出 ,C 8255初始化 ;8255初始化
相关主题