指令执行过程:
ACALL addr11 ;(PC)+2 -> PC
;(SP)+1 -> SP, PC7-0 -> (SP)
;(SP)+1 -> SP, PC15-8 -> (SP)
;addr11 ->PC10-0,PC15-11不变
强化指令1 考题练习:
已知 (SP)=60H ,子程序 SUBTRN 的首地址为 0345H,现执行位于 0123H 的 ACALL SUBTRN。
双字节指令后, (PC)=___,(61H)=___,(62H)= ____ 。
答案:
(PC)=0345H (61H)=25H (62H)=01H
仿真图:
强化指令1 考题扩展练习:
已知 (SP)=50H ,子程序 SUBTRN 的首地址为 2620H,现执行位于 20F6H 的 ACALL SUBTRN。
双字节指令后, (PC)=___,(51H)=___,(52H)= ____ 。
答案:
(PC)=2620H (51H)=F8H (52H)=20H
小知识点补充5:
1,寻址实质就是如何确定操作数的单元地址
2,存储器映象是存储器在整个存储空间的地址范围
3,MCS —51 布尔处理机的存储空间是00H~ 7FH
4,定时器中断请求发生在定时时间到
5,中断响应时间是指从查询中断请求标志位到转向中断服务程序地址区入口地址所需的机器周期数(3-8个机器周期)
6,8051 的堆栈区一般开辟在用户RAM 区
题40
编写程序利用下图开关上下拨动一次所产生的脉冲信号作为外部中断0的中断请求信号来控制8个LED的亮灭(亮灭方式自行定义)。
备注:中断源是指引起CPU中断的事件。
解析:相关中断寄存器讲解见前文
程序源码:
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#0FFH
MOV IE,#81H
MOV IP,#01H
MOV TCON,#01H
MOV A,#0FEH
MOV R6,#8
MOV R7,#8
CLR C
SJMP $
INT0ADDR:
CJNE R6,#00H,L1
AJMP L2
L1:
DEC R6
CLR C
MOV P1,A
RLC A
AJMP L4
L2:
CJNE R7,#00H,L3
MOV R6,#8
MOV R7,#8
MOV A,#0FEH
MOV P1,A
AJMP L4
L3:
SETB C
RRC A
MOV P1,A
DEC R7
L4: RETI
END
仿真效果视频:
https://www.bilibili.com/video/BV1hp4y1X7aV/
《单片机汇编》期末考试、考研常见考题、习题,题型汇总(十四)、中断
小知识点补充6:
开集极电路(英语:Open Collector,俗称“集电极开路门”或“OC门”),是一种集成电路的输出装置。OC门实际上只是一个NPN型三极管,并不输出某一特定电压值或电流值。OC门根据三极管基极所接的集成电路来决定(三极管发射极接地),通过三极管集电极,使其开路而输出。而输出设备若为场效应晶体管(MOSFET),则称之为漏极开路(英语:Open Drain,俗称“OD门”),工作原理相仿。通过OC门这一装置,能够让逻辑门输出端的直接并联使用。两个OC门的并联,可以实现逻辑与的关系,称为“线与”,但在输出端口应加一个上拉电阻与电源相连。
小知识点补充7:
51单片机对外部中断源的扩展方式:
1,使用定时器溢出扩展
2,采用中断查询法扩展
3,使用扩展芯片
编写程序利用下图按键开关控制8个LED的亮灭。按下按键1,8个LED同时亮,按下按键2,8个LED同时熄灭。8个LED默认状态是前四盏点亮(按键2拥有最高优先级)
程序源码:
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0ADDR
ORG 0013H
LJMP INT1ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#0FFH
MOV IE,#85H
MOV IP,#04H
MOV TCON,#05H
MOV P1,#0F0H
SJMP $
INT0ADDR:
MOV P1,#00H
RETI
INT1ADDR:
MOV P1,#0FFH
RETI
END
备注:在实际应用中,按键检测最好增加10ms左右的延时,用于消抖。
仿真图:
上电默认状态
按键1按下
按键2按下
小知识点补充8:
中断定义:是指CPU暂时停止正在执行的程序,转去执行请求CPU为之服务的内、外部事件的服务程序,待该服务程序执行完成后,又返回到被暂停的程序继续运行的过程。
**与非门(英语:NAND gate)**是数字电路的一种基本逻辑电路。是与门和非门的叠加,有多个输入和一个输出。若当输入均为高电平(1),则输出为低电平(0);若输入中至少有一个为低电平(0),则输出为高电平(1)。与非门可以看作是与门和非门的叠加。