单片机作业答案

发布 2020-04-15 19:42:28 阅读 5028

作业答案2

第2章 mcs-51单片机指令系统与汇编语言程序设计。

4. 假定累加器a中的内容为30h,执行指令1000h:movc a,@a+pc后,把程序存储器( 1031h )单元的内容送入累加器a中。

6. 指出下列指令中的源操作数的寻址方式。

1)mov r0,#30h立即寻址。

2)mov a,30h直接寻址。

3)mov a,@r0寄存器间接寻址。

4)movx a,@dptr寄存器间接寻址。

5)movc a,@a+dptr 变址寻址。

6)mov p1,p2直接寻址。

7)mov c,30h位寻址。

8)mul ab寄存器寻址。

9)mov dptr,#1234h 立即寻址。

10)pop acc直接寻址。

11)sjmp相对寻址。

7. 指出下列各指令在程序存储器中所占的字节数。

1)mov dptr,#1234h 3字节。

2)movx a, @dptr 1字节。

3)sjmp loop2字节。

4)mov r0,a1字节。

5)ajmp loop2字节。

6)mov a,30h2字节。

7)ljmp loop3字节。

8)mov b,#30h2字节。

15.设堆栈指针(sp)=60h,片内ram中的(30h)=24h,(31h)=10h。执行下列程序段后,61h, 62h, 30h, 31h, dptr及sp中的内容将有何变化?

push 30h

push 31h

pop dpl

pop dph

mov 30h, #00h

mov 31h, #0ffh

解:结果为: 61h、62h单元为堆栈单元,其内容已被弹出栈。 (30h)=00h

31h)=0ffh (dptr)=2410h (sp)=60h

17.完成以下的数据传送过程。

1)r1的内容传送到r0。

2)片外ram 20h单元的内容送r0。

3)片外 ram 20h单元的内容送片内ram 20h单元。

4)片外ram 1000h单元的内容送片内 ram 20h单元。

5)rom 2000h单元的内容送r0。

6)rom 2000h单元的内容送片内ram 20h单元。

7)rom 2000h单元的内容送片外ram 20h单元。

解:cpu内部ram用mov指令,不能在两个rn/@ri之间直接传送。

片外 ram用movx指令:

低256b,可在a与@ri之间传送;

64kb范围内,可在a与@dptr之间传送。

rom用movc指令,只能用movc a,@a+dptr/movc a,@a+pc。

1)r1的内容传送到r0 ;

mov a, r1

mov r0, a

2)片外ram 20h单元内容送r0 ;

mov r1, #20h

movx a, @r1

mov r0, a

3)片外 ram 20h单元的内容送片内ram 20h单元;

movr0, #20h

movx a, @r0

mov 20h, a

4)片外ram 1000h单元的内容送片内 ram 20h 单元;

movdptr, #1000h

movx adptr

mov 20ha

5)rom 2000h单元的内容送r0单元;

clr amovdptr, #2000h

movc a, @a+dptr

mov r0, a

6)rom 2000h 单元的内容送片内ram 20h单元;

clr amov dptr, #2000h

movc a, @a+dptr

mov 20h, a

7)rom 2000h单元的内容送片外ram 20h单元。

clr amov dptr, #2000h

movc a, @a+dptr

mov r0, #20h

movx @r0, a

19.编程将片内ram的40h~60h单元中内容送到片外ram以3000h开始的单元中。并将原片内ram数据块区域全部清0。

解org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov r7,#21h

mov r1,#40h

mov dptr,#3000h

loop: mov a,@r1

movx @dptr,a

mov @r1, #00h

inc r1

inc dptr

djnz r7,loop

sjmp $

end23.设有100个有符号数,连续存放在片外ram以2000h为首地址的存储区中,试编程统计其中正数、负数、零的个数。

解: org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov r2,#

clr amov r3,a

mov r4,a

mov r5,a

mov dptr,#2000h

loop: movx a,@dptr

cjne a,#00h,net1

inc r3

sjmp net3

net1: jb acc.7,net2

inc r4

sjmp net3

net2: inc r5

net3: inc dptr

djnz r2,loop

sjmp $

end24.试编一查找程序,从外部ram首地址为2000h、长度为9fh的数据块中找出第一个ascii码a,将其地址送到20a0h和20a1h单元中。

解: org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov dptr,#2000h

mov r7,#9fh

lp0: movx a,@dptr

cjne a, #41h, lp1

mov r2,dpl

mov r3,dph

mov dptr,#20a0h

mov a, r2

movx @dptr,a

inc dptr

mov a, r3

movx @dptr,a

sjmp lp2

lp1: inc dptr

djnz r7, lp0

lp2: ret

end另一种方法:

org 0000h

ljmp start

org 0030h

start: mov r7,#9fh

mov dptr,#2000h

mov r6,#00hr6为dptr地址的低八位。

loop: movx a,@dptr

cjnz a,#65,loop1

mov dptr,#20a0h

mov a,r6

movx,@dptr,a ;把字符‘a’的低八位地址放到20a0h地址中。

inc dptr

mov a,#20h

movx @dptr,a ;把字符‘a’的高八位地址放到20a1h地址中。

sjmp $

loop1: inc r6

inc dptr

djnz r7,loop

sjmp $

end27.编程实现将片外ram中2400h~2450h单元中的数传送到2500h~2550h单元中。

解: org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov r7,#51h

mov dptr, #2400h

loop: movx a,@dptr

inc dph

movx @dptr,a

mov dph, #24h

inc dptr

djnz r7 ,loop

sjmp $

end另一种方法:

org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov r7,#51h

mov dptr, #2400h

loop: movx a,@dptr

push dph

inc dph

movx @dptr,a

pop dph

inc dptr

djnz r7 ,loop

sjmp $

end另一种方法:

org 0000h

ljmp main

org 0030h

main: mov sp, #60h

mov 30h,#24h

mov 31h,#00h

mov 32h,#25h

mov 33h,#00h

mov r2,#51h

loop: mov dph,30h

mov dpl,31h

movx a,@dptr

mov dph,32h

mov dpl,33h

movx @dptr,a

inc 31h

inc 33h

djnz r2,loop

答案单片机作业

作业一答案。1 简述cc2530的存储空间是如何映射的?答 cc2530物理存储器的两种主要存储介质 sram flash 虚拟存储空间的种类及地址范围如下 1 code 0x0 0xffff 64kb 2 data 0x00 0xff 节 3 xdata 0x0 0xffff 64kb 4 sfr...

单片机A作业答案

1.串行通信接收数据时通常采用 a a 接收中断或串行口中断接收数据 b 发送时检测是否有接收数据。c 周期性检测是否有接收数据d 实时检测接收标志位接收数据。2.下列哪一个事件是高速输出器 hso 的内部事件?b a 复位单片机 b 软件定时器 c 在管脚上输出高电平 d 在管脚上输出低电。3.0...

单片机作业答案

p64 第三章作业题答案。4 写出完成下列操作的指令。1 r0内容传送r1中。mov a,r0 mov r1,a 2 片内ram20h单元内容传送到片内ram40h单元中。mov 40h,20h 3 片内ram的30h单元内容传送到片外ram50h单元中。mov a,30h mov ri,50h m...