单片机原理及应用答案(张毅刚)(2)

2019-04-08 18:58

PUSH A MOV A,B INC A

MOVC A,@A+DPTR PUSH A RET

ORG 4000H

DB 10H,80H,30H,50H,30H,50H

A=50H SP=50H (51H)=30H (52H)=50H PC=5030H 3.13 写出完成如下要求的指令,但是不能改变未涉及位的内容。 (A)把 Acc.3,Acc.4,Acc.5 和 Acc.6清 0。 解:ANL A,#87H

(B)把累加器 A的中间 4 位清0。 解:ANL A,#C3H

(C)使 Acc.2 和 Acc.3置 1。 解:ORL A,#0CH 3.14 假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A

后,A的内容为(0CBH) 3.15 假设 A=55H,R3=0AAH,在执行指令后 ANL A,R3 后, A=(00H), R3=(0AAH) 3.16 如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下

列指令后:

POP DPH POP DPL POP SP

则:DPH=(3CH) DPL=(5FH) SP=(4FH) 3.17 假定 SP=60H,A=30H,B=70H,执行下列指令: PUSH A PUSH B

后,SP的内容为(62H),61H单元的内容为(30H),62H单元的内容为(70H)。

3.18 借助本书中的指令表:表 3-3~表 3-7 对如下的指令代码(16 进制)进行手工反汇编。 FF C0 E0 E5 F0 F0 解:查表可知

FF MOV R7,A C0 E0 PUSH 0E0H E5 F0 MOV A,0F0H F0 MOVX @DPTR, A

第四章 MCS-51汇编语言程序设计

4.1 用于程序设计的语言分为哪几种?它们各有什么特点?

答:用于程序设计的语言基本上分为三种:机器语言、汇编语言和高级语言。

(1)机器语言:在单片机中,用二进制代码表示的指令、数字和符号简称为机器语言,直 接用机器语言编写的程序称为机器语言程序。用机器语言编写的程序,不易看懂,不便于记 忆,且容易出错。(2)汇编语言具有如下特点:A、汇编语言是面向机器的语言,程序设计 人员必须对 MCS----51 单片机的硬件有相当深入的了解。B、助记符指令和机器指令一一对

应,所以用汇编语言编写的程序效率高,占用的存储空间小,运行速度快,因此用汇编语言 能编写出最优化的程序。C、汇编语言程序能直接管理和控制硬件设备(功能部件),它能 处理中断,也能直接访问存储器及 I/O接口电路。(3)高级语言:高级语言不受具体机器的

限制,都是参照一些数学语言而设计的,使用了许多数学公式和数学计算上的习惯用语,非 常擅长于科学计算。计算机不能直接识别和执行高级语言,需要将其“翻译”成机器语言才 能识别和执行。 4.3 解释下列术语:“手工汇编”、“机器汇编”、“交叉汇编”以及“反汇编”。 答、手工汇编:通常把人工查表翻译指令的方法称为“手工汇编”。机器汇编:机器汇编实 际上是通过执行汇编程序来对源程序进行汇编的。交叉汇编:由于使用微型计算机完成了汇编,而汇编后得到的机器代码却是在另一台计算机(这里是单片机)上运行,称这种机器汇 编为“交叉汇编”。反汇编:有时,在分析现成产品的ROM/EPROM 中的程序时,要将二进

制数的机器代码语言程序翻译成汇编语言源程序,该过程称为反汇编。

4.4 下列程序段经汇编后,从 1000H开始的各有关存储单元的内容将是什么? ORG 1000H

TAB1 EQU 1234H TAB2 EQU 3000H DB “MAIN”

DW TAB1,TAB2,70H 答:(1000H)=‘M’(1001H)=‘A’(1002H)=‘I’(1003H)=‘N’(1004H)=34H (1005H)=12H (1006H)=00H (1007H)=30H (1008H)=70H (1009H)=00H 4.5 设计子程序时注意哪些问题? 答:在编写子程序时应注意以下问题:

(1)子程序的第一条指令的地址称为子程序的入口地址。该指令前必须有标号。 (2)主程序调用子程序,是通过主程序或调用程序中的调用指令来实现的。

(3)注意设置堆栈指针和现场保护,因调用子程序时,要把断点压入堆栈,子程序返回执 行 RET 指令时再把断点弹出堆栈送入 PC 指针,因此子程序结构中必须用堆栈。

(4) 子程序返回主程序时,最后一条指令必须是 RET 指令,它的功能是在执行调用指令时,

把自动压入堆栈中的断点地址弹出送入 PC 指针中,从而实现子程序返回主程序断点处继续

执行主程序。

(5)子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的子程序,通常 情况下可允许嵌套 8 层。

(6)在子程序调用时,还要注意参数传递的问题。

4.6 试编写1个程序,将内部 RAM中 45H单元的高 4 位清0,低 4 位置1。 解: MOV A,45H

ANL A,#0FH ORL A,#0FH

4.7 已知程序执行前有 A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后, POP DPH POP DPL

MOV DPTR,#3000H RL A MOV B,A

MOVC A,@A+DPTR PUSH A MOV A,B INC A

MOVC A,@A+DPTR PUSH A

ORG 3000H

DB 10H,80H,30H,80H,50H,80H

A=80H SP=40H (41H)=50H (42H)=80H PC=8050H。

4.8 计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHZ)。 7B0F MOV R3,#15 ;1 个机器周期 7CFF DL1: MOV R4,#255 ;1个机器周期 8B90 DL2: MOV P1,R3 ;2个机器周期 DC DJNZ R4,DL2 ;2 个机器周期 DB DJNZ R3,DL ;2个机器周期 22 RET ;2 个机器周期 解:程序执行的时间为 15.346μs。 4.9 假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A

后,A的内容为(0CBH)

4.10 试编写程序,查找在内部 RAM的 30H~50H单元中是否有 0AAH这一数据。若有,则

将 51H单元置为“01H”;若未找到,则将 51H单元置为“00H”。 ORG 0000H MOV R0,#30H MOV R2,#21H 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 内部中断优先级寄存


单片机原理及应用答案(张毅刚)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东大学工程化学习题解答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: