单片机简答题.docx
《单片机简答题.docx》由会员分享,可在线阅读,更多相关《单片机简答题.docx(15页珍藏版)》请在冰豆网上搜索。
单片机简答题
51单片机内部集成的功能部件?
MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。
51的程序存储器、外部存储器、内部存储器各自的容量与地址范围?
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。
程序ROM
寻址范围:
0000H~FFFFH容量64KB
EA=1,寻址内部ROM;EA=0,
寻址外部ROM
地址长度:
16位
作用:
存放程序及程序运行时所需的常数
数据存储器片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
其中片内数据存储器分为两部分,地址从00H—7FH单元(共128个字节)为用户数据RAM,从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
3、51单片机的引脚EA的作用是什么?
EA/VPP:
外部程序存储器选择信号,低电平有效。
在复位期间CPU检测并锁存EA/VPP引脚电平状态,当该引脚为高电平时,从片内程序存储器读取指令,只有当程序计数器PC超出片内程序存储器地址编码范围时,才转到外部程序存储器中读取指令;当该引脚为低电平时,一律从外部程序存储器中读取指令。
4、RST有效时(复位)psw,SP,p0,PC的各个状态如何?
pc与PSW都置零
SP07h
p0-p3都为ffh
5、内部数据存储器结构?
00-7fh为RAM
00-1fh为工作寄存器区(也即SP初始化后的默认栈顶)
20-2fh按位寻址
30-7fh字节寻址
80h-ffh为特殊功能寄存器(SFR)
1、什么叫堆栈?
答:
堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。
实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。
4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?
它们之间是什么关系?
答:
某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。
也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周期,即1M=6S=12P。
6、MCS-51单片机的存储器从物理结构上可划分几个空间?
答:
MCS-51系列单片机的存储器配置从物理结构上可分为:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
从逻辑上可分为:
片内外统一编址的64KB的程序存储器、片内256B的数据存储器以及片外64KB的数据存储器。
7、存储器中有几个保留特殊功能的单元用做入口地址?
分别作什么作用?
答:
MCS-51系列单片机的存储器中有6个保留特殊功能单元,其中0000H为复位入口、0003H为外部中断0入口、000BH为T0溢出中断入口、0013H为外部中断1入口、001BH为T1溢出中断入口、0023H为串行接口中断入口。
8、MCS-51单片机片内256B的数据存储器可分为几个区?
分别起什么作用?
答:
MCS-51单片机片内数据存储器可分为二个区:
00H~7FH单元组成的低128B的片内RAM区、80H~FFH单元组成的高128B的专用寄存器区。
其中低128B的RAM区又分为:
00H~1FH单元为工作寄存器区、20H~2FH单元为位寻址区、30H~7FH单元为用户RAM区。
工作寄存器区可作通用寄存器用,用户RAM区可作堆栈和数据缓冲用。
专用寄存器区又称特殊功能寄存器,使用80H~FFH单元。
8、MCS-51单片机的P0~P3四个I/O端口在结构上有何异同?
使用时应注意的事项?
答:
MCS-51单片机的四个端口在结构上相同之处:
P0~P3都是准双向I/O口,作输入时,必须先向相应端口的锁存器写入“1”。
不同之处;P0口的输出级与P1~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而P1~P3则带内部上拉电阻,可以提供拉电流输出。
当P0口作通用I/O口输出使用时,需外接上拉电阻才可输出高电平;但作地址/数据总线时,不需要外接上拉电阻。
P1~P3口I/O输出时,均无需外接上拉电阻。
9、存储器空间在物理结构上可划分为几个部分?
答:
MCS-51存储器是采用将程序存储器和数据存储器分开寻址的结构,其存储器空间在物理结构上可划分为如下四个空间:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
10、开机复位后,CPU使用是的哪组工作寄存器?
它们的地址是什么?
CPU如何确定和改变当前工作寄存器组?
答:
开机复位后,CPU使用的是第0组工作寄存器。
它们的地址是00H~07H。
CPU通过对程序状态字PSW中RS1、RS0的设置来确定和改变当前工作寄存器组。
如:
RS1、RS0为00则指向第0组;为01则指向第1组;为10则指向第2组;为11则指向第3组。
11、MCS-51的时钟周期、机器周期、指令周期的如何分配的?
当振荡频率为8MHz时,一个单片机时钟周期为多少微秒?
答:
MCS-51的时钟周期是最小的定时单位,也称为振荡周期或节拍。
一个机器周期包含12个时钟周期或节拍。
不同的指令其指令周期一般是不同的,可包含有1~4个机器周期。
当振荡频率为8MHz时,一个单片机时钟周期为0.125μs。
12、程序状态存储器PSW的作用是什么?
常用状态标志有哪几位?
答:
PSW是8位寄存器,用于作为程序运行状态的标志,其格式如下:
PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H
字节地址D0HCACF0RS1RS0OVF1P
13、EA/VPP引脚有何功用?
8031的引脚应如何处理?
为什么?
答:
EA/VPP是双功能引脚,功能如下:
(1)
EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。
(2)
EA接低电平时,CPU只能执行外部程序存储器的指令。
8031单片机内部无ROM,必须外接程序存储器。
因此,8031的EA引脚必须接低电平。
在对8751单片机内部的EPROM编程时,此引脚VPP外接+12V电压,用于固化EPROM程序。
14、单片机有哪几个特殊功能寄存器?
各在单片机的哪些功能部件中?
答:
MCS-51单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。
这些特殊功能寄存器颁在以下各个功能部件中:
(1)CPU:
ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);
(2)中断系统:
IP、IE;
(3)定时器/计数器:
TMOD、TCOM、TL0、TH0、TL1、TH1;
(4)并行I/O口:
P0、P1、P2、P3;
(5)串行口:
SCON、SBUF、PCON。
16、什么叫寻址方式?
MCS51有几种寻址方式?
答:
寻址方式:
寻址方式就是寻找指令中操作数或操作数所在地址的方式。
也就是如何找到存放操作数的地址,把操作数提取出来的方法。
MCS51的寻址方式有:
立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对对址、位寻址。
17、SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。
答:
SJMP提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128~+127),AJMP的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB区的程序储存器中。
短转移方便了可重定位编码。
SJMP方便了PC可重定位编码,但转移范围小。
而ASJMP转移范围大,但存在跳区的限制,AJMP指令只能位于2KB区的最后2个字节处时,才可跳到下一个区去。
因此用AJMP指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地址在同一个2KB区域内。
18、中断服务子程序与普通子程序有哪些异同之处?
答:
相同点:
都是让CPU从主程序转去实行子程序,执行完毕后又返回主程序。
不同点:
中断服务子程序是随机执行的,而普通子程序是预先安排好的;中断服务子程序以RETI结束,而一般子程序以RET结束。
RETI除了将短点弹回PC动作之外,还要清除对应的中断优先标志位(片内不可寻址的触发器),以便新的中断请求能被响应。
19、MCS-51响应中断的条件是什么?
CPU响应中断后,CPU要进行哪些操作?
不同的中断源的中断入口地址是什么?
答:
CPU响应中断的条件如下:
①首先要有中断源发出有效的中断申请;
②CPU中断是开放的,即中断总允许位EA=1,允许所有中断源申请中断。
③申请中断的中断源的中断允许位为1,即此中断源可以向CPU申请中断。
以上是CPU响应中断的基本条件。
如果上述条件不足,则CPU一般会影响中断。
但是,若有下列任何一种情况存在,则中断响应会被阻止。
①CPU正处在为一个同级或高级的中断服务中。
②现行机器周期不所执行的指令的最后一个机器周期。
作此限制的目的在与使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。
③当前指令是返回指令(RET、RETI)或访问IE、IP的指令。
因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还应在继续执行一条指令,然后才能影响中断。
若存在任何一种情况,CPU将丢弃中断查询结果;否则,将在紧接着的下一个机器周期内执行中断查询结果,响应中断。
CPU响应中断后,保护断点,硬件自动将(PC)→堆栈,寻找中断源,中断矢量→PC,程序转向中断服务程序入口地址。
其中,INT0=0003H,T0=000BH,INT1=0013H,T1=001BH,串行接口=0023H。
20、单片机对中断优先级的处理原则是什么?
答:
⑴低级不能打断高级,高级能够打断低级;
⑵一个中断以被响应,同级的被禁止;
⑶同级,按查询顺序,INT0→T0→INT1→T1→串行接口
21、MCS-51的外部中断有哪两种触发方式?
他们对触发脉冲或电平有什么要求?
答:
有电平触发和脉冲触发。
电平方式是低电平有效。
只要单片机在中断要求引入端INT0和INT1上采样到低电平时,就激活外部中断。
脉冲方式则是脉冲的下条沿有效。
这种方式下,在两个相邻机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低,即为有效中断请求。
因此在这两种中断请求信号方式下,中断请求信号的高电平状态和低电平状态都应至少维持一个周期以保电平变化能被单片机采样用。
22、什么是中断和中断系统?
其主要功能是什么?
答:
当CPU正在处理某件事情的时候,外部发生的某一件事情请求CPU迅速去处理,于是,CPU暂时终止当前的工作,转去处理发生的事情,中断处理完该事件以后,再回到原来被终止的地方,继续原来的工作。
这种过程称为中断,实现这种功能的部件称为中断系统。
功能:
(1)使计算机具有实时处理功能,能对外界异步发生的事件作出及时的处理。
(2)完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。
(3)实现实时控制。
23、MCS-51有哪些中断源?
答:
MCS-51有如下中断源:
INTO:
外部中断0请求,低电平有效(由P3.2输入);INT1:
外部中断1请求,低点平有效(由P3.3输入);TO:
定时器/计数器0溢出中断请求;T1:
定时器/计数器1溢出中断请求;TX/RX:
串行借口中断请求。
通过对特殊功能积存器TCON、SCON、IE、IP的个位进行置位或复位等操作,可实现各种中断控制功能。
27、在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?
在什么情况下不能响应新的中断请求?
答:
符合以下6个条件可响应新的中断请求:
有中断源发出中断请求、中断总允许位EA=1,即CPU开中断、申请中断的中断源的中断允许位为1,即中断没有被屏蔽、无同级或更高级中断正在被服务、当前的指令周期已结束、若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。
如果新的中断请求“优先级”低于正在执行的中断请求或与其同级,则不能被响应。
29、什么是中断优先级?
中断优先级处理的原则是什么?
答:
通常,在系统中有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况。
这就要求计算机既能区分各个中断源的请求,又能确定首先为哪一个中断源服务。
为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。
中断优先级处理的原则是:
当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源服务,服务结束后,再响应级别较低的中断源。
30、中断响应过程中,为什么通常要保护现场?
如何保护?
答:
因为一般主程序和中断服务程序都可能会用到累加器、PSW寄存器和其他一些寄存器。
CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。
因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序前再恢复现场。
保护现场的一般方法是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压入堆栈。
在保护现场和恢复现场时,为了不使现场数据受到破坏或者造成混乱,一般规定此时CPU不响应新的中断请求。
这就要求在编写中断服务程序时,注意在保护现场前要关中断,在恢复现场后要开中断。
如果在中断处理时允许有更高级的中断打断它,在保护现场之后要再开中断,恢复现场之前关中断。
31、MCS-51定时器有哪几种工作模式?
有何区别?
答:
有模式0,模式1,模式2,模式3。
(1)模式0:
选择定时器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。
TL低5位溢出时向TH进位,TH溢出时向中断标志位TF0进位,并申请中断。
定时时间t=(213-初值)*振荡周期*12;计数长度为213=8192个外部脉冲。
(2)模式1:
与模式0的唯一区别是寄存器TH与TL以全部16位参与操作。
定时时间t=(216-初值)*振荡周期*12;计数长度为216=65536个外部脉冲。
(3)模式2:
把TL0与TL1配置成一个可以自动重装载的8位定时器/计数器。
TL用作8位计数器,TH用以保存初值。
TL计数器溢出是不仅使TF0置1,而且还自动将TH中的内容装载到TL中。
定时时间t=(28-初值)*振荡周期*12;计数长度为256个外部脉冲。
(4)模式3:
对T0和T1不大相同。
若T0设为模式3,TL0和TH0被分为两个相互独立的8位计数器。
TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。
TH0仅用于作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1的控制。
定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为模式0~2。
32、串行数据传送的主要优点和用途是什么?
答:
串行数据传送是将数据按位进行传送的方式。
其主要优点是所需的传送线根数少,对于远距离数据传送的情况,采用串行方式是比较经济的。
所以窜行方式主要用于计算机与远程终端之间的数据传送。
33、简述串行接口接收和发送数据的过程。
答:
串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。
当向SBUF发“写”命令时(执行“MOVSBUF,A“指令),即向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位T1=1。
在满足串行接口接收中断标志位RI(SCON。
)=0的条件下,置允许接收位REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。
当发读SBUF命令时(执行“MOVA,SBUF”指令),便由接收缓冲器SBUF取出信息通过MCS-51内部总线送CPU。
34、MCS-51串行接口有几种工作方式?
答:
MCS-51串行接口有四种工作方式;方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
35、MCS-51中SCON的SM2、TB8、RB8有何作用?
答:
MCS-51中SCON的SM2是多机通信控制位,主要用于方式2和方式3。
若置SM2=1,则允许多机通信。
TB8是发送数据的第9位,在方式2或方式3中,根据发送数据的需求有软件置位或复位。
它在许多通信协议中可用作奇偶校验位;在多机通信中作为发送地址帧或数据帧的标志位。
RB8是接收数据的第9位,在方式2或方式3中,接收到的第9位数据放在RB8位。
它或是约定的奇/偶校验位,或是约定的地址/数据标识位。
36、简述单片机多机通信的原理。
答:
当一片MCS-51主机与多片从机通信时,所有从机的SM2位置1。
主机首先发送的一帧数据为地址,即某从机机号,其中第9位1,所有的接收到数据后,将其中第9位装入RB8中。
各个从机根据收到的第9位数据(RB8中)的值来决定从机可否再接收主机的信息。
若(RB8)=0,说明是数据帧,则使接收中断标志位RI=0,信息丢失;若(RB8)=1,说明是地址帧,数据装入SBUF并置RI=1,中断所有从机,只有被寻址的目标从机清除SM2(SM2=0),以接收主机发来的一帧数据(点对点通信)。
其他从机仍然保持SM2=1。
38、简述单片机系统扩展的基本原则和实现方法。
答:
(1)以P0口作地址/数据总线,此地址总线是系统的低8位地址线。
(2)以P2口的口线作高位地址线。
(不固定为8位,需要几位就从P2口引出几条口线。
)(3)控制信号线:
①、使用ALE作为地址锁存的选通信号,以实现低8位地址线。
②、以PSEN信号作为扩展程序存储器的读选通信号。
③、以EA信号作为外程序存储器的选择信号。
④、以RD和WR作为扩展数据存储器和I/O端口的读写选通信号,执行MOVX指令时,这两个信号分别自动有效。
43.存储器的作用是什么?
只读存储器和随机存储器有什么不同?
存储器具有记忆功能,用来存放数据和程序。
计算机中的存储器主要有随机存储器
(RAM)和只读存储器(ROM)两种。
随机存储器一般用来存放程序运行过程中的中间数
据,计算机掉电时数据不再保存。
只读存储器一般用来存放程序,计算机掉电时信息不会
丢失。
46.位寻址和字节寻址如何区分?
在使用时有何不同?
由寻址方式可以看出,不同的寻址方式所寻址的存储空间是不同的。
正确地使用寻址方
式不仅取决于寻址方式的形式,而且取决于寻址方式所对应的存储空间。
字节寻址必须是对8
位存储单元,位寻址的存储空间只能是片内RAM的20H~2FH字节地址中的所有位(位地址
为00H~7FH)和部分SFR的位,决不能是该范围之外的任何单元的任何位。
48.在MCS-51单片机应用系统中,外接程序存储器和数据存储器的地址空间允许重叠而
不会发生冲突,为什么?
外部I/O接口地址是否允许与存储器地址重叠?
为什么?
答案:
因为单片机访问外部程序存储器与访问外部数据存储器(包括外部I/O口)时,会分别
产生与/两类不同的控制信号,因PSENRDWR此外接程序存储器和数据存储器的地址空间允
许重叠而不会发生冲突。
外部扩展I/O口占用数据存储器地址空间,与外部数据存储器统一编址,单片机用访问
外部数据存储器的指令来访问外部扩展I/O口。
因此外部I/O接口地址是否允许与程序存储
器地址重叠不允许与数据数据存储器地址重叠。
49.外部存储器的片选方式有几种?
各有哪些特点?
答案:
外部存储器的片选方式有线选法和译码法两种。
线选法的特点是连接简单,不必专门设
计逻辑电路,但是各个扩展芯片占有的空间地址不连续,因而地址空间利用率低。
适用于扩
展地址空间容量不太大的场合。
译码法的特点是在P2口未被扩展芯片地址线占用的地址总
线数量相同的情况下,可以比线选法扩展更多的芯片,而且可以使各个扩展芯片占有的空间
地址连续,因而适用于扩展芯片数量多、地址空间容量大的复杂系统。
50.简述MCS-51单片机CPU访问外部扩展程序存储器的过程。
答案:
P0口作为地址/数据复用的双向三态总线,用于输出程序存储器的低8位地址或输入指
令,P2口具有输出锁存功能,用于输出程序存储器的高8位地址。
当ALE有效(高电平)
时,高8位地址从P2口输出,低8位地址从P0口输出,在ALE的下降沿把P0口输出的低8位地址锁存起来,然后在PSEN有效(低电平)期间,选通外部程序存储器,将相应单元
的数据送到P0口,CPU在PSEN上升沿完成对P0口数据的采样。
。
54、什么叫中断?
答:
所谓中断,是指当计算机在执行正常的程序时,系统中出现一些急需CPU处理的异常情况或特殊请求,此时CPU暂时停止现在的程序,转去处理紧迫的事件,并在处理完毕后自动返回原来的正常程序继续运行。
55、单片机响应中断的条件和过程是怎样的?
答:
单片机响应中断的条件和过程是:
中断源有中断请求,CPU允许所有中断源请求中断(EA=1),中断允许寄存器IE的相应位置"1"状态。
这样,CPU在每个机器周期顺序采样每个中断源,并按优先级顺序查询中断标志。
若查询到某一个中断标志为1时,如果没有被下述条件所阻止,CPU则在下一个机器周期的S1响应激活了的最高优先级中断请求。
(1).CPU正在处理相同的或更高优先级的中断。
(2).当前的机器周期不是所执行指令的最后一个机器周期。
(3).正在执行的指令是RETI或者是访问IE或IP的指令。
若CPU正在执行RETI或者访问IE、IP,则至少要再执行一条指令CPU才会响应新的中断请求。
58SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。
前者提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128~+127),后者的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB区的程序储存器中。
短转移方便了可重定位编码。
SJMP方便了PC可重定位编码,但转移范围小。
而ASJMP转移范围大,但存在跳区的限制,AJMP指令只能位于2KB区的最后2个字节处时,才可跳到下一个区去。
因此用AJMP指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地址在同一个2KB区域内。
598031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?
答:
这是因为P0口是扩展储存器系统的多路低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。
ALE信号就是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。
而P2口只用作扩展存储器系统的高8位地址线,并