第一范文网 - 专业文章范例文档资料分享平台

微机原理及接口技术

来源:用户分享 时间:2025/5/24 23:26:07 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

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

搜索更多关于: 微机原理及接口技术 的文档
微机原理及接口技术.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1adyx3exid2xn8u9vo23_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top