单片机部分答案第四版北航马忠梅Word文档格式.docx
- 文档编号:13249001
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:18
- 大小:95.16KB
单片机部分答案第四版北航马忠梅Word文档格式.docx
《单片机部分答案第四版北航马忠梅Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机部分答案第四版北航马忠梅Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
*1.24已知(A)=83H,(R0)=17H,(17H)=34H。
执行以下指令后A=?
ANLA,#17H;
逻辑与(A)=03H
ORL17H,A;
逻辑或(17H)=37H
XRLA,@R0;
异或(A)=34H
CPLA;
取反(A)=CBH
*1.25将内部RAM20H、21H、22H,连续三个单元的内容以此放入
2FH、2DH、2EH单元
MOVR0,#20H
MOVR1,#2FH
LOOP:
MOVA,@R0
MOV@R1,A
INCR0
DECR1
CJNER0,#23H,LOOP
SJMP$
*1.34外部数据RAM在2000H~2100H区域有一个数据块,将他们移动到3000H~3100H区域
解一:
MOVDPTR,#2000H
MOVP2,#30H
MOVR1,#00H
MOVXA,@DPTR
MOVX@R1,A
INCDPTR
INCR1
CJNER1,#00H,LOOP
INCP2
MOVXA,@DPTR
MOVX@R1,A
解二:
MOVA,DPH
CJNEA,#21H,NEXT
NEXT1:
NEXT:
SJMPNEXT1
解三:
MOVR5,#00H
MOVA,#00H
MOVR1,A
MOVA,R1
MOVXA,@A+DPTR
MOVX@R0,A
MOVDPTR,#3000H
MOVX@A+DPTR,A
DJNZR5,LOOP
MOVDPTR,#2100H
MOVDPTR,#3100H
MOVX@DPTR,A
*1.35外部数据RAM从2000H开始有100个数据块,将他们移动到2030开始的单元
MOVDPTR,#2000HMOVR4,#64H
MOVP2,#10HLOOP1:
MOVXA,@R1
MOVR1,#00HMOVX@DPTR,A
MOVR4,#64HINCR1
MOVXA,@DPTRINCDPTR
MOVX@R1,ADJNZR4,64H,LOOP1
DJNZR4,64H,LOOP
MOVDPTR,#2030H
MOVP2,#10H
MOVDPTR,#2000HMOVR3,#64H
MOVP2,#10HDJNZR3,LOOP
NEXT:
MOVR1,#00HSJMP$
MOVR4,#64H
MOVXA,@DPTR
MOVX@R1,A
NEXT1:
DJNZR4,LOOP
LOOP1:
MOVDPTR,#1000H
MOVP2,#20H
MOVR1,#30H
习题参考答案(P.79)
习题3.8051主要的存储空间是什么?
为什么两个RAM的空间不同?
答:
8051单片机的存储空间分为数据RAM和代码ROM,其中数据RAM又分为片内RAM和片外RAM。
片内RAM的地址为8位,由单片机指令直接在单片机内部寻址访问,而片外RAM的地址为16位,只能由单片机的MOVX指令通过外部总线访问。
习题4.编一段程序,把8位口新的输入值和前一次的输入值进行比较,然后产生一个8位数。
这个数中的位为“1”的条件是:
仅当新输入的位为“0”,而前一次输入的位为“1”。
设该8位口为P1,新产生的8位数为x:
unsignedcharx;
x=P1;
x&
=~P1;
习题6.按给定的存储类型和数据类型,写出下列变量的说明形式:
up,down整数,使用堆栈存储;
first,last浮点数,使用外部数据存储器存储;
cc,ch字符,使用内部数据存储器存储。
堆栈只能存储内部RAM字节内容,必须在idata区:
(复位后SP=07H,但是07H中存放堆栈地址,上电复位后典型寄存器的值?
)
intidataup,down;
floatxdatafirst,last;
charidatacc,ch;
或chardatacc,ch;
习题7.
判断下列关系表达式或逻辑表达式的运算结果(1或0)
1、10==9+1;
→1
2、0&
&
0;
→0
3、10&
8;
→1
4、8||0;
5、!
(3+2);
6、设x=10,y=9;
x>
=8&
y<
=x;
习题8.
设x=4,y=8,说明下列各题运算后,x,y和z的值分别是多少?
1、z=(x++)*(--y);
→x=5,y=7,z=28
2、z=(++x)-(y--);
→x=5,y=7,z=-3
3、z=(++x)*(--y);
→x=5,y=7,z=35
4、z=(x++)+(y--);
→x=5,y=7,z=12
习题9.分析下列运算表达运算顺序。
1、c=a||(b);
→(b)是为0或1(逻辑值),若a=0则a||(b),结果赋给c
2、x+=y-z;
→y-z,x+(y-z),结果赋给x
3、-b>
>
2;
→-b,结果右移2位。
注:
-b不是取反也不能确定为负数;
取反一般是变成2进制然后按位取反。
如b=-3,即0FDH,则-b=3,而不是0FD按位取反
4、c=++a%b--;
→a=a+1,a%b,b=b-1,%结果赋给c
m&
n;
→!
m,若结果为1再和n相与。
X(不是&
)
!
m,再和n相与
6、a<
b||c&
d;
→a<
b,若结果为0再c&
d,结果相或
习题参考答案(P.93)
习题6.用选择分支编写程序,把输入的一个数字按下列对应关系显示。
当输入Z时,程序结束。
#include<
stdio.h>
reg51.h>
main()
{
unsignedchark;
do
{
scanf(“%c”,&
k);
switch(k)
{
case‘1’:
printf(“A”);
break;
case‘2’:
printf(“B”);
case‘3’:
printf(“C”);
case‘4’:
printf(“D”);
default:
printf(“?
”);
}
}while(k!
=‘Z’);
while
(1);
}
习题7.若在C中的switch操作漏掉break,会发生什么?
若在case语句中漏掉break,则程序执行case选择部分程序后不会按照要求退出switch语句,而是继续执行下一个case语句选择的内容。
习题8.编写程序,输出x3数值表,x为0—10。
main()
unsignedinty;
for(x=0;
x<
11;
x++)
y=(unsignedint)x*x*x;
printf(“%c,%d\n”,x,y);
}
while
(1);
}
习题9.用三种循环方式分别编写程序,显示1—100的平方。
三种流程图如下:
#defineuintunsignedint
for(x=0;
x<
101;
y=(unsignedint)x*x;
printf(“%c,%d\n”,x,y);
unsignedcharx=1;
while(x<
101)
x++;
y=(unsignedint)x*x;
printf(“%c,%d\n”,x,y);
}while(x<
101);
习题9.写出下列数组使用*运算的替换形式。
1.data[2];
2.num[i+1];
3.man[5][3]。
1、*(data+2)p107
2、*(num+i+1)
3、*(*(man+5)+3)
习题10.设下列运算表达式中p是指针,试分析各表达式的运算顺序。
1.b=*p--;
2.x=*p++;
3.a[++i]=*p++;
4.y=*--*++p-6。
1、先取*p给b,再使p减1单元(注意不是*p减1单元);
2、先取*p给x,再使p加1单元(注意不是*p加1单元);
3、先使i加1,再取*p给a[i],再使p加1单元;
4、这里p是指针的指针,先使p加1单元,再使*p减1单元,再使*(*p)减6后赋给y;
习题12.结构的定义和说明在程序中的作用是什么?
在对结构初始化时应该注意些什么问题。
结构的定义和说明在程序中可以把一组关系密切的变量存放在一个连续的存储空间中,便于对这些变量的访问。
同一个结构中不能存在同名变量名称。
可以把具有相同结构的已知结构直接用“=”对结构进行赋值,或者通过其成员的逐个引用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 部分 答案 第四 北航 马忠梅