单片微型计算机与接**术思考与习题3
3.1 编写程序,把片外数据存储器0000h~0050h中的内容传送到片外数据存储器20h~70h中。
解:org 0000h
mov dptr,#0000h
mov r0,#20h
loop:movx a,@dptr
mov @r0 ,a
inc dptr
inc r0
cjne r0,#71h,loop
sjmp $
end3.3 设x在累加器a中(0),求x2 并将平方数高位存放在r7中,低位存放在r6中。试用查表法编出子程序。
解:org 0000h
mov dptr,#tab
add a,acc
push acc
movc a,@a+dptr
mov r7,a
pop acc
inc amovc a,@a+dptr
mov r6,a
sjmp $
tab:db 00,00,00,01,00,04,00,09,00,16h,….
db … 04h,00
3.5若单片机的晶振频率为6mhz,求下列延时子程序的延时时间。
delay: mov r1,#0f8h
loop: mov r3,#0fbh
djnz r3,$
djnz r1,loopret解:
fosc=6mhz, mc=2
机器周期。delay: mov r1,#0f8h1
loop: mov r3,#0fbh1
djnz r32
djnz r1,loop2
ret21+2+(1+2*251+2)*248)*2=250.48ms
3.7 从内部存储器30h单元开始,有16个数据,试编一个程序,把其中的正数、负数分别送40h和50h开始的存储单元,并分别将正数、负数和零的个数送r4,r5,r6。
解:org 0000h
mov r7,#10h
mov a,#
mov r4,a
mov r5,a
mov r6,a
mov r0,#40h
mov r1,#50h
mov sp,#2fh
next:pop acc
jz zer0
jb acc.7,ne
inc r4
mov @r0,a
inc r0
ajmp dj
ne: inc r5
mov @r1,a
inc r1
ajmp dj
zer0:inc r6
dj: djnz r7,next
sjmp $
end3.9 编写一段程序,将存放在自data单元开始的一个4字节数(高位在高地址)取补后送回原单元。
org 0000h
mov r7,#03h
mov r0,#data
mov a,@r0
cpl aadd a,#
mov @r0,a
ab:inc r0
mov a,@r0
cpl aaddc a,#
djnz r7,ab
sjmp $
3.11 将内部ram的20h单元中的十六进制数变换成asc码存入22h,21h单元中,高位存入22h单元中,要求用子程序编写转换部分。
org 0000h
mov a,20h
anl a,#0f0h
swap a
acall asc
mov 22h,a
mov a,20h
anl a,#0fh
acall asc
mov 21h,a
sjmp $
asc:cjne a,#0ah,ne
ne: jc a30
add a,#37h
reta30:add a,30h
ret end
3.13 用位操作指令实现下面的逻辑方程(x表示逻辑乘,+表示逻辑加):
p1.2=(acc.3 p1.4)+(
org 0000h
mov c,acc.3
anl c,p1.4
anl c,/acc.5
mov 20h,c
mov c,b.4
cpl c
anl c,/p1.5
orl c,20h
mov p1.2,c
sjmp $end
单片机9。10章作业
单片机第 章习题。一 问答题。1 ale端的作用是什么?答 ale是地址锁存允许信号端 编程脉冲输入端。当89c51上电正常工作后,ale引脚不断向外输出正脉冲信号,此频率为振荡器频率的六分之一。cpu访问片外存储器时,会丢失一个脉冲。当对片外ram进行读 写时,ale 信号不是周期性的。在其他情况...
单片机作业答案8章
第 章习题。一 问答题。1 说明51单片机读端口锁存器的必要性,为什么?答 mcs 51系列单片机有不少指令可以直接进行端口操作,例如 anl orl xrl jbc cpl inc dec djnz mov 这些指令的执行过程分成 读 修改 写 三步,即先将端口的数据读入cpu,在alu中进行运算...
单片机一二章作业答案
单片机第一,二章作业解答。一 填空题。1.二进制数11010111b转换成十六进制数是 0d7h 十进制数215转换成二进制数是 11010111b 2.8031单片机内部ram中作为工作寄存器区的单元的地址范围是 00h 1fh 3.8031单片机外部ram和i o的地址空间容量为 64kb 4....