⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yingjian.asm

📁 利用8255实现8路抢答器,简单明了,初学者非常适用,经实验证明绝对可行
💻 ASM
字号:
DATA    SEGMENT
  TABLE   DB      3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;定义0到9的显示码表
DATA    ENDS
CODE    SEGMENT
ASSUME  CS:CODE, DS:DATA
START:  MOV     AX,DATA
        MOV     DS,AX
        MOV     AL,8AH         ;初始化8255
        MOV     DX,0DC63H	   ;设置A口输出,B口输入,C口高4位输入,低4位输出      
        OUT     DX,AL         

LAB1:   MOV     DX,0DC61H      ;自B口输入数据    
        IN      AL,DX         
        CMP     AL,0           ;判断输入数据是否为0
        JE      LAB1
        MOV     CL,0FFH
        CLC
LAB2:   SHR     AL,1           ;进行右移判断,直到进位标志为1为止
        INC     CL
        JNC     LAB2           
        MOV     AL,CL          ;如果进位标志为1则将循环移动的次数送到AL
        LEA     BX,TABLE       ;取数字码表首地址
        XLAT                   ;查表求出数字码
        MOV     DX,0DC60H      ;把查找到的数字玛由A口送到LED数码管显示最先抢答的组号     
        OUT     DX,AL
        MOV		DX,0DC62H	   ;将PC0和PC1口均置为高电频,令喇叭发声
        MOV		AL,03H
        OUT		DX,AL
         			           ;延时,本时间段内喇叭一直发声
        MOV 	DX,6000
L1:		MOV 	CX,6000  
L2:		DEC		CX 
        JNZ   	L2    
        DEC   	DX                 
        JNZ   	L1  
        MOV		DX,0DC62H 		   ;停止发声
        MOV		AL,00H
        OUT		DX,AL                         
CHECK:  MOV		DX,0DC62H          ;检查PC7是否为1,若为1则复位,跳到START进行下一轮抢答
        IN		AL,DX                          
        TEST	AL,80H       
	    JNZ		START			   
	    TEST	AL,40H
		JMP		EXIT	    
	    JMP		CHECK			   
EXIT:   MOV		AH,4CH
        INT     21H
CODE    ENDS
        END     START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -