单片机课件 第三章作业

发布 2022-07-14 04:44:28 阅读 6548

第三章作业。

8.设堆栈指针sp中的内容为60h,内部ram中30h和31h单元的内容分别为24h和10h。执行下列程序段后,61h,62h,30h,31h,dptr及sp中的内容有何变化?

push 30h ;(sp)=61h, (61h)=24h

push 31h ;(sp)=62h, (62h)=10h

pop dpl ;(dpl)=10h, (sp)=61h,pop dph ;(dph)=24h, (sp)=60h,mov 30h, #00h ;(30h)=00h

mov 31h, #0ffh ;(31h)=ffh

执行后: (61h)=00h (62h)=00h (30h)=00h (31h)=ffh (dptr)=2410h (sp)=60h

10.要完成以下的数据传送,应如何用mcs-51指令实现?

1)r1的内容传送到r0;

mov a, r1

mov r0, a

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

mov r0, #20h

movx a, @r0

mov @r0, a / mov 20h,a

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

mov p2,#10h

mov r0, #00h

movx a, @r0

mov 20h,a

或: mov dptr, #1000h

movx a, @dptr

mov 20h, a

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

mov a,#00h

mov dptr, #2000h

movc a, @a+dptr

mov 20h, a

7)rom 2000h单元的内容送片外ram20h单元.

mov a,#00h

mov dptr, #2000h

movc a, @a+dptr

mov r0,#20h

movx @r0 ,a

11. 分析以下程序每一条指令执行的结果:

mov a, #25h ;(a)=25h

mov r1, #33h ;(r1)=33h

mov 40h, #1ah ;(40h)=1ah

mov r0, #40h ;(r0)=40h

add a, r1 ;(a)=58h, (r1)=33h, (cy)=0

addc a, @r0 ;(a)=72h, (r0)=40h, (40h)=1ah, (cy)=0

addc a, 40h ;(a)=8ch, (40h)=1ah, (cy)=0

12. 设a=83h,r0=17h,(17h)=34h,执行下面程序段后,(a)=?

anl a, #17h ;1000 0011 * 0001 0111 (a)=0000 0011=03h

orl 17h, a ;0011 0100 + 0000 0011 (17h)=0011 0111=37h, (a)=03h

xrl a, @r0 ;0000 0011⊕0011 0111 (a)=0011 0100=34h

cpl aa)=1100 1011=cbh

14. 两个4位bcd码数相加,被加数和加数分别存于30h,31h和40h,41h单元中(次序为千位/百位在低地址中,十位个位在高地址中),和数放在50h,51h,52h中(52h用于存放最高位的进位),试编写加法程序。

mov a, 31h

add a, 41h

da amov 50h, a

mov a, 30h

addc a, 40h

da amov 51h, a

clr aaddc a, #00h

mov 52h, a

15. 一个16位数(被减数)的高字节存放在30h单元,低字节存放在31h单元,另一个16位数(减数)的高字节存放在32h单元,低字节存放在33h单元,试编写程序完成这两个16位数据的减法运算,差的高8位存放入40h,低8位存放到41h单元,借位位存放在42h。

clr cmov a, 31h

subb a, 33h

mov 41h, a

mov a, 30h

subb a, 32h

mov 40h, a

clr aaddc a, #00h

mov 42h, a

16. 编写程序,查找在内部ram的20h~50h单元中是否有0aah这一数据,若有,则将51h单元置为01h,否则将51h单元清零。

org 0100h

start: mov r0, #1fh

mov 51h, #00h

loop1: inc r0

cjne @r0,#0aah,next

mov 51h, #01h

sjmp done

next: cjne r0,#50h,loop1

done: sjmp $

或: mov r1, #20h

mov r0, #31h

mov 51h,#00h

loop: cjne @r1,#0aah, l1

mov 51h, #01h ;inc 51h

sjmp done

l1: incr1

djnz r0, loop

done: sjmp $

18. 编写一段程序,将外部ram中2000h~2020h单元的内容送入内部ram的30h~50h单元中。

mov r221h

mov r130h

mov dptr, #2000hmov r000h

mov p220h

loop: movx adptrmovx ar0

mov @r1, a

inc dptr

inc r1

djnz r2, loop

19. 编写程序,求出片内ram 40h单元内容中所有“0”的个数,结果存入片内ram 50h单元。

mov 50h, #00h

mov a, 40h

mov r0, #08h

loop: rlc a

jc next

inc 50h

next: djnz r0, loop

mov a, 40h

mov 50h, #00h

mov r1,#08h

anl a, #80h

cjne a, #00h, loop /jnz loop

inc 50h

loop: rl a

djnz r1,loop1

mov a, 40h

mov r0, #08h

mov 50h, #00h

l1: rlc a

mov r1, a

mov a, 50h

addc a, #00h ; 错误:add 50h,c

mov 50h, a

mov a, r1

djnz r0, l1

clr cmov a, #08h

subb a, 50h

mov 50h, a

20. 用布尔指令,求解逻辑方程。(1)psw.5=p1.3·acc.2+b.5·p1.1

mov c, p1.3

anl c, acc.2

mov 01h, c

mov c, b.5

anl c, p1.1

orl c, 01h

mov psw.5, c

单片机原理第三章作业

3 1 mcs 51汇编语言主要伪指令有几条?它们分别具有什么功能?3 2 设 70h 60h,60h 20h,p1口为输入口,当前输入状态为87h,执行下面程序 mov r0,70h mov a,r0 mov r1,a mov b,r1 mov p1,0ffh mov r0,p1 试分析 70h ...

内燃机作业第三章

第三章。名词解释题。1.曲拐 2.扭曲环 3.全浮式活塞销 4 全支承式曲轴 填空题。5.在安装气环时,各个气环的切口应该。6.在安装扭曲环时,应将其内圈切槽向 外圈切槽向 不能装反。7.汽油机常用燃烧室形状有以下几种 半球形燃烧室 楔形燃烧室多球形燃烧室 篷形燃烧室。8.活塞环分为 和气环两种。9...

第三章作业

v s 顺序执行下述两个动作 1.s值加1,即s s 1 2.如果s 0,则该进程继续运行 3.如果s 0,则唤醒等待信号量s阻塞队列中的头一个进程 把阻塞态改为就绪态 执行v操作的进程继续运行。procedure s var s semaphore begin s s 1 if s 0 then ...