单片机原理及其接口技术王敏课后作业答案.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2-4 MCS-51单片机中执行程序的地址放在哪?由几个位组成?最大寻址范围是多少?

答:放在程序计数器PC中,16位,64KB。

2-5 在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元有什么特定的含义?

答:0000H 复位后,PC=0000H,开始执行程序的地址

0003H 外部中断0 (INT0)入口地址

000BH 定时器0中断(TF0)入口地址

0013H 外部中断1(INT1)入口地址

001BH 定时器1中断(TF1)入口地址

0023H 串行口中断TI/RI入口地址

2-10 开机复位以后,CPU使用哪一组工作寄存器?它们的地址是什么?如何改变当前工作寄存器?

答:使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。

3-7 指出指令中的50H或66H个代表什么?

解:

①MOV A, #50H 立即数

MOV A, 50H 直接地址

MOV 50H, #20H 直接地址

MOV C, 50H 位地址

MOV 50H, 20H 直接地址

②MOV @R0, #66H 立即数

MOV R6, #66H 立即数

MOV 66H, #45H 直接地址

MOV 66H, C 位地址

MOV 66H, R1 直接地址

3-9 写出能完成下列数据传送的指令:

解:

①R1中内容传送到R0;

MOV A, R1

MOV R0,A

②内部RAM 20H单元中的内容送到30H单元;

MOV 30H, 20H

③外部RAM 20H单元中的内容送到内部RAM 20H单元;

MOV R0,#20H

MOVX A, @R0

MOV 20H, A

④外部RAM 2000H单元中的内容送到内部RAM 20H单元;

MOV DPTR, #2000H

MOVX A, @DPTR

MOV 20H, A

⑤外部ROM 2000H单元中的内容送到内部RAM 20H单元;

MOV DPTR, #2000H

MOV A, #00H

MOVC A, @A+DPTR

MOV 20H, A

⑥外部2000H单元中的内容送到外部RAM 3000H单元;

MOV DPTR, #2000H

MOVX A, @DPTR

MOV DPTR, #3000H

MOVX @DPTR, A

3-11 已知:(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少?

①MOV SP, #70H ②MOV SP, #60H

PUSH 20H PUSH 22H

PUSH 21H PUSH 21H

PUSH 22H PUSH 20H

解:(73H)=Z;

(72H)=Y;

(71H)=X;

(63H)=X;

(62H)=Y;

(61H)=Z;

3-20 试编出能完成如下操作的程序:

解:

①使20H单元中数的高两位变“0”,其余位不变;

ANL 20H, #3FH

②使20H单元中数的高两位变“1”,其余位不变;

0RL 20H, #0C0H

③使20H单元中数的高两位变反,其余位不变;

XRL 20H, #0C0H

④使20H单元中数的高四位变“1”,低四位变“0”;

MOV 20H, #0F0H

⑤使20H单元中数的所有位变反。

XRL 20H, #0FFH

3-27 已知:外部RAM 2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM 20H为始址的存储区(负数和负零不作处理)。

解:

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV R0,#14H

MOV R1,#20H

MOV DPTR, #2000H

ROT: MOVX A, @DPTR

JB ACC.7,NEXT

MOV @R1,A

INC R1

NEXT: INC DPTR

DJNZ R0,ROT

SJMP $

END

第四章作业(P104)

4-7 已知RAM的BLOCK单元,请编写其中可以统计正负数个数分别存入NUM 和NUM+1单元的程序。

解:

ORG 0100H

LEN DATA 20H

NUM DATA 21H

BLOCK DATA 23H

MAIN: MOV NUM, #00H

MOV NUM+1,#00H

MOV R0,#BLOCK

LOOP: MOV A,@R0

JNB ACC.7,POSI

INC NUM+1

SJMP NEXT

POSI: INC NUM

NEXT: INC R0

DJNZ LEN,LOOP

SJMP $

END

4-9 外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM 3000H-3100H区域的程序。

解:采用当型循环,判断程序结束条件

ORG 1000H

MOV DPTR,#2000H

NEXT: MOVX A, @DPTR

ORL DPH , #10H ; 将DPH中的20H变成30H

MOVX @DPTR, A

ANL DPH , #0EFH ; 将DPH中的30H变成20H

INC DPTR

MOV A, DPH

CJNE A, #21H, NEXT

MOVX A, @DPTR ;将2100H单元的数据送A

MOV DPH, #31H

MOVX @DPTR, A ;将A的数据送3100H单元

SJMP $

END

相关文档
最新文档