单片机习题参考答案.docx
《单片机习题参考答案.docx》由会员分享,可在线阅读,更多相关《单片机习题参考答案.docx(61页珍藏版)》请在冰点文库上搜索。
单片机习题参考答案
铁道社单片机习题集参考答案
习题一
一、选择题
1.十进制121转换为8位二进制数是(A)。
A.01111001BB.01110111BC.01101110BD.10001010B
2.十进制数112.375转换成十六进制数是(B)。
A.70.5HB.70.6HC.71.5HD.71.6H
3.十进制254.28转换为BCD码是(D)。
A.0011010100.101000B.010001010100.00110000
C.1101010100.00101D.001001010100.00101000
4.11101111101.1B=(A)。
A.77D.8HB.77C.8HC.77D.1HD.77C.1H
5.ABC.DEH=(D)B。
A.101010111100.11101111B.010*********
C.101111001101.11101111D.101010111100.11011110
6.数字符号0和9的ASCII码十进制表示为(C)。
A.30、39B.30H、39HC.48、57D.48H、57H
7.一个字节的十六进制数最大相当于十进制数的(B)。
A.256B.255C.254D.100
8.将BCD码0011011101010010转换为十进制数,应为(A)。
A.3752B.1BA90C.3964D.2725
二、简答题
1.什么是单片机?
答:
把微型计算机的基本功能部件:
中央处理器(CPU)、存储器、输入/输出接口、定时器/计数器、中断系统等多种资源集成在一个半导体芯片上,使得一块集成电路芯片就能构成一个完整的微型计算机。
这种集成电路芯片被称为单片微型计算机(singlechipmicrocomputer),简称单片机。
2.单片机主要应用于哪些领域?
答:
(1)生产自动化
(2)实时测控(3)智能化产品
(4)智能化仪表(5)信息通信技术(6)科学研究(7)国防现代化
3.单片机应用系统由哪几部分组成?
答:
单片机应用系统由单片机、外部存储器、输入通道、输出通道等部分组成
4.MCS-51系列中8031,8051,8751有什么区别?
答:
8031/8051/8751这3种芯片常称为8051子系列,它们之间的区别仅在于片内程序存储器不同。
8031片内无程序存储器,8051片内有4KB的ROM,8751片内有4KB的EPROM,其它结构性能相同。
其中8031易于开发,价格低廉,应用广泛
5.为什么单片机又称为嵌入式微控制器?
答:
单片机在应用时通常装入到各种智能化产品之中,所以又称嵌入式微控制器(EmbeddedMicroControllerUnitEMCU)。
单片机应用系统就是典型的嵌入式系统。
嵌入式计算机系统,是作为其他系统的组成部分使用的。
由于通用计算机系统有限的可靠性、较高的价位及庞大的身躯,限制了其在嵌入式系统的广泛应用,尤其限制了以嵌入式计算机系统作为核心控制产品的发展。
单片机以较小的体积、现场运行环境的高可靠性满足了许多对象的嵌入式应用要求。
在嵌入式系统中,单片机是最重要也是应用最多的智能核心器件。
6.在51子系列单片机中,程序存储器和数据存储器最大可扩展为多少字节?
答:
在51子系列单片机中,片外程序存储器和数据存储器最大可扩展为64K字节。
7.在单片机中,片内ROM的配置有几种形式?
用户应根据什么原则选用?
答:
在单片机中,片内ROM的配置有3种形式?
用户应根据实用原则选用。
如:
片内驻留掩膜ROM配置的单片机,用户无法自行改写片内的程序,推广应用受到限制;片内驻留EPROM配置的单片机,用户可用开发工具把应用程序写入片内EPROM,该用户带来极大方便,简化系统结构,易于推广应用;片内无ROM配置的单片机,用户必须外接片外EPROM作为程序存储器,其容量可视需要灵活配置。
三、计算题
1.将下列十进制数转换为十六进制和二进制数。
(1)44.375=2C.6H=101100.011B
(2)171=ABH=10101011B
(3)0.6875=0.BH=0.1011B(4)127.65625=7F.A8H=1111111.10101B
2.将下列十六进制数转换为二进制和十进制数。
(1)7E2H=11111100010B=2018
(2)1FFFH=1111111111111B=8191
(3)3200H=11001000000000B=12800(4)F7H=11110111B=247
3.将下列二进制带符号数,分别用原码和补码表示。
(1)+1010011B[+1010011B]原=[+1010011B]补=01010011B
(2)-01011010B[-01011010B]原=11011010B[-01011010B]补=10100110B
(3)+0101010B[+0101010B]原=[+0101010B]补=00101010B
(4)-0111100B[-0111100B]原=10111100B[-0111100B]补=11000100B
4.下列机器数为带符号数的补码,试写出他们对应的真值。
(1)E2H[E2H]真值=-30
(2)1FH[1FH]真值=+31
(3)00111100B[00111100B]真值=+60
(4)11000011B[11000011B]真值=-61
5.将下列BCD码转换为十进制数。
(1)BCD码0011011101010010转换为十进制数为3752
(2)BCD码1001011010000100转换为十进制数为9684
6.已知X、Y,试分别计算[X+Y]补和[X-Y]补,并指出是否产生溢出。
(1)X=+1001110,Y=+0010110
[X+Y]补=01100100不会产生溢出
[X-Y]补=00111000不会产生溢出
(2)X=+0101101,Y=-1100100
[X+Y]补=11001001不会产生溢出
[X-Y]补=10010001产生溢出
(3)X=-0101110,Y=+0111011
(4)X=-1000101,Y=-0110011
习题二
一、选择题
1.在MCS-51单片机中,DPTR和SP分别是(C)的寄存器
A.DPTR和SP均为8位B.DPTR为8位,SP为16位
C.DPTR为16位,SP为8位D.DPTR和SP均为16位
2.在MCS—51单片机中,地址总线和数据总线分别是(D)条。
A.均为8条B.地址总线为8条,数据总线为16条
C.均为16位D.地址总线为16条,数据总线8条
3.决定程序执行顺序的寄存器是(B)。
A.程序是否有转移指令B.指令地址寄存器(程序计数器)PC
C.累加器AD.堆栈指针SP
4.MCS-51单片机有(B)条引脚。
A.28B.40C.20D.32
5.MCS-51单片机的一个指令周期包括(A)个机器周期。
A.1~4B.6C.12D.2
6.R0~R7所在的工作寄存器区是由(A)来选定的。
A.PSW寄存器的RS1和RS0B.CPU
C.内部数据存贮器D.程序
7.8031单片机的外部程序存储器的读选通信号是(D)有效。
A.输入,高电平B.输出,高电平
C.输入,低电平D.输出,低电平
8.在MCS-51单片机中,PC的初值和P0、P1、P2、P3的初值为(A)。
A.PC的初值为0000H,P0、P1、P2、P3的初值为FFH
B.PC的初值为0003H,P0、P1、P2、P3的初值为00H
C.PC的初值为0000H,P0、P1、P2、P3的初值为00H
D.PC的初值为0003H,P0、P1、P2、P3的初值为FFH
9.单片机存储器在物理上它们是(D)个相互独立的存贮器空间。
A.1B.2C.3D.4
10.MCS-51单片机的工作寄存器区的地址范围是(A)。
A.00H~1FHB.00H~0FHC.00H~07HD.00H~08H
二、简答题
1.8051有多少个特殊功能寄存器?
它们可以分为几组?
各完成什么主要功能?
答:
8051有21个特殊功能寄存器;
2.决定程序执行顺序的寄存器是哪个?
它是几位寄存器?
是特殊功能寄存器吗?
答:
决定程序执行顺序的寄存器是程序计数器PC;它是16位寄存器;不是特殊功能寄存器。
3.DPTR是什么寄存器?
它的作用是什么?
它是由哪几个寄存器组成?
答:
DPTR数据地址指针是一个16位的专用地址指针寄存器,它由DPH和DPL这两个特殊功能寄存器组成。
DPH是DPTR的高8位,DPL是DPTR的低8位,DPTR用于存放16位地址,可对外部数据存储器RAM64KB(0000H~0FFFFH)地址空间寻址。
4.8051的工作寄存器分成几个组?
每组为多少个单元?
8051复位后,工作寄存器位于哪一组?
答:
8051的工作寄存器分成4组;每组8个单元;8051复位后工作寄存器位于0组。
5.MCS-51引脚中有多少I/O线?
它们和单片机对外的地址总线和数据总线有什么关系?
地址总线和数据总线各是几位?
答:
MCS-51引脚中有多少32条线;它们由P2、P0口构成单片机对外的地址总线,由P0口分时使用构成数据总线;地址总线和数据总线各是16位和8位。
6.什么叫堆栈?
堆栈指针SP的作用是什么?
8051单片机堆栈的容量不能超过多少字节?
答:
在程序中往往需要一个后进先出(LIFO)的RAM区域,用于调用子程序响应中断时的现场保护,这种LIFO的缓冲区称为堆栈。
堆栈指针SP的作用是在压栈时SP加1,在出栈时SP减1,始终指向当前的栈顶。
堆栈原则上可以设在内部RAM的任意区域,但由于00H~1FH为工作寄存器区,20H~2FH为位寻址区,所以堆栈一般设在30H~7FH的范围之内,这个区域只能字节寻址。
8051单片机堆栈的容量不能超过80个字节。
7.8051单片机的内部数据存贮器可以分为几个不同区域?
各有什么特点?
答:
对于8051单片机,其片内有256字节的数据存储器地址空间,可把它们的物理地址空间划分成四个用途不同的区域。
低128字节地址空间(00H~7FH)为片内数据存储器区,包含
(1)工作寄存器区、
(2)位寻址区、(3)数据缓冲区和堆栈区。
高128字节地址空间(80H~FFH)为特殊功能寄存器区SFR。
8.MCS-51单片机程序存储器的寻址范围是多少?
8051单片机可以配置的存贮器最大容量是多少?
答:
MCS-51单片机程序存储器的寻址范围是0000H~FFFFH;8051单片机可以配置的存贮器最大容量是64KB。
9.8051单片机对外有几条专用控制线?
其功能是什么?
答:
8051单片机对外有4条专用控制线;ALE/
:
ALE为地址锁存允许信号。
在访问外部存储器时,ALE用来把扩展地址低8位锁存到外部锁存器。
在不访问外部存储器时,ALE引脚以不变的频率(时钟振荡器频率的1/6)周期性地发出正脉冲信号,因而它又可用作外部定时或其它需要。
但要注意,在遇到访问外部数据存储器时,会丢失一个ALE脉冲,ALE能驱动8个LSTTL负载。
在8751单片机内部EPROM编程期间,此引脚接编程脉冲(
功能)。
RST/VPD:
RST为复位信号输入端。
当RST引脚持续接入两个机器周期(24个时钟周期)以上的高电平时,使单片机完成复位操作。
此引脚还可以接入备用电源。
当主电源Vcc一旦发生断电(称掉电或失电),降到一定低电压值时,可由VPD向内部RAM提供电源,以保护片内RAM中的信息不丢失,使上电后能继续正常运行(有关此方面的电路可查阅其它书籍)。
:
外部程序存储器ROM的选通信号。
当从外部程序存储器取指令(或数据)期间,
产生负脉冲作为外部ROM的选通信号。
而在访问外部数据RAM或片内ROM时,不会产生有效的
信号。
可驱动8个LSTTL负载。
/VPP:
访问外部程序存储器控制信号。
对8051和8071,当
为高电平时,若访问的地址空间在0~4KB(0000H~0FFFH)范围内,CPU访问片内程序存储器;若访问的地址超出4KB时,CPU将自动执行外部程序存储器的程序,即访问片外程序存储器;当
为低电平时,只能访问片外程序存储器。
对于8031,
必须接地,只能访问片外程序存储器。
第二功能为对8751的EPROM编程期间,接+21V编程电源。
10.什么叫指令周期?
什么叫机器周期?
MCS-51的一个机器周期包括多少时钟周期?
答:
指令周期指执行一条指令所占用的全部时间;若把一条指令的执行过程划分为几个基本操作,则完成一个基本操作所需的时间称为机器周期;MCS-51的一个机器周期包括6个时钟周期。
11.为什么要了解CPU的时序?
答:
了解CPU的时序有助于程序设计时计算程序段的执行时间。
12.8051是低电平复位还是高电平复位?
复位后,P0~P3口处于什么状态?
答:
8051是高电平复位;复位后,P0~P3口处于全“1”状态
13.8051的时钟周期,机器周期,指令周期是如何分配的?
当振荡频率为10MHz时,一个机器周期为多少微秒?
答:
8051的一个指令周期通常由1~4个机器周期组成;一个机器周期由6个时钟周期组成;当振荡频率为10MHz时,一个机器周期为0.2微秒。
14.在8051扩展系统中,片外程序存储器和片外数据存储器共处同地址空间,为什么不会发生总线冲突?
答:
访问片外程序存储器使用MOVC类指令、访问片外数据存储器使用MOVX类指令,因使用不同的指令产生不同的控制信号,所以不会发生总线冲突。
15.8051的P3口具有哪些第二功能?
答:
P3.0的第二功能是RXD(串行输入口)
P3.1的第二功能是TXD(串行输出口)
P3.2的第二功能是
(外部中断0输入)
P3.3的第二功能是
(外部中断1输入)
P3.4的第二功能是T0(定时器0外部输入)
P3.5的第二功能是T1(定时器1外部输入)
P3.6的第二功能是
(外部数据存储器写脉冲输出)
P3.7的第二功能是
(外部数据存储器读脉冲输出)
16.位地址7CH与字节地址7CH有什么区别?
位地址7CH具体在内存中什么位置?
答:
位地址7CH指向一个存储位的地址;字节地址7CH指向一个存储单元的地址;位地址7CH在内存中字节地址为2FH的D4位。
17.程序状态字PSW的作用是什么?
常用的状态标志有哪几位?
作用是什么?
答:
程序状态字寄存器PSW相当于标志寄存器,用于存放指令执行结果的一些特征,供程序查询和判别之用。
常用的状态标志有6位。
CY:
进位标志;AC:
辅助进位;RS1和RS0:
工作寄存器组选择位;OV:
溢出标志;P:
奇偶标志。
18.在程序存储器中,0000H,0003H,000BH,0013H,001BH,0023H这6个单元有什么特定的含义?
答:
在程序存储器中,有六个单元是分配给系统使用的,具有特定的含义。
0000H:
单片机系统复位后,PC=0000H,即程序从0000H开始执行指令。
通常在0000H
~00002H单元安排一条无条件转移指令,使之转向主程序的入口地址。
0003H:
外部中断0入口地址。
000BH:
定时器0溢出中断入口地址。
0013H:
外部中断1入口地址。
001BH:
定时器1溢出中断入口地址。
0023H:
串行口中断入口地址。
19.若P1~P3口作通用I/O口使用,为什么把它们称为准双向口?
答:
用于输入时,必须先向相应端口的锁存器写入“1”。
习题三
一、简答题
1.简述下列名词术语的基本概念:
指令、指令系统、程序、汇编语言指令。
2.MCS-51单片机有哪几种寻址方式?
这几种寻址方式是如何寻址的?
3.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?
4.MCS-51单片机的指令系统可分为哪几类?
试说明各类指令的功能。
5.外部数据传送指令有哪几条?
试比较下面每一组中两条指令的区别。
(1)MOVXA,@R0;MOVXA,@DPTR
MOVXA,@R0和MOVXA,@DPTR指令均为外部数据传送指令,但访问的存储空间大小不同
(2)MOVX@R0,A;MOVX@DPTR,A
同上
(3)MOVXA,@R0;MOVX@R0,A
A与外部数据存储器和外部数据存储器与A之间的传送
6.在MCS-51单片机片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,分析下段程序中各指令的功能;说明源操作数的寻址方式,以及按序执行每条指令后的结果。
MOVA,40H;直接寻址A=48H
MOVR0,A;寄存器寻址R0=48H
MOV@R0,30H;直接寻址(48H)=38H
MOV40H,38H;直接寻址(40H)=40H
MOVR0,30H;直接寻址R0=38H
MOV90H,R0;寄存器寻址(90H)=38H
MOV48H,#30H;立即寻址(48H)=30H
MOVA,@R0;寄存器间接寻址A=40H
7.DAA指令的作用是什么?
怎样使用?
DAA指令的作用是在进行BCD码运算时,跟在ADD和ADDC指令之后,将相加后存放在累加器A中的结果进行调整修正。
8.试编程将片外数据存储器50H中的内容传送到片内RAM54H单元中。
MOVR0,#50H
MOVXA,@R0
MOV54H,A
9.试编程将寄存器R7的内容传送到R1中去。
MOVA,R7MOVR1,A
10.用两种方法实现累加器A与寄存器B的内容交换。
XCHA,B
或MOVR0,AMOVA,BMOVB,R0
11.试编程将片外RAM40H单元的内容与R1的内容交换。
MOVB,R1
MOVR0,#40HMOVXA,@R0MOVR1,A
MOVA,BMOVX@R0,A
12.若要完成以下的数据传送,应如何用MCS-51的指令来实现?
(1)R1内容传送到R0。
(2)外部RAM20H单元内容R0。
(3)外部RAM20H单元内容送内部RAM20H单元。
(4)外部RAM1000H单元内容送内部RAM20H单元。
(5)外部ROM20H单元内容R0。
(6)外部ROM2000H单元内容送内部RAM20H单元。
13.已知:
A=0C9H,B=8DH,CY=1。
执行指令ADDCA,B结果如何?
A=57H
执行指令SUBBA,B结果如何?
A=3BH
14.列举4条能使累加器A清零的指令。
CLRA
MOVA,#00H
ANDA,#00H
XORA,ACC
15.试用3种方法将累加器A中无符号数乘2。
1)MOVB,#02MULAB
2)RLA
3)ADDA,ACC
16.分析下列指令执行后,A及PSW中进位位CY、奇偶位P和溢出位OV的值。
(1)当A=5BH时;ADDA,#8CH
(2)当A=5BH时;ANLA,#7AH
(3)当A=5BH时;XRLA,#7FH
(4)当A=5BH,CY=1时;SUBBA,#0E8H
17.试说明指令CJNE@R1,#7AH,10H的作用。
若本指令地址为250H,其转移地址是多少?
(@R1)与#7AH比较不等于转移,转移的偏移量为10H;其转移地址是263H
18.参照例题21若系统的晶振频率为5MHz,求子程序DELAY的延时时间。
若想加长或缩短延时时间,应怎样修改?
晶振频率为5MHz时,1M=2.4微秒,子程序DELAY的延时时间共为1002*2.4=2404.8微秒;若想加长或缩短延时时间可以增加/减少NOP指令或增加/减少循环
19.试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清“0”。
MOVA,#0F0HMOVDPTR,#2100HMOVX@DPTR,A
20.试编程将内部数据存储器40H单元的第0位和第7位置“1”,其余位变反。
MOVA,40H
CPLA
SETBACC.0
SETBACC.7
MOV40H,A
21.将ACC.5与80H位相与的结果,通过P1.4输出。
MOVC,80H
ANLC,ACC.5
MOVP1.4,C
22.使用位操作指令,求下面逻辑方程:
(1)P1.7=ACC.0∧(B.0∨P2.1)∨
MOVC,B.0
ORLC,P2.1
MOV30H,C
MOVC,ACC.0
ANLC,30H
ORLC,/P3.2
MOVP1.7,C
(2)PSW.5=P1.3∧ACC.2∨B.5∧
MOVC,P1.3
ANLC,ACC.2
ORLC,B.5
ANLC,/P1.1
MOVPSW.5,C
(3)P2.3=
∧B.4∨
∧P1.0
基本同上
三、分析计算
1.已知A=7AH,R0=30H,(30H)=A5H,PSW=81H。
问执行以下各指令的结果(每条指令都以题中规定的数据参加操作)。
(1)XCHA,R0A=30HR0=7AHP=0
(2)XCHA,30HA=A5H(30H)=7AHP=0
(3)XCHA,@R0A=A5H(30H)=7AHP=0
(4)XCHDA,@R0A=75H(30H)=AAHP=1
(5)SWAPAA=A7HP=1
(6)ADDA,R0A=AAHCY=0OV=1P=0
(7)ADDA,30HA=1FHCY=1OV=1P=1
(8)ADDA,#30HA=AAHCY=0OV=1P=0
(9)ADDCA,R0A=ABHCY=0OV=1P=1
(10)SUBBA,30HA=D4HCY=1OV=0P=0
(11)ADDA,#30HA=CY=OV=P=
(12)DAAA=CY=P=
(13)RLAA=CY=P=
(14)RLCAA=CY=P=
(15)CJNEA,#30H,00A=CY=P=
(16)CJNEA,30H,00A=CY=P=
2.设A=82H,R0=17H,(17H)=34H,问执行以下指令后A=?
ANLA,#17H;A=02H
ORL17H,A;A=02H(