微机原理与接口技术——简易八人抢答器设计

寵の児 提交于 2019-12-22 01:39:54

八人抢答器利用8255来实现,A口接数码管输出,B口接输入,代码如下:

**`;=========================================================
; 文件名: A82551.ASM
; 功能描述: B口为输入,A口为输出,实现八人抢答器
; IOY0
;=========================================================

IOY0         EQU   0600H          ;片选IOY0对应的端口始地址
MY8255_A     EQU   IOY0+00H*2     ;8255的A口地址
MY8255_B     EQU   IOY0+01H*2     ;8255的B口地址
MY8255_C     EQU   IOY0+02H*2     ;8255的C口地址
MY8255_MODE  EQU   IOY0+03H*2     ;8255的控制寄存器地址

SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS
CODE	SEGMENT
		ASSUME CS:CODE
START:	MOV DX, MY8255_MODE
		MOV AL, 82H
		OUT DX, AL;初始化8255
		
		MOV DX, MY8255_C
		MOV AL,00H
		OUT DX,AL
		
AA1:	MOV DX, MY8255_B
		IN  AL, DX;读入B口数据
		CALL DELAY
		CMP AL,0FFH;由于采用共阴极,所以没有人抢答时为全1,比较输入的数据
		           ;与FF,即可知道是否有人抢答
		JZ AA1     ;如果没有则跳转到开头,继续检测
		MOV AH,AL
		AND AL,01H
		JZ DISP1
		MOV AL,AH
		AND AL,02H
		JZ DISP2
		MOV AL,AH
		AND AL,04H
		JZ DISP3
		MOV AL,AH
		AND AL,08H
		JZ DISP4
		MOV AL,AH
		AND AL,10H
		JZ DISP5
		MOV AL,AH
		AND AL,20H
		JZ DISP6
		MOV AL,AH
		AND AL,40H
		JZ DISP7
		MOV AL,AH
		AND AL,80H
		JZ DISP8
DISP1:	MOV AL,06H	
		MOV DX, MY8255_A
		OUT DX, AL;输出1
		JMP EXIT
DISP2:	MOV AL,5BH	
		MOV DX, MY8255_A
		OUT DX, AL;输出2
		JMP EXIT
DISP3:	MOV AL,4FH	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DISP4:	MOV AL,66H	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DISP5:	MOV AL,6DH	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DISP6:	MOV AL,7DH	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DISP7:	MOV AL,07H	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DISP8:	MOV AL,7FH	
		MOV DX, MY8255_A
		OUT DX, AL
		JMP EXIT
DELAY:	PUSH CX
		MOV CX, 0F00H
AA2:	PUSH AX
		POP  AX
		LOOP AA2
		POP  CX
		RET
EXIT:  
CODE	ENDS
		END  START

硬件连接图如下

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!