51单片机复习简答.docx
- 文档编号:26878986
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:23
- 大小:41.15KB
51单片机复习简答.docx
《51单片机复习简答.docx》由会员分享,可在线阅读,更多相关《51单片机复习简答.docx(23页珍藏版)》请在冰豆网上搜索。
51单片机复习简答
51单片机复习简答
一、单片机基础知识
1、单片机及MCU表示?
MicroControlUnit微控制单元
2、补码与补数有何不一样?
例如钟面以顺时针为正,3的补数?
补码?
-3呢?
补数就是两数的互补,例子中3的补数就是9;即两个补数的和一定是模。
-3的补数就是3,不是15,因为钟面上最多为12(0);
补码的概念用来表达有符号数的,其目的就是把符号数都看成正数而不影响结果,例如3的补码仍为3,-3怎样当作正数呢,-3就是逆时针3,相当顺时针9那么-3的补码就是9。
二、单片机结构原理
1、MCS-51单片机的存储结构有何特点?
MCS-51单片机在物理结构上有四个存储空间:
(1)、片内程序存储器EA=1
(2)、片外程序存储器EA=0
(3)、片内数据存储器mov
(4)、片外数据存储器movx
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
(1)、片内外统一编址的64K的程序存储器地址空间(MOVC)
(2)、256B的片内数据存储器的地址空间(MOV)
(3)、以及64K片外数据存储器的地址空间(MOVX)
2、简述51单片机内部RAM存储空间的分配
8051内部RAM共有256个单元,这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元
3、51单片机片内ROM分成几个地址区域及用途
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,
(1)0000H—0002H单元,系统复位后,PC的起始为0000H,
(2)另一组特殊单元是0003H—002AH,是中断向量表
(3)其他为用户区
4、RAM中可以位寻址的有哪些?
(1)低端的128字节,地址为20H-2FH;
(2)高端的128字节,被8整除的字节地址
5、如何确定当前工作寄存器
由PSW中的RS0,RS1决定的,00,01,10,11四组。
6、什么是堆栈?
有何作用?
如何工作?
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
它的特点是按照先进后出的原则存取数据。
7、什么是独立编址和统一编址?
独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中,他们的地址一样但指令不一样。
.统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间,访问的指令是一样的。
8、如果要使用位地址区,SP的初值至少应为?
复位后SP为07H,但要到位地址区则为1FH.
9、CPU在执行指令时有哪两个基本步骤?
取指(Fetch)――从主存储器中取出指令代码进入CPU
执行(Execution)――是将指令代码翻译成它代表的功能(被称为译码)、并发出有关控制信号实现这个功能。
10、ALE有何作用,是稳频脉冲吗?
在访问外部RAM时,控制地址线用。
输出方波为晶振的1/12,但不是稳定的,看执行的指令。
11、8051最小系统运行需要哪些部件?
晶振、复位电路,电源。
12、累加器A的作用
主要用于存储临时的数据和结果。
13、单片机有几个并行口,分别的作用?
有4个都有IO作用
P0、P2口可以形成16位地址/8位数据线,用于系统扩展。
P3提供第二功能如串行,定时、计数、中断。
14、P0口作输出口时,为什么要外加上拉电阻?
因为当P0口作数据传输作用时,输出驱动器是开漏电路,需要外加上拉电阻。
15、单片机的16位地址是如何形成的?
由P0口提供低8位地址兼数据线,P2口提供高8位地址。
16、反映程序运行状态或反映运算结果的特征寄存器是哪一个
Psw
17、8051如何进入复位
当8051的引脚RST,输入高电平时,8051进入复位状态。
8051一直维持这个值,直
到RST脚收到至少2个周期的高电平,8051才脱离复位状态,进入程序运行状态,
从ROM00H单元开始取指令并翻译和执行。
18、51单片机内部包含哪些主要功能部件?
各功能部件的主要作用是什么
运算器进行算术和逻辑运算
控制器控制协调各功能部件正确工作
定时器/计数器定时控制、延时及对外部事件的计数和检测
存储器存储程序、表格等
并行和串行I/O口信息传送及速度匹配和增加负载能力
中断系统协调系统对各种外部事件的响应和处理
时钟电路可控制单片机各工作部件协调工作
总线传递信息,提高集成度,可靠性
19、时钟电路的作用
产生时钟信号,为单片机的操作提供节拍标准。
20、时序图描述的是什么
时序图描述的是设备工作的先后顺序以及间隔时延。
21、P3作为第二功能时,端口相关部件的状态?
(1)Q为1,
(2)读引脚无效
22、什么是P口的读改写操作
就是一条指令读取P0的数据然后仍然写到P口,此时读取的是寄存器中的值。
23、P口读数据时一定要注意先要做什么操作?
Px=0xff;关闭输出驱动。
24、复位后,SP、Ram,P口的内容有何特点
SP=07H,P口置1;Ram中数据不变。
25、什么是字节地址和位地址,操作时考什么途径区分?
按字节存取的地址叫字节地址,按位存取的地址叫位地址。
操作时靠指令区分。
26、sfr中哪两个寄存器是16位,它们的作用?
(1)PC,用于程序地址计数
(2)DPTR,数据指针寄存器DPTR,主要是用来保存外部RAM的16位地址,
27、控制器的作用是什么?
从ROM中取出指令,并执行指令,发出不同的控制信号。
28、运算器做什么运算?
逻辑和算术运算
29、P0,P1,P2,P3带负载能力那个最强?
P0最强为8个TTL(指低电平时候的灌电流,每个TTL为100uA),P1-P3为4个TTL;
三、汇编语言
1、汇编语言的指令格式?
标号:
操作码,操作数;注释
2、51的寻址方式有几种
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、位寻址、相对寻址。
RAM:
立即寻址、直接寻址、寄存器寻址、位寻址。
内部(立即寻址、直接寻址、寄存器寻址、位寻址、寄存器间接寻址)
SFR只能直接寻址
外部(寄存器间接寻址);movx
ROM:
立即寻址 、变址寻址、相对寻址直接寻址;movc
3、直接寻址、立即数寻址的操作数分别在哪里?
立即寻址的操作数就在该指令里,无需到内存去找,若指令的立即数表达的是操作数的地址,则数据必须到该地址的内存中去找,这就是直接寻址。
4、操作数必须通过寄存器才能找到是寄存器寻址对吗?
不对,要看指令、寄存器以及内容
若是对ROM操作的指令,一定是寄存器(A)变址寻址。
若是对RAM操作的指领,寄存器中放的是操作数则是寄存器寻址,若是操作数地址则是寄存器间接寻址。
5、相对寻址的相对是谁相对谁?
答:
是指令中操作数相对当前PC的跳转,目的是改变当前的PC值/
6、51中位寻址的区域在那里
在低128RAM中的20-2FH中,还有SFR能被8整除的地址。
7、ADDA,#1与INCA的区别
在于前者会影响标志位,后者不会。
8、RL与RLC是循环右移操作有何不一样?
RLC是连同进位为一起移动
9、位地址的三种表达方式你会吗?
例如PSW的第五位
(1)直接地址表达:
D5H
(2)点操作:
PSW.5 或D0H.5
(3)位名称法:
F0
10、什么是位地址与字节地址,如何区分呢?
字节地址是内存按字节编排的的序号,位地址是字节地址中可位寻址的编号。
两者的区分是通过指令;例如:
MOVA,10H;MOVC,10H。
11、MOV,MOVX,MOVC区别?
MOV是针对片内RAM的,MOVX是针对片外RAM,MOVC对ROM
12、指令周期Ti、机器周期Tm、状态周期Ts、振荡周期To是什么关系?
机器周期是指令执行的最小时间单位;一条指令的周期有若干机器周期组成。
振荡周期是单片机工作的时钟,一个状态周期包含2个时钟周期,用于分析时序。
而一个机器周期包含12个时钟。
Ts=2To;Tm=12To;
12M?
13、当16位数据需要放到堆栈时是怎样的顺序?
MCS51堆栈是向上生长的,PUSH时先把低8位推入堆栈,然后再压入高8位,即低对地,高对高的原则。
14、JB,JC,JZ有什么区别
JB是对某位(可位寻址)是否为1,则转移;
JC是对进位位C是否为1,则转移;(相对寻址)
JZ是对累加器A是否为1,则转移;(相对寻址)
15、CJNZ与DJNZ的区分?
CJNZ直接的两个操作数的比较,不行等就转移;DJNZ是操作数减1之后非零转移
16、LJMP;AJMP,SJMP,JMP都为转移指令,转移的长度各位多大?
LJMP;AJMP,SJMP,JMP都是ROM中的操作,是针对PC的,
(1)LJMP;AJMP,SJMP是立即寻址,JMP是相对寻址
(2)JMP,LJMP:
64K;AJMP:
2K;SJMP:
256.狭义的讲JMP也只有256
17有关指令的记忆
(1)P19mov共24条表示传送
(2)XCH,就是change的意思,
(3)PUSH推入,POP弹出
(4)ADD+;SUB–;INC=+1;DEC=-1;MUL=*;DIV=/;DA
(5)ANL=ANDLogical;ORL;XRL
(6)RL=Rotateleft;RR;RRC
(7)SETCLEAR\
(8)AJMP=AbsoluteJump;shoirLong
(9)J=JUMP
18、寻址方式
四、C51编程
1、C51语言有哪些优点?
(1)开发效率高
(2)移植性好
2、C51基本的程序结构是怎样的?
(1)头文件
(2)函数和全局变量定义
(3)主函数
(4)子函数
3、C51语言的变量定义格式?
[存储种类] 数据类型 [存储类型] 变量名
4、C51存储种类有几种?
存储种类与标准C语言相同,包括:
自动型(auto)、外部型(extern)、静态型(static)、寄存器型(register)。
5、C51的存储类型?
片内RAM区:
RAM区(data)、可位寻址区(bdata),间接寻址区(idata),
片外RAM区:
页寻址区(pdata),片外RAM区(xdata)、
ROM区:
(code)。
6、C51的指针数据类型有那两个操作?
答:
分别是取地址&操作和取数值操作*
7、自动(auto)局部变量与静态(static)局部变量的异同?
相同点:
他们的作用范围一样,都是在定义的函数体内有效。
不同点:
(1)未赋予与初值时,自动变量值是随机的,而静态变量为0;
(2)auto型退出函数就不存在,static则存在于整个程序。
8、#include
包含了单片机内部资源的符号化定义
9、存储类型中pdata和xdata有何区别?
Pdata的xdata数据都存储在外部RAM,Pdata按页式访问寻址范围为256字节,数据长度为8位,而xdata为64K,数据长度为16位;
10、51中bit、data类型数据的存储空间?
bit是在内部数据存储空间中20H..2FH区域中一个位的地址,或者8051位可寻址SFR的一个位地址。
data是在内部数据存储空间中00H..7FH区域
11、sbit与bit有何区别?
他们都是C51的扩充类型,
(1)sbit用于寄存器位的访问,是寄存器为地址的映射。
(2)Bit是变量的定义,需要系统给以分配空间,地位同char,int。
(3)sbit使用在main()外部,bit在main()内外都可以
12、idata中数据访问地址?
固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:
movACC,@Rx.(补充:
c中idata做指针式的访问效果很好),间接寻址。
13、extern数据存储种类用于什么情况中?
定义的数据是在另外一个模块,当引用其它文件中的变量时要加上extern,在于表明要定义的数据已经在其他地方定义过,此处只是引用,所以编译器不会另外开辟内存。
14、C51如何访问某既定的地址
用指针,p=地址
15、C51编译的存储模式
SMALL;COMPACT;LARGE
五、中断系统
1、单片机中断是怎样的过程,为何要使用中断?
CPU中断当前的程序,去处理当前突发的事件,目的是提高系统的效率
2、CPU得到中断信号后要做哪些动作?
(1)查看优先级,是否符合条件
(2)允许则保护断点(PUSH)(3)清除标志位,进入中断服务(4)服务结束返回(POP)
3、单片机中断处理包含那几个环节?
(1)中断申请
(2)中断响应(3)中断服务(4)中断返回
4、单片机是如何发现有中断的?
当中断发生时,将相应标志位被置位,CPU在机器周期的S6位去定期扫描查看。
5、CPU要相应中断需要那些条件?
(4条)
(1)有中断请求
(2)中断允许(3)CPU开中断(4)无更高级别的中断在处理
6、中断的标志位的作用是什么?
在中断处理过程中该位的值操作的?
中断的标志位用于通知CPU有中断发生,即中断请求的标志。
在中断处理过程中,申请时置位,CPU响应后应清零,这儿为两种方式
(1)由硬件系统自动清除
(2)由编程时,软件控制清零。
7、中断撤销实质?
哪些是自动的,哪些是需要人工干预的?
实际上是标志位的撤销,自动的:
定时器,外中断的脉冲方式;人工干预:
外中断的电平方式、串行口中断。
8、正常情况下中断的响应时间是如何定的?
(1)一个周期的检测
(2)2个周期的跳转(AJMPXX或LJMPXX)
9、什么是中断向量?
51的中断向量在ROM中是如何安排的?
中断向量是中断服务程序的入口地址。
51中共(0-4)号5个中断号,分别是:
10、中断服务子程序与普通子程序有何异同?
(1)相同点:
都是让CPU从主程序转去执行子程序,执行完毕又返回主程序,。
(2)不同点:
进入时,中断服务程序是因中断而发生,由系统调用,而普通子程序是预先安排好的,由CALL指令手动调用;返回时,普通子程序直接返回用RET;而中断子程序需要处理中断系统的恢复用IRET。
对于现场数据,中断程序必须要保护,而子程序可以不去保护。
11、单片机对外部中断的触发电平或脉冲信号有何要求?
51的外部中断有两种触发模式,
(1)电平触发模式,则低电平有效,
在开中断后,必须保持INT引脚持续请求,直到产生中断后,为保护中断机构,需要关中断。
(2)边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。
12、如何撤出外部低电平方式的中断请求
对于电平方式的外部中断,中断标志的撤除是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时,又会把已清0的IE0或IE1标志位重新置1.为此,要彻底解决电平方式外中断的撤除,除了标志位清0之外,必要时还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平,为此,可在系统中增加如图所示电路
外中断请求标志撤除电路
从图可以看出,外部中断0请求信号在D触发器(可选用74LS74)的时钟输入端。
当外部设备有中断请求信号(为低电平)出现时,Q端输出为低电平,/INT0有效,向CPU发出中断请求信号。
CPU响应中断后,在中断服务程序中由软件安排1个低电平中断应答信号,从P1.0送至D触发器的/SD(置位端,低电平有效),使D触发器的Q端输出为高电平,从而撤除了低电平的外中断0请求信号。
/SD端所需的低电平可通过在中断服务程序中增加一下指令的得到:
ANL P1,#0FEH ;使P1.0输出为低电平,D触发器置位
在中断服务程序中还要加上撤除外中断0标志指令,即
CLR IE0 ;清外中断标志,以便下次可再次中断
可见,电平方式外部中断请求信号的撤除是通过软、硬件相结合的方法实现的。
13、单片机对中断的硬件系统的管理通过哪些寄存器是实现的?
(1)IE:
用于中断的允许
(2)IP:
用与中断优先级的设定
(3)TCON:
设置中断方式
(4)SCON:
串行口中断标志操作
14、C51中断程序设计的基本结构
#include
函数声明
Main()
{
中断优先设置;
中断方式设置;
中断允许;
中断开启;
}
Voidfun()interruptnusingm
{}
15、请分辨IP、IE、IE0、IT1、TI、RI、TF0、TR1、EA、EX0、PT1、PS的操作意义?
IP:
是中断优先控制器(IntPriority)
IE:
中断允许寄存器(INTENABLE)
IT1:
INT1的触发方式(INT1Trigger)
TI:
发送中断(=1表示发送完毕)TransmitInt
RI:
接收中断(ReceiveInt)
TF0:
定时器1标志(TimerFlag)
TR1:
定时器1启动(TimerRun)
EA:
总允许(EnableAll)
EX0:
外部中断1允许(EnableExtern0)
PT1:
T1定时器优先(PrioritizeTimer0)
PS:
是、串行口中断优先
16、MCS-51的中断响应过程是怎样的?
(1)将相应的中断优先级状态触发器置1,以阻断后来的同级和低级中断请求;
(2)由硬件清除相应的中断请求标志,串行口的发送和接收中断除外;
(3)执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC;
六、定时器/计数器
1、MCS-51有几个定时器?
2个
2、定时/计数器对内时钟脉冲还是对外时间脉冲计数?
由那些信号控制?
由TMOD的位2和位6控制,当置位时为计数方式对外事件,当清零时为定时是对内时钟脉冲计数。
3、计数器的初始值越大,计数的脉冲越多对吗?
不对,计数器是按加法器工作的,初值越大计数器能容下的空间就越小。
计数的脉冲就越小。
4、定时器工作时是对晶振脉冲计数吗?
不是,是它的1/12,即一个机器周期。
5、8位计数器,初值为56能计满至少能定时多长时间
256-56=200个脉冲,合200个机器周期
6、Gate位用于控制那个信号的?
用于控制TR对计数器的开启,当gate=0,允许TR对计数器的单独控制;当GATE=1时,TR对计数器的开启必须在INT=1时才有效。
7、计数器的工作方式共有几种,由哪个寄存器控制?
共4种,由TCON的M1M0控制;高四位中的M1M0设置T1,低四位的M1M0设置T0;
8、TCON中的TF0和IT0、IE0分别代表什么?
(1)定时器溢出标志
(2)中断0触发方式(3)中断0申请标记
9、单片机方式1的计数器容量是多大?
当它中断位置1值将变为?
16位计数器,共65532;当它中断位置1后计数值为0
10、51单片机是如何对外部事件计数的?
是对每个脉冲的下降沿进行触发计数的,检测时CPU在每个周期的S5去检测到高电平在下一个周期的S5检测到低电平,即2个机器周期才能检测一个下降沿。
所以外部脉冲的最高频率为1/24的晶振频率
11、方式1和方式2的区别?
(1)计数容量不一样方式1---16位,方式2---8位
(2)方式1需要重装初始值,方式2不需要。
13、方式3中使用于哪个定时器?
只适用于T0,T1不能不用
14、方式3下能产生中断的定时器和计数器有几个,容量分别多大?
方式3下的定时器/计数器,是由TH0,TL0分开实现的,容量都是256.TH0只能用于定时,TL0能用于计数和定时,而T1尽管能计数和定时但不能产生中断了。
15、方式3,TL0,TH0的标志位和启动信号?
T1如何启动
TL0的中断标志位TF0,由TR0启动
TH0的中断标志位TF1,由TR1启动
T1只要有初始值自动启动的
16、定时器编程的基本结构?
(1)中断方式
#include
函数声明
Main()
{
定时器方式设置;TMOD
初始值设置THTL
中断允许;TCON
中断开启;
开启定时器;
While
(1);
}
Voidfun()interruptnusingm
{
}
(2)查询方式
#include
函数声明
Main()
{
定时器方式设置;
初始值设置
中断允许;
中断开启;
开启定时器;
While
(1);
{IF(TFx==1){
TFx=0;//需要清零
}
}
}
17、CPU是通过怎样途径知道定时器“溢出”?
有两个途径
(1)查询方式,不断地扫描TFx标志位,为1说明溢出
(2)中断方式:
打开中断条件下,进入服务中断
18、对外计数时,CPU是怎样采集下降沿的。
是按前一个机器周期为高电平后一个周期为低电平作为一个下降沿计数的。
所以外部事件的最大频率不大于晶振的1/24.
19、单片机处于中断服务程序时,计数器工工作吗?
只要有脉冲持续,就能计数的,除非把TR关了。
七、串行口及其应用
1、在串行口部件中有两个SBUF,他们名称一样、地址也一样在具体工作是是如何区分的?
是通过指令区分的,SBUF=X;表示发送,SBUF是发送缓冲;x=SBUF表示接收,SBUF是发接收缓冲。
2、定时器T1在串行口工作时起什么作用?
产生时钟脉冲,用与收发过程中的节拍控制。
3、串行工作方式0是异步通信吗?
不是,它传输的数据没有控制位,是一般含义上的串并转换。
4、串行口工作在方式0并要接收数据,波特率为9600,初始化代码怎样写?
SCON=0X00;
REN=1;
TMOD==0X20;
TH1=TL1=0Xfd;
TR1=1;
5、RI,TI在什么情况下为1;
当串行口接受数据满时,RI=1;
当串行口发送完数据时,TI=1;
6、PCON中的SMOD用于控制什么的?
用于方式1、2、3控制波特率的,对方式0无效。
具体计算:
7、在方式0下发射、接收时分别是通过那个口出去的。
数据段都是RXD,TXD是发送时钟的。
8、请写出cpu完整接收、发送数据的代码
SBUF=x;
While(TI==0);
TI=0;
接收
While(RI==0);
RI=0;
x=SBUF;
9、方式0先收发的数据线都是RXD,收发状态有什么新信号控制
REN=0发,REN=1收
10、数据与数据帧有什么不一样?
方式1的数据帧格式?
数据是纯粹的数据位,数据帧是数据位中插入了一些控制位。
如串行方式1的数据帧为起始位0,8位数据位,结束位1,共10位。
真正有用的是8位数据位。
11、串行接收为和使用双缓冲结构?
数据取走的时候是并行的,而进入时是串行的,当数据接收完毕后右移位寄存器送到SBUF,然后立即进行下一帧的接收,这样数据不会重叠。
12、方式1的初始化工作有哪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)