interupt.asm

来自「中断程序」· 汇编 代码 · 共 54 行

ASM
54
字号
	;中断实验	
	ORG	0000H
	AJMP	MAIN
	ORG	0003H
	AJMP	HANDLER_INT0
	ORG	0030H
MAIN:	SETB	EX0
	SETB	IT0
	SETB	EA
BEGIN:	MOV	20H,#00000000B	;记录中断后亮灯个数
	MOV	R0,#11111110B	;记录跑马灯位置
LOOP:	MOV	P1,R0
	;LCALL	DELAY	;延时一段时间
	MOV	A,R0
	RL	A
	MOV	R0,A
	AJMP	LOOP	;到最开始LOOP处重新运行
        ORG     0200H
HANDLER_INT0:	;中断处理程序
	CLR	EA	;关中断
	MOV	R1,20H
	INC	R1
	MOV	20H,R1	
	MOV	R2,20H
	MOV	ACC,#00H
	LCALL	SHINE	;调用闪烁函数
	JB	03,RESET	;清零
	SETB	EA	;开中断
	RETI
RESET:	MOV	20H,#00000000B	;记录中断后亮灯个数
	RET
DELAY:	MOV	R5,#20	;延时子程序
D1:	MOV	R6,#40
D2:	MOV	R7,#248
	DJNZ	R7,$
	DJNZ	R6,D2
	DJNZ	R5,D1
	RET
SHINE:	MOV	ACC,#00H
	LCALL	FIND
	CPL	A
	MOV	P1,A
	LCALL	DELAY
	MOV	P1,#FFH
	MOV	R2,20H
	DJNZ	R1,SHINE
	RET
FIND:	RL	ACC
	INC	ACC
	DJNZ	R2,FIND
	RET
	END

⌨️ 快捷键说明

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