赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题 下载本文

精品文档

第一章 1-4

运算器,控制器,存储器,输入设备,输出设备 1-9(7)

1-11(3)

1-12(4)

1-16(3) 见例1-17 1-19(1) 0100 0111 1-20(1) 41 42 38

第二章

2-2 见书p30, 2-4 见书p31, 2-5 见书p31, 2-6 见书p32, 2-9 见书p38, 2-10 见书p39, 2-13 见书p43, 2-14 见书p46,

3-8 按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。 (3)清除内部RAM 3FH 单元的高4位。 (4)使累加器A的最低位置1。 (5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。 (8) 把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。 答案:

(1) MOV A,R6

(2) MOV DPTR,#1000H MOVX A,@DPTR MOV R0,#30H

。 1欢迎下载

精品文档

MOV @R0,A

(3) ANL 3FH,#0FH (4) ORL A,#01H (5) CLR C

(6) ORL A,#30H (7) CLR A

MOV DPTR,#2000H MOVC A,@A+DPTR MOV 20H,A (8) CLR A

MOV DPTR,#2000H MOVC A,@A+DPTR MOV DPTR,#3000H MOVX @DPTR,A

3-10 编写程序段完成如下要求。

(1)将寄存器R0中的内容乘以10(积小于256)。

(2)将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。 (3)将片外RAM 2000H开始的5个字节的数据传送到片内RAM 20H开始的单元中。

(4)有10个字节的二进制数存放在片内RAM以 40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。

(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。 (6)将外部RAM 2040H单元的内容与3040H单元的内容互换。 答案:

(1) MOV B,#0AH MOV A,R0 MUL AB MOV R0,A

(2) ORG 0000H MOV R0,#30H

MOV DPTR,#3000H MOV R7,#0FH

LOOP: MOV A,@R0 MOVX @DPRT,A INC R0 INC DPTR

DJNZ R7,LOOP SJMP $ END

(3) MOV DPTR,#2000H MOV R0,#20H MOV R7,#05H

LOOP: MOVX A,@DPTR MOV @R0,A

。 2欢迎下载

精品文档

INC R0 INC DPTR

DJNZ R7,LOOP END

(4) ORG 0000H

MOV A,40H;A寄存器放最大值,且初始化最大值(默认第一个数) MOV R3,#09H;比较次数 MOV R0,#41H

START: CJNE A,@R0,LOOP

LOOP: JNC LOOP1;如果比A小,则跳转到LOOP1 MOV A,@R0;如果比A大,则更新A的值 LOOP1: INC R0 DJNZ R3 START MOV 50H,A SJMP $ END

(5) MOV DPTR,#20000H MOV R1,#0BH

LOOP: MOVX A,@DPTR ANL A,#0FH MOVX @DPTR,A INC DPTR

DJNZ R1,LOOP SJMP $

(6) MOV DPTR,#2040H MOVX A,@DPTR MOV R0,#20H MOV @R0,A

MOV DPTR,#3040H MOVX A,@DPTR XCH @R0,A MOVX @DPTR A MOV A,@R0

MOV DPTR,#2040H MOVX @DPTR,A

3-15 设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。

ORG 0000H

START: MOV A,R3

JB ACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为负,求原码的方法是符号位不变,其余位取反加1 MOV R3,A

HERE: SJMP $

NEXT: XRL A,#7FH;高八位,符号位不变,其余取反

。 3欢迎下载