中断嵌套实验

使用汇编语言,要求:

外部中断1可以嵌套外部中断0

没有中断时,8个LED发光二极管以0.1s的速度闪烁。

有外部中断0时,8个LED发光二极管以0.1s的速度流水点亮。(中断子程序0)

有外部中断1时,会打断外部中断0,8个LED发光二极管会常亮10秒(中断子程序1)

允许外部中断0和外部中断1,外部中断触发方式设置(IT0,IT1),中断入口设置,设置中断优先级。

程序段: 

      org   0000h
      jmp   Start
      ORG	0003H
      JMP	INT00
	  ORG   0013H
	  JMP   INT11
      ORG   0100H
Start:	
      MOV 	SP,#60H
      SETB	EA 
      SETB	EX0
	  SETB  EX1
      ClR   IT0
	  CLR   IT1
	  SETB  PX1
      CLR 	A  
Loop:	
	  CPL  	A  
	  MOV	P0,A  
	  LCALL DELAY 
      JMP  	Loop

DELAY: 
	  MOV 	R6,#200
D1:      
	  MOV 	R7,#248   
      DJNZ 	R7,$      
      DJNZ 	R6,D1
      RET 

;----中断子程序0程序示例------
INT00:
	  MOV 	R1,#9
	  MOV	A,#0ffH
 LOOP1:		 
	  MOV	P0,A   
	  LCALL	DELAY		
	  SETB	C 
	  RLC	A 
	  DJNZ 	R1,LOOP1
	  RETI 
;----中断子程序1----
INT11:
	 MOV A,#00H
	 Mov P0,A
	 MOV R1,#9
LOOP1:		  
	 LCALL	DELAY		
	 DJNZ 	R1,LOOP1
	 RETI

注释:

1.org:汇编起始地址命令

org伪指令规定程序存放的起始地址。如果不用org,则汇编得到的目标程序将从0000H地址开始。

例如:

ORG 2000H

Start:Mov A,#00H

即规定标号START代表从地址2000H开始存放程序。

2. 中断允许寄存器IE

 3.TCON寄存器:IT1,IT0选择外部中断请求是什么方式。

 4.流水灯点亮

INT00:
	  MOV 	R1,#9
	  MOV	A,#0ffH
 LOOP1:		 
	  MOV	P0,A   
	  LCALL	DELAY		
	  SETB	C 
	  RLC	A 
	  DJNZ 	R1,LOOP1
	  RETI 
;1111 1111
;1111 1110
;1111 1100

5.我不知道DELAY可以延时多久,所以我不知道R1应该置多少。

;----中断子程序1----
;需要常亮10秒
INT11:
	MOV A,#00H
	Mov P0,A
      ;全亮
	MOV 	R1,#9
	;循环10秒(这里R1该置多少?)
LOOP1:		  
	LCALL	DELAY		
	DJNZ 	R1,LOOP1
	RETI

6.关于外部中断1触发方式设置不同的方式,带来的影响?

IT1=0,电平触发方式

IT1=1,跳沿触发方式

???

学习这篇文章:

(2条消息) 电平触发和边沿触发的区别_下降沿触发_Pilgrim2017的博客-CSDN博客

 电平触发:高或低电平保持的时间内触发

边沿触发:由高到低或由低到高这一瞬间触发

在数字电平变化的电压上升沿或下降沿到一定阈值时就产生触发,即边沿触发。

当电压达到数字电平的高或低电压一段时间后(一般是最小脉冲宽度的三分之一),才产生触发是电平触发。

边沿触发的话,电平保持多久都只产生一次。

电平触发的话,只要一直保持对应的电平,就会不断触发。

比如:按下开关,边沿触发的话,应该只会触发一次中断。

而电平触发的话,会不断响应。(个人理解,不知道对不对)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lpl还在学习的路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值