单片机期中52复习题部分答案.docx
《单片机期中52复习题部分答案.docx》由会员分享,可在线阅读,更多相关《单片机期中52复习题部分答案.docx(13页珍藏版)》请在冰豆网上搜索。
单片机期中52复习题部分答案
一.单选题
1.在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是()
A.PCB.PSWC.AD.SP
2.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是()
A.MOVB.MOVXC.MOVCD.以上都是
3.指令ALMP的跳转范围是()
A.256BB.1KBC.2KBD.64KB
4.CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是()
A.混合编址B.动态编址C.独立编址D.变址编址
5.下列四条叙述中,有错误的一条是()
A.16根地址线的寻址空间可达1MB
B.内存储器的存储单元是按字节编址的
C.CPU中用于存放地址的寄存器称为地址寄存器
D.地址总线上传送的只能是地址信息
6.MCS—51单片机的复位信号是()有效。
A.高电平B.低电平C.脉冲D.下降沿
7.若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过()。
A.2μsB.4μsC.8μsD.1ms
8.在寄存器间接寻址方式中,指定寄存器中存放的是()
A.操作数据地址B.地址偏移量C.操作数D.转移地址
9.单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为16位,因此其寻址范围是()
A.4KBB.8KBC.64KBD.128KB
10.下列指令中与进位标志位CY无关的指令是()
A.条件转移指令B.数据传送指令C.乘法指令D.加法指令
11.在相对寻址方式中,“相对”两字是指相对于()
A.地址偏移量relB.DPTR值C.当前指令的首地址D.下一条指令的首地址
12.在MCS-51中,为实现P0口线的数据和低位地址复用,应使用()
A.地址寄存器B.地址锁存器C.地址缓冲器D.地址译码器
13.已知某数的BCD码为0111010101000010则其表示的十进制数值为()
a)7542Hb)7542c)75.42Hd)75.42
14.单片机应用程序一般存放在( )
a)RAM b)ROM c)寄存器 d)CPU
15.51单片机的()口的引脚,还具有外中断、串行通信等第二功能。
a)P0 b)P1c)P2 d)P3
16.8031单片机中既可位寻址又可字节寻址的单元是( )
a)20H b)30H c)00H d)70H
17.访问外部数据存储器时,不起作用的信号是( )
(A)
(B)
(C)
(D)ALE
18.计算机能识别的语言是( )
(A)汇编语言 (B)自然语言 (C)机器语言 (D)高级语言
19.下列指令中不影响标志位CY的指令有( )。
a)ADD A,20H b)CLR c)RRC A d)INC A
20.以下指令中,属于单纯读引脚的指令是( )
(A)MOV P1,A (B)ORLP1,#0FH
(C)MOVC,P1.5 (D)DJNZP1,LAB
21.当需要从MCS-51单片机程序存储器取数据时,采用的指令为()。
a)MOV A, @R1 b)MOVC A, @A + DPTR
c)MOVX A, @ R0 d)MOVX A, @ DPTR
22.下列哪条指令是错误的()
a)MOVDPTR,#3F98H b)MOVR0,#0FEH
c)MOV50H,#0FC3DH d)INCR0
23.外部中断源
(外部中断)的向量地址为()。
A)0003HB)000BHC)0013HD)002BH
24.若MCS-51中断源都编程为同级,当它们同时申请中断时,CPU首先响应( )
(A)
(B)
(C)T1 (D)T0
25.MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( )
(A)P0和P2口 (B)P0口 (C)P2和P3口 (D)P2口
26.10101.101B转换成十进制数是( )。
A.46.625B.23.625C.23.62D.21.625
27.8051单片机内有()个16位的定时/计数器,每个定时/计数器都有()种工作方式。
A.4,5B.2,4C.5,2D.2,3
28.ORG2000H
LCALL3000H
ORG3000H
RET
上边程序执行完RET指令后,PC=()
A.2000HB.3000HC.2003HD.3003H
29.执行LACLL4000H指令时,MCS-51所完成的操作是( )
A.保护PC B.4000H
PCC.保护现场D.PC+3入栈,4000H
PC
30.73.5转换成十六进制数是()。
(A)94.8H(B)49.8H(C)111H(D)49H
31.关于MCS-51的堆栈操作,正确的说法是()
A.先入栈,再修改栈指针B.先修改栈指针,再出栈C.先修改栈指针,在入栈D.以上都不对
32.JNZREL指令的寻址方式是()
A.立即寻址B.寄存器寻址C.相对寻址D.位寻址
33.已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。
各个位的值是()。
(A)0、0、0(B)1、0、1(C)1、1、1(D)1、1、0
二.填空题
1.带符号数在机器中的表示方法有_____,反码,____。
2.假定累加器A的内容30H,执行指令:
1000H:
MOVCA,@A+PC后,把程序存储器_________单元的内容送累加器A中。
3.假定SP=60H,A=30H,B=70H,执行下列指令:
PUSHA
PUSHB
后,SP的内容为_________,62H单元的内容为________。
4.MCS-51单片机有_________个中断源。
上电复位时_________中断源的优先级最高。
5.JZe的操作码地址为1005H,e=20H,它转移的目标地址为_________。
6.MOVA,40H指令对于源操作数的寻址方式是_________寻址。
7.若累加器A中的数据为01110011B,则PSW中的P=_________。
8.MCS-51系列单片机在直接寻址方式中,只能使用____位二进制数作为直接地址,因此其寻址对象只限于________。
9.所谓中断源是指________________________________________。
10.MCS-51单片机的存储空间包括________和________,它们的可寻址范围分别为________和________。
11.当晶振频率为6MHZ时,下面这个子程序延时时间为________。
DL:
MOVR6,#100
DL1:
MOVR7,#4
DL2:
MULAB
MULAB
DJNZR7,DL2
DJNZR6,DL1
RET
12.AT89C51有____组工作寄存器,它们的地址范围是___________。
13.AT89C51的相对转移指令最大负跳距是__________。
14.程序状态标志字寄存器PSW中的PSW.7的含义是__________;PSW.0的含义是___________________;PSW.1的含义是_______。
15.真值-10的的8位二进制反码为;其补码为。
16.一个机器周期等于________个状态周期,振荡脉冲2分频后产生的时序信号的周期定义为状态周期。
17.单片机上电复位时PC=_______H,SP=_______H;而工作寄存器则缺省采用第_______组,这组寄存器的地址范围是_________。
18.AT89C51有___组工作寄存器,它们的地址范围是___________。
19.MCS-51单片机访问外部存储器时,利用信号锁存来自口的低8位地址信号。
20.MCS51单片机内部有个位加1定时/计数器,可通过编程决定它们的工作方式,其中,可进行13位定时/计数最大可计个时间单位。
21.串行通信根据通信的数据格式分有两种方式,分别是__________和______________。
22.在串行通信中,有单工、________、___________三种数据传送方式。
23.MCS-51单片机有个中断源,可分为个中断优先级。
上电复位时中断源的中断级别最高。
24.MCS-51串口中断的入口地址是。
25.MCS—51指令共有7种寻址方式,分别是立即数寻址、_________、_________、寄存器间接寻址、_________、_________、_________。
26.MCS—51单片机指令系统中共有111条指令,有五种指令类型,分别是:
数据传送指令,指令、指令、指令及指令。
27.条件跳转JZ34H的操作码地址为1000H,它转移的目标地址为。
28.累加器(A)=80H,执行完指令 ADDA,#83H后,进位位C=。
29.已知(SP)=40H,(39H)=30H,(40H)=60H。
执行下列指令:
POP DPH
POP DPL
后,DPTR的内容为,SP的内容是。
30.汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对进行某种控制。
31.假定累加器A的内容30H,执行指令:
1000H:
MOVCA,@A+PC后,把程序存储器_________单元的内容送累加器A中。
32.指令LCALL37B0H,首地址在2000H,所完成的操作是入栈,送入PC。
33.MCS-51上机实验的简要步骤是编辑、和。
34.说明MCS-51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)
ANLA,20H
ADDCA,#20H
CLRC
JZrel
RRA
35.只有在________码表示中0的表示是唯一的。
36.汇编语言程序由三种基本结构组成:
顺序、分支和_________。
37.在单片机中,为实现数据的I/O传送,可使用三种控制方式,即无条件传送方式、方式和方式。
三.简答题
1.简述堆栈的含义和操作。
2.MCS-51指令系统主要由哪几种寻址方式?
试举例说明。
3.各中断源对应的中断服务程序的入口地址是否能任意设定?
4.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?
请举例加以说明。
5.单片机的C51语言与标准C语言的区别?
6..假设某MCS-51系列单片机的晶振频率为6MHz,请问时钟周期、机器周期各为多少?
7.已知一单片机系统的外接晶体振荡器的振荡频率为11.059MHz,请计算该单片机系统的拍节P、状态S、机器周期M所对应的时间是多少?
指令系统中的单字节双周期指令的执行时间是多少?
8.MCS-51单片机内部的程序状态字PSW的各个位是如何定义的?
9.CPU与外设间有哪几种数据传送方式?
各有什么特点?
10.访问特殊功能寄存器SFR可以采用哪些寻址方式?
11.MCS-51系列单片机有几条访问ROM指令?
请写出它们的助记符。
四、程序题目:
1、执行下列程序:
MOV21H,#0A7H
MOV22H,#10H
MOVR0,#22H
MOV31H,21H
ANL31H,#2FH
MOVA,@R0
SWAPA
结果:
(31H)=,A=。
2、执行下列程序:
MOVR0,#60H
MOVA,#0AH
RRA
MOV@R0,A
ADDA,#0FH
DECR0
MOV@R0,A
结果:
(60H)=,(5FH)=。
3、执行下列程序:
MOVA,#83H
MOVR0,#47H
MOV47H,#34H
ANLA,#47H
ORL47H,A
XRLA,@R0
结果:
R0=,A=。
4.阅读下列程序段并回答问题。
1)、该程序执行何种操作?
2)、已知初值(60H)=23H,(61H)=61H,运行程序后(62H)=?
CLRC
MOVA,#9AH
SUBBA,60H
ADDA,61H
DAA
MOV62H,A
5.指出下列程序段的功能
ORG1000H
MOVA,#00H
MOVR0,#DAT
MOVR3,#09H
L1:
ADDA,@R0
INCR0
DJNZR3,L1
MOVSUM,A
SJMP$
......
6.以给出的指令操作码为依据,请判断MCS-5l单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1.MULR0R1
2.MOVA,@R7
3.MOVA,#3000H
4.MOVC@A+DPTR,A
5.LJMP#1000H
7.CS-51单片机的下列各条指令中源操作数的寻址方式(写在每条指令的后面)
1.ANLA,20H
2.ADDCA,#20H
3.CLRC
4.JZrel
5.RRA
8.阅读以下程序:
1)该程序执行何种操作?
2)已知初值(60H)=23H,(61H)=61H,运行程序后(62H)=?
CLRC
MOVA,#9AH
SUBBA,60H
ADDA,61H
DAA
MOV62H,A
9.指出下列程序段的功能
ORG1000H
MOVA,#00H
MOVR0,#DAT
MOVR3,#09H
L1:
ADDA,@R0
INCR0
DJNZR3,L1
MOVSUM,A
SJMP$
10.当晶振频率为12MHZ时,下面这个子程序延时时间为________。
DL:
MOVR6,#100
DL1:
MOVR7,#4
DL2:
MULAB
MULAB
DJNZR7,DL2
DJNZR6,DL1
RET
11.已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行过程如下:
MOVA,@R0
MOVR0,A
MOVA,@R0
ADDA,21H
ORLA,#21H
RLA
MOVR2,A
RET
则执行结束(R0)=(R2)=。
在关键指令后写出其功能注释。
12.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H
MOVA,@R0
MOV@R0,40H
MOV40H,A
MOVR0,#35H
问执行程序后,R0=A=4BH=40H=。
五、综合应用题
1.用查表方法,编程求出片内RAM60H单元中存放的1位十进制数的平方值,并存放在片外RAM2020H单元。
2.C51程序,实现16进制数到10进制数的转换。
请问程序运行后a[0]、a[1]、a[2]、a[3]、a[4]的结果?
Voidmain()
{unsignedintx=0x6B;
Unsigndedchara[5]={0,0,0,0,0};
Unsignedchari,j=0;
For(j=1;j<=5;j++)
{a[i]=x%10;x=x/10;i++;}
3.完整C51程序,求数组a中的最大数。
Voidmain()
{unsignedchari=0,max;
Unsignedchara[]={1,2,100,66,123,4,8,7};
...
}
while(i<8)
{if(a[i]>max)max=a[i];
i++;
{if(a[i]>max)max=a[i];i++;}
4.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。
ORG1000H
MOVDPTR,#TABLE
MOVA,60H
ANLA,#0FH
MOVCA,@A+DPTR
MOVDPTR,#2000H
MOVX@DPTR,A
SJMP$
TABLEDB0,1,4,9,16,25,36,49,64,81
END
5.用查表方法,编程求出片内RAM60H单元中存放的1位十进制数的平方值,并存放在片外RAM2000H单元。
6.编写一程序将片外数据存储器中6000H~60FFH单元全部清零。
ORG 1000H
MOV DPTR,#6000H
CLR A
MOV R0,A
LOOP:
MOVX@DPTR,A
INCDPTR
DJNZR0,LOOP
SJMP $
7.试编程将片内RAM的30H~4FH单元中的内容传送到片外RAM2000H开始的单元中。
ORG0000H
START:
movr0,#30h
movdptr,#2000h
movr2,#20h
Loop:
mova,@r0
movx@dptr,a
incr0
incdptr
djnzr2,loop
Sjmp$
end
8.设在内RAM40H开始的存储区有若干个字符和数字,已知最后一个为字符“$“(并且只有一个,试统计这些字符数字的个数,结果存入30H单元中。
ORG0000H
START:
MOVR1,#40H;R1作为地址指针
CLRA;A作为计数器
LOOP:
CJNE@R1,#24H,NEXT;与“$”号比较,不等转移
SJMPNEXT1;找到“$“结束循环
NEXT:
INCA;计数器加1
INCR1;指针加1
SJMPLOOP;循环
NEXT1:
INCA;再加入”$”这个字符
MOV30H,A;存结果
END
9.在片内40H单元存有一8位二进制数,其二进制形式为X7X6X5X4X3X2X1X0,在片内41H单元存有另一8位二进制数,其二进制形式为Y7Y6Y5Y4Y3Y2Y1Y0,要求将两数拼接为一新的二进制数,其二进制形式为:
Y2Y1Y0X4X3X2X1X0,并将其存于42H单元。
ANL 30H, #1FH
ANL 31H, #0E0H
MOV A,31H
SWAP A
RL A
ORL A, 30H
MOV 32H, A
10.片内RAM30H开始的单元中有10个字节的二进制数,请编程求它们之和
ADDIO:
MOVR0,30H
MOVR7,#9
MOVA,@R0
LOOP:
INCR0
ADDA,@R0
DJNZR7,LOOP
MOV30H,A
RET