单片机原理及应用(第三版)张毅刚课后习题答案完整版 下载本文

-

ORG 3000H

--

-

DB

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

答:( A)=80H ,( SP)=40H,(41H)=50H,(42H)=80H ,(PC) =8050H 4. 编写程序,查找在内部 RAM的 30H~50H单元中是否有 0AAH这一数据。若有,则将 51H单元置为“ 01H”;若未找到,则将 51H单元置为“ 00H”。 答:参考程序如下:

START:

MOV R0,#30H

MOV R2,#20H LOOP:

MOV

A,@R0

CJNE A,#0AAH,NEXT MOV

51H,#01H

LJMP EXIT NEXT: INC

R0

DJNZ R2,LOOP MOV 51H,#00H

EXIT: RET

5. 写出完成如下要求的程序段,但是不能改变未涉及位的内容。

A. 把 ACC.3, ACC.4, ACC.5和 ACC.6 清“ 0”。 B. 把累加器 A 的中间 4 位清“ 0”。 C. 把 ACC.2和 ACC.3 置“ 1”。 答: A. ANL A,#87H

B. ANL A,#0C3H C. ORL A,#0CH

6. 若 SP=60H,标号 LABEL所在的地址为 3456H。LCALL指令的地址为 下指令:

2000H LCALL LABEL

--

,执行如 2000H-

后( 1)堆栈指针 SP和堆栈内容发生了什么变化?( 2)PC的值等于什么?( 3)如果将指令 LCALL直接换成 ACALL是否可以?( 4)如果换成 ACALL指令,可调

SP=SP+1=62H

(2)PC=3456H (3)不可以

(4)2KB= 2048 Byte

7. 试编写程序,查找在内部 RAM的 20H~40H单元中出现“ 00H”这一数据的次数,

NEXT: LOOP:

并将查找到的结果存入 41H单元。 答:参考程序如下:

START:

MOV MOV MOV MOV JNZ INC INC

41H,#0

用的地址范围是什么? 答:

( 1)SP=SP+1=61H

(61H)=PC的低字节 =03H

(62H)=PC的高字节 =20H

R0,#20H R2,#20H A,@R0 NEXT 41H R0

DJNZ R2,LOOP RET

8. 对例 3-22 中的程序进行修改,使其达到精确的 50ms延时时间。

答:原来的程

序:

ORG

D50ms:

0100H

;执行时间 1μs

MOV R7,#200

--

-

D1: MOV

R6,#125

;执行时间 1μs

--