【MCS-51单片机汇编语言】期末复习总结③——中断系统之外部中断(题型三)

在这里插入图片描述

中断的概念

在这里插入图片描述

中断源

名称 入口地址
外部中断0(INT0(非))(P3.2) 0003H
定时器0溢出中断(T0) 000BH
外部中断1(INT1(非))(P3.3) 0013H
定时器1溢出中断(T1) 001BH
串行口中断(RX和TX) 00023H

TCON寄存器

D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
  • IT0/IT1:外部中断0/1的中断触发方式选择

    • 1:沿边触发,由10的下降沿有效;
    • 0:电平触发,低电平有效;
  • IE0/IE1:外部中断0/1的中断标志位

    • 1:发生中断;
    • 0:未发生中断;
  • TR0/TR1:T0/T1运行控制位

    • 1:运行;
    • 0:不运行;

IE寄存器

D7 D6 D5 D4 D3 D2 D1 D0
EA ES ET1 EX1 ET0 EX0
  • EX0/EX1外部中断0/1的中断允许设置位:

    • 1:允许中断;
    • 0:禁止中断;
  • ET0/ET1定时器中断T0/T1的中断允许设置位:

    • 1:允许中断;
    • 0:禁止中断;
  • ES串行口的中断允许设置位:

    • 1:允许中断;
    • 0:禁止中断;
  • EA中断允许总开关设置位:

    • 1:允许总中断;
    • 0:禁止总中断;

常考题型

例题1

题目描述

  • 在下图中,正常情况下P1口所接的发光二极管依次循环被点亮(每次只有一个被点亮)。当SO按下时,产生中断,此时8个发光二极管全亮——全暗交替出现8次,然后恢复正常,用外部中断0的中断来实现。

在这里插入图片描述

题解

	ORG 	000H
	AJMP	MAIN
	ORG		0003H
	AJMP	EX00
	ORG		0030H
MAIN:
	SETB 	IT0			;中断方式选择沿边触发
	SETB	EX0			;设置允许外部中断
	SETB	EA			;打开中断允许总开关
	MOV		A,	#0FEH	;设置初始值为1111 1110
LOOP:
	MOV		P1,	A		;点亮不同的LED
	ACALL	DELAY		;进行延时
	RL		A			;A循环左移
	SJMP	LOOP		;一直循环,直到有中断
EX00:
	MOV		R0,	#08H	;设置循环次数
AGA:
	MOV		P1,	#00H	;LED全灭
	ACALL	DELAY		;进行延时
	MOV		P1,	#0FFH	;LED全亮
	ACALL	DELAY		;进行延时
	DJNZ	R0,	AGA		;判断循环是否结束
	RETI				;子程序返回
DELAY:
	MOV		R3,	#0FH	
	MOV		R4,	#OEH
DD:
	DJNZ	R4,	$
	DJNZ	R3,	DD
	RET
	END

代码解释

在这里插入图片描述

  • 本题通过A的循环左移来控制8个LED的亮灭,具体过程如下:

在这里插入图片描述

  • 本题目可当作模板记下;

题目后续更新…

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gllll_yu/article/details/131019762
今日推荐