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