微机原理及接口技术

发布时间 : 星期六 文章微机原理及接口技术更新完毕开始阅读

INT 21H ;程序终止 START ENDP CODE ENDS

END START 非规则字

SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT START PROC FAR

ASSUME CS:CODE

MOV AX, 8000H ; 存储器扩展空间段地址 MOV DS, AX

AA0: MOV SI, 0000H ; 数据首地址 MOV CX, 0010H MOV AX, 0000H AA1: MOV [SI], AX INC AX INC CX INC SI LOOP AA1 JMP AA1

MOV AX,4C00H

INT 21H ;程序终止 START ENDP CODE ENDS

END START

实验八 键盘扫描及显示设计实验

一、实验目的

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

二、实验设备

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

三、实验内容

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

四、程序清单 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 JMP KCODE L2: TEST AL,02H 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 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

延时子程序 存键盘值到相应位的缓冲中

联系合同范文客服:xxxxx#qq.com(#替换为@)