您的当前位置:首页实验四 8255键盘及显示接口实验

实验四 8255键盘及显示接口实验

2022-03-17 来源:乌哈旅游


实验四 8255键盘及显示接口实验

一、实验目的

了解键盘扫描及数码显示的基本原理,熟悉8255的编程/

二、实验设备

PC机一台,TD-PITE实验装置一套。

三、实验内容

将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0-F共16个数,。实验具体内容如下:将键盘进行编号,记作0—F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来,再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。

实验内容:

将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。8255键盘及显示实验参考

接线图如图1所示。

键盘及数码管显示单元电路图如图 4-1 所示。

图4-2 8255 键盘扫描及数码管显示实验线路图

功能描述: 键盘及数码管显示实验,通过8255控制。

8255的B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。按下按键,该按键对应的位置将按顺序显示在数码管上。

实验程序:

MY8255_A EQU 0600H

MY8255_B EQU 0602H

MY8255_C EQU 0604H

MY8255_CON EQU 0606H

SSTACK SEGMENT STACK

DW 16 DUP(?)

SSTACK ENDS

DATA SEGMENT

DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV SI,3000H

MOV AL,00H

MOV [SI],AL ;清显示缓冲

MOV [SI+1],AL

MOV [SI+2],AL

MOV [SI+3],AL

MOV [SI+4],AL

MOV [SI+5],AL

MOV DI,3005H

MOV DX,MY8255_CON ;写8255控制字

MOV AL,81H

OUT DX,AL

BEGIN: CALL DIS CALL CLEAR CALL CCSCAN JNZ INK1

JMP BEGIN

INK1: CALL DIS

CALL DALLY

CALL DALLY

CALL CLEAR

;调用显示子程序

;清屏

;扫描

CALL CCSCAN

JNZ INK2 ;有键按下,转到INK2

JMP BEGIN

INK2: MOV CH,0FEH

MOV CL,00H

COLUM: MOV AL,CH

MOV DX,MY8255_A

OUT DX,AL

MOV DX,MY8255_C

IN AL,DX

L1: TEST AL,01H JNZ L2

MOV AL,00H ;L1

;is L1?

JMP KCODE

L2: TEST AL,02H ;is L2?

JNZ L3

MOV AL,04H JMP KCODE

L3: TEST AL,04H JNZ L4

MOV AL,08H JMP KCODE

L4: TEST AL,08H JNZ NEXT

MOV AL,0CH KCODE: ADD AL,CL

;L2

;is L3?

;L3

;is L4?

;L4

CALL PUTBUF

PUSH AX

KON: CALL DIS

CALL CLEAR

CALL CCSCAN

JNZ KON

POP AX

NEXT: INC CL

MOV AL,CH

TEST AL,08H

JZ KERR

ROL AL,1

MOV CH,AL

JMP COLUM

KERR: JMP BEGIN

CCSCAN: MOV AL,00H

MOV DX,MY8255_A

OUT DX,AL

MOV DX,MY8255_C

IN AL,DX

NOT AL

AND AL,0FH

RET

CLEAR: MOV DX,MY8255_B

MOV AL,00H

OUT DX,AL

RET

DIS: PUSH AX

MOV SI,3000H

MOV DL,0DFH

MOV AL,DL

AGAIN: PUSH DX

MOV DX,MY8255_A

OUT DX,AL

MOV AL,[SI]

MOV BX,OFFSET DTABLE

AND AX,00FFH

ADD BX,AX

MOV AL,[BX]

MOV DX,MY8255_B

OUT DX,AL

CALL DALLY

INC SI

POP DX

MOV AL,DL

TEST AL,01H

JZ OUT1

ROR AL,1

MOV DL,AL

JMP AGAIN

OUT1: POP AX

RET

DALLY: PUSH CX

MOV CX,0006H

T1: MOV AX,009FH

T2: DEC AX

JNZ T2

LOOP T1

POP CX

RET

PUTBUF: MOV SI,DI

MOV [SI],AL

DEC DI

CMP DI,2FFFH

JNZ GOBACK

MOV DI,3005H

GOBACK: RET

CODE ENDS

END START

实验步骤:

1. 按图4-1连接线路图;

2. 编写实验程序,检查无误后编译、连接并装入系统;

3. 运行程序,按下按键,观察数码管的显示,验证程序功能。

因篇幅问题不能全部显示,请点此查看更多更全内容