实验八键盘接口设计.

实验八键盘接口设计.
实验八键盘接口设计.

实验八键盘接口设计与 LED 显示

一.实验目的

1.了解 8255A 芯片的结构,掌握 8255A 的初始化编程。

2.掌握通过 8255A 并行口读写数据的方法。

3.了解非编码键盘结构,学会读取按键的方法。

二.实验仪器及设备

1. 一套 EL-MUT-III 单片机 /微机实验系统。

2. 一台微型计算机

3. MCS8086软件一套。

4. 若干连接导线。

三.实验内容

1.用 8255A 作为键盘接口,实验原理线路图如图 9所示。这里,要求将 8255A 芯片的片选 8255CS 通过连接导线接至系统的片选信号 CS0。

8255各端口地址如下:

端口 A 04A0H 端口 B 04A2H

端口 C 04A4H 控制端口 04A6H

2.运行示例程序 KB.ASM 以检查系统硬件。

3. 利用实验箱上的 8255A 可编程并行接口电路 (8255 PORT 、矩阵键盘(KEYBOARD UNIT 和 4个发光二极管(LED1~LED8中的 4个组成实验硬件电路,编

写程序用行扫描法识别矩阵键盘上的闭合键 ,做到在键盘上每按一个数字键(0~F ,用发光二极管将该数字键对应的二进制代码显示出来。

注:发光二极管点亮代表数字键对应的 bit 位为 1。

四.编程提示

1.在 MCS8086软件平台上编写宏汇编程序与在 MASM611环境下编写源程序在格式上稍有区别。此平台不需要定义数据段、堆栈段, 只需要定义代码段。数据段的内容在程序后面, code ends 之前定义即可。

代码段定义方式为 :

assume cs:code

code segment public org 100h

start :

. .

.(程序内容

code ends

end start

预定义方式与 MASM611的预定义方式相同,在 assume cs:code之前定义即可。2

2。

图2 ‘ 0-F 数字键’在 3×8矩阵键盘中的分布位置图

3.做键盘检测时要注意加延时去抖动的操作,避免一次闭合被检测为多次按键按下。

4.编写程序时,要根据操作的需要灵活地设置 8255A 的各端口的工作方式。

5.程序设计时,可将各键对应的键值(行线值、列线值放在一个表中,将要显示的 0~F 字符放在另一个表中,通过查表的方式来确定按下的是哪一个键并正确显示出来。注:编写程序时,在 org 100h的下一行,必须写上标号 start :,否则不能通过链接。

五.硬件连接

实验箱上的线路连接如表 1所示。

表 1

六. EL-MUT-III 实验箱使用说明

EL-MUT-III 实验箱用一根交叉串口线和微型计算机机箱相连。

将 8086CPU 模块插在实验箱右上角的插槽上(注意方向 ,同时接上实验箱的电源线。打开电源,此时实验箱的左上角数码管应显示 1996_7,几秒钟后变化,当实验箱通过软件 (MCS 8086与计算机连接成功时变为显示 C_,当连接没有成功时,显示P_。

七.示例源程序 KB.ASM

程序功能:用行翻转法识别矩阵键盘上的闭合键,做到在键盘上每按一个数字键(0~ F ,用发光二极管将该数字键对应的二进制代码显示出来。

硬件连接:PA[0..7]←→ RL[10..17], PB[0..2]←→ KA[10..12]

PC[0..3]←→ LED[8..5]/ LED[4..1], 8255CS ←→ CS0

源程序代码:

pa equ 04a0h ; 定义端口 A 的地址

pb equ 04a2h ; 定义端口 B 的地址

pc equ 04a4h ; 定义端口 C 的地址

pct equ 04a6h ; 定义控制端口的地址

assume cs:code

code segment public

org 100h

start : mov al,82h ; 初始化 8255A ,方式 0, A 端口输出, B 端口输入mov dx,pct

out dx,al

mov dx,pc

mov al,0ffh

out dx,al

wait: mov al,00h

mov dx,pa

out dx,al ;a 端口输出 00

mov dx,pb

in al,dx ;b 端口获得数据

cmp al,07h ; 判断是否有按键按下

jz wait ; 无按键按下,等待

push ax ; 有键按下,将数据压栈保护

push ax ; 按键的列值存于 al ,此时压入堆栈

mov cx,16eah

dly: loop dly ; 延时,消抖动

mov dx,pct

mov al,90h ; 行反转,再次初始化 8255A ,方式 0, A 端口输入, B 端口输入出 out dx,al

mov dx,pb

pop ax

out dx,al ;b 端口输出列值

mov dx,pa

in al,dx ; 获得行值

pop bx ; 将列值取出

mov ah,bl ;ah 为列值

mov si,offset table

mov di,offset char

mov cx,16

tt: cmp ax,[si] ; 比较按键值与 table 里的数据

jz nn ; 相等,跳转

dec cx

jz start ; 没有相等的值,重新开始

add si,2

inc di

jmp tt ; 继续查找比较

nn: mov cl,[di] ; 按照输入的键值,找到相应的输出值mov al,82h

mov dx,pct

out dx,al

wait2: mov al,00h

mov dx,pa

out dx,al ;a 端口输出 00

mov dx,pb

in al,dx ; 获得列值

cmp al,07h ; 判断按键是否松开

jnz wait2 ; 未松开,等待

mov dx,pc ; 已松开,将按键值输出

not cl

mov al,cl

out dx,al

jmp wait

table dw 06feh,06fdh,06fbh,06f7h,06bfh,067fh,03feh,03fdh,03efh,

dw 03dfh,03bfh,037fh,05fbh,05f7h,05efh,05dfh

char db 00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0ah,0bh,0ch,0dh,0eh,0fh code ends

end start

八.预习要求

1.分析示例程序,掌握 8255A 初始化编程的方法。

2.按要求编写相应功能的键盘接口程序,要求包括以下内容:

(1程序部分

● 程序采用的主要算法。

● 程序框图及源程序清单。

(2硬件部分

● 原理线路与实际接线图。

● 主要调试步骤及测试方案。

九.实验报告要求

示例程序

● 程序框图,主要算法

● 测试操作与结果分析

整理编写好的程序,要求包括以下内容:

● 程序采用的主要算法。

● 程序框图及源程序清单。

● 原理线路、接口电路工作过程分析和实际的接线图。

● 主要调试步骤、程序功能测试方案和测试结果。

● 实验中遇到的主要问题、解决方法及其分析说明。【附录】

MCS8086软件的安装和使用

一、软件的安装

1、找到文件夹 MCS8086,双击 setup.exe ,开始安装。

2、点击 Yes ,下一步。

3、 User name、 Company Name随意填写, Serial Number填 123456789, 点 next 下一步。

4、此处选择安装目录,默认路径即可, Next 。

5、此处默认第一项 Typical 即可。

6、单击 Finish ,安装完成。

7、此时,桌面上会出现图示快捷方式。二、软件的使用

双击打开快捷方式 ,出现如下界面。

点击确定即可

进入主界面之后,有两种方式进行操作,第一种方式是通过下图所示的菜单栏。

第二种方式是通过菜单栏下方的快捷工具栏,如下图所示:

通过这两种方式实现的操作时相同的,可自行选择一种即可。

1. 新建文件

选择:文件→新建,或者点击工具栏的“新建”图标,之后即可开始编辑文件。文件保存为 .asm 格式。

2. 打开文件

选择:文件→打开,或者点击工具栏的“打开”图标:

选择文件,单击‘打开’ 。

3. 编译、链接

文件编辑结束后, 工具栏将出现如图所示, 此时, 即可开始进行编译、链接, 这两步可以一次完成。

如图所示两种方式都可以完成。

选择之后,将出现编译、链接提示。

如果程序有错,将出现提示信息。

此时,点击程序界面,将出现红色区域提示错误所在的行。

4. 连接硬件、下载程序

程序编译、链接通过后,就可以与硬件连接,下载程序了。 (此时确保实验箱与计算机已连接并加电

选择:运行→连接设置。单击‘确定’

.

串口选择默认的 COM1,波特率选择默认的 9600即可,如果提示失败,则修改串口(COM2/COM3 ,视实际情况而定。

设置串口后,即可通过以下两种方式中的一种进行系统复位。

在弹出的提示窗口中,单点确定,随后马上按实验箱上右下角(在 3×8键盘的下方的复位键(RST 。

此时,将提示复位成功,同时程序通过交叉串口线下载到了实验箱上的存储器中等待执行。

右下角将可看到通讯联系的提示。

同时,程序代码界面将出现如图所示绿色光带在源程序所在的第一行。

5. 程序运行

程序下载完成后,即可运行程序。

如上图所示,程序运行有多种方式,可自行选择,有全速运行、单步运行、运行到光标处、从光标处开始运行、跟踪运行等。

可以通过上图所示的菜单栏选择,也可以通过单击下图所示的工具栏选择。

运行程序时,可在界面左边查看寄存器的值,对于调试程序非常方便。

6.调试方式可以选择“单步运行” ,或者“运行到光标处”运行程序,同时结合查看左边的寄存器,进行程序的调试。提示:对程序进行修改后,须要点击——保存,再重新编译、链接,同时进行系统复位,否则修改不能生效。

相关主题
相关文档
最新文档