LOOP: MOV A,@R0 CJNE A,#0AAH,NOT MOV 51H,#01H SJMP DEND NOT: INC R0 DJNZ R2,LOOP MOV 51H,#00H DEND: SJMP DEND
4.11 试编写程序,查找在内部 RAM 的 20H~40H 单元中出现“00H”这一数据的次数。并 将查找到的结果存入 41H单元。 ORG 0000H MOV R0,#20H
MOV R2,#21H MOV 41H,#00H LOOP: MOV A,@R0 CJNE A,#00H,NOTE INC 41H NOTE: INC R0 DJNZ R2,LOOP END
4.12 若 SP=60H,标号 LABEL 所在的地址为 3456H。LCALL 指令的地址为 2000H,执行
如下指令: 2000H LCALL LABEL 后,堆栈指针 SP和堆栈内容发生了什么变化?PC
的值等于什么?如果将指令 LCALL 直接换成 ACLAA 是否可以?如果换成 ACALL 指令, 可调用的地址范围是什么?
答:堆栈指针 SP 的内容为 62H,堆栈内容(61H)=03H,(62H)=20H;PC 值为 3456H,
不能将 LCALL 换为 ACALL,因为 LCALL 可调用 64KB 范围内的子程序,而 ACALL 所调
用的子程序地址必须与 ACALL 指令下一条指令的第一个字节在同一个 2KB 区内(即 16 位
地址中的高 5 位地址相同。如果换为 ACALL,可调用的地址范围为 2002H-27FFH。
第五章 MCS-51 的中断系统 5.1 什么是中断系统?
答:能够实现中断处理功能的部件称为中断系统。
5.3 什么是中断源?MCS-51 有哪些中断源?各有什么特点?
答:产生中断的请求源称为中断源。MCS----51中断系统共有 5 个中断请求源:(1)外部中
断请求 0,中断请求标志为 IE0。(2)外部中断请求 1,中断请求标志为 IE1。(3)定时器/
计数器 T0 溢出中断请求,中断请求标志为 TF0。(4)定时器/计数器 T1 溢出中断请求,中
断请求标志为 TF1。(5)串行口中断请求,中断请求标志为 TI 或 RI。特点:2 个外部中断
源,3 个内部中断源。
5.4 外部中断1 所对应的中断入口地址为(0013H)。 5.5 下列说法错误的是:(A,B,C)
(A)各中断源发出的中断请求信号,都会标记在 MCS-51系统的 IE 寄存器中。
(B)各中断源发出的中断请求信号,都会标记在 MCS-51系统的 TMOD 寄存器中。 (C)各中断源发出的中断请求信号,都会标记在 MCS-51系统的 IP寄存器中。
(D)各中断源发出的中断请求信号,都会标记在 MCS-51系统的 TCON 和 SCON 寄存器中。
5.6 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中 断请求的响应? 答:典型时间是 3-8 个机器周期。在下列三种情况下,CPU 将推迟对外部中断请求的响应: (1)CPU正在处理同级的或更高级优先级的中断
(2)所查询的机器周期不是当前所正在执行指令的最后一个机器周期 (3)正在执行的指令是 RETI或是访问 IE 或 IP的指令。
5.7 中断查询确认后,在下列各种 8031 单片机运行情况中,能立即进行响应的是(D) (A)当前正在进行高优先级中断处理 (B)当前正在执行 RETI指令
(C)当前指令是 DIV指令,且正处于取指令的机器周期 (D)当前指令是 MOV A,R3 5.8 8031 单片机响应中断后,产生长调用指令 LCALL,执行指令的过程包括:首先把(PC) 的内容压入堆栈,以进行断点保护,然后把长调用指令的 16 位地址送(PC),使程序执行 转向(响应中断请求的中断入口的地址)中的中断地址区。
5.9 编写出外部中断 1 为跳沿触发的中断初始化程序。 ORG 0000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100H MAIN: SETB IT1 SETB EX1 SETB EA HERE: AJMP HERE PINT1: RETI END
5.10 在 MCS-51 中,需要外加电路实现中断撤除的是(D)
(A)定时中断
(B)脉冲方式的外部中断 (C)外部串行中断
(D)电平方式的外部中断
5.11 MCS-51有哪几种扩展外部中断源的方法?
答:扩展外部中断源的方法有:定时器/计数器作为外部中断源的使用方法;中断和查询结合的方法。
5.12 下列说法正确的是(C D)
(A)同一级别的中断请求按时间的先后顺序顺序响应。
(B)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
(C)低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先 级中断请求
(D)同级中断不能嵌套。
5.13 中断服务子程序返回指令 RETI和普通子程序返回指令 RET 有什么区别?
答:两者的区别在于,RETI 清除了中断响应时,被置 1 的 MCS-51 内部中断优先级寄存器
的优先级状态。
5.14 某系统有 3 个外部中断源 1、2、3,当某一中断源变为低电平时,便要求 CPU 进行处 理,它们的优先处理次序由高到低依次为 3、2、1,中断处理程序的入口地址分别为 1000H, 1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。 ORG 0000H
AJMP MAIN ORG 0003H LJMP PINT0 ORG 0100H MAIN: SETB IT0 SETB EX0 SETB EA HERE: SJMP HERE PINT0: PUSH PSW PUSH A
JNB P1.3,IR3 JNB P1.2,IR2 JNB P1.1,IR1 PINTIR: POP A POP PSW RETI
IR3: LJMP IR3INT IR2: LJMP IR2INT IR1: LJMP IR1INT ORG 1000H IR3INT: LJMP PINTIR ORG 1100H