51单片机学习总结Word文件下载.docx

上传人:b****5 文档编号:17313365 上传时间:2022-12-01 格式:DOCX 页数:47 大小:1.90MB
下载 相关 举报
51单片机学习总结Word文件下载.docx_第1页
第1页 / 共47页
51单片机学习总结Word文件下载.docx_第2页
第2页 / 共47页
51单片机学习总结Word文件下载.docx_第3页
第3页 / 共47页
51单片机学习总结Word文件下载.docx_第4页
第4页 / 共47页
51单片机学习总结Word文件下载.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

51单片机学习总结Word文件下载.docx

《51单片机学习总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《51单片机学习总结Word文件下载.docx(47页珍藏版)》请在冰豆网上搜索。

51单片机学习总结Word文件下载.docx

MCS-51系列单片机采用两种半导体工艺生产:

HMOS(高密度短沟道MOS)工艺和CHMOS(互补金属氧化物HMOS)工艺。

上表中凡带有“C”的,为CHMOS芯片。

CHMOS是CMOS和HMOS的结合,除保持HMOS高速和高密度的特点外,还具有CMOS低功耗的特点。

MCS-51单片机片程序存储器有三种配置形式:

掩膜ROM、EPROM和无。

此外,由于单片机的应用是面向现场的,因此它具有很强的抗干扰能力,这是任何其它计算机所不及的。

MCS-51单片机结构和原理

MCS-51单片机系列的典型芯片是8051,其基本组成如下:

1.中央处理器(CPU)

CPU是单片机的核心,完成运算和控制功能。

MCS-51的CPU能处理8位二进制数或代码。

2.部数据存储器(部RAM)

8051芯片共有256个RAM单元,但后128个单元被专用寄存器占用,提供给用户使用的只是前128个单元,用于存放可读写的数据。

3.部程序存储器(部ROM)

8051共有4KB掩膜ROM,用于存放程序、原始数据或表格。

4.定时器/计数器

8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以结果对计算机进行控制。

5.并行I/O口

MCS-51共有四个8位的I/O口,实现数据的并行输入输出。

6.串行口

MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。

该串行口即可作为全双工异步通信收发器使用,也可作为同步移位器使用。

7.中断控制系统

8051共有5个中断源:

外中断2个,定时/计数中断2个,串行中断1个。

8.时钟电路

MCS-51芯片的部有时钟电路,但需要外接晶体和微调电容。

系统允许的最高晶振频率为12MHz。

MCS-51是标准的40引脚双列直插式集成电路芯片。

其中:

P0.0~P0.7P0口8位双向口

P1.0~P1.7P1口8位双向口

P2.0~P2.7P2口8位双向口

P3.0~P3.7P3口8位双向口

ALE地址锁存控制信号——用于锁存PO口输出的低8位地址,以实现低位地址和数据的隔离。

此外,ALE可作为外部时钟或外部定时脉冲使用(以晶振六分之一的固定频率输出正脉冲)。

PSEN外部程序存储器(ROM)选通信号——低电平有效,以实现外部ROM单元的读操作。

EA访问程序存储器控制信号——低电平时,限定ROM的读操作在外部;

高电平是,则从部ROM开始读操作,并可延至外部ROM。

RST复位信号——当输入复位信号延续2个机器周期以上高电平时即为有效。

用以完成初始化操作。

XTAL1与XTAL2外接晶体引线——当使用芯片部时钟时,用于外接晶体和微调电容;

当使用外部时钟时,用于接外部时钟脉冲信号。

VSS地线

VCC+5V电源

P3口的第二功能如下表所示。

此外,有部EPROM的单片机芯片(如9751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由引脚的第二功能提供的:

编程脉冲:

30脚(ALE/PROG);

编程电压(25V):

31脚(EA/VPP)

MCS-51单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的——当电源发生故障,电压降低到下限值时,备用电源经此端向部RAM提供电压,以保护部RAM中的信息部丢失。

对于9、30和31引脚,第一功能与第二功能信号时单片机在不同工作方式下的信号,不会发生使用上的冲突。

但对P3口,在实际使用时,都是先按需要选用第二功能信号,剩下的口线才以第一功能作为数据位的输入输出使用。

 

8051的部存储器

8051单片机的芯片部有RAM和ROM两类存储器。

8051的部RAM共有256个单元,通常把这些单元按其功能划分为两部分:

低128单元(地址00H~7FH)和高128单元(地址80H~FFH)。

低128单元按其用途划分为三个区域:

1)寄存器区

共有四组通用寄存器,每组8个寄存单元(8位),各组都以R0~R7作为寄存器单元的编号。

常用于存放操作数及中间结果等。

有时也称为工作寄存器,占据部RAM的00H~1FH单元地址。

在任一时刻,CPU只能使用其中的一组寄存器,并把正在使用的那组寄存器称之为当前寄存器组。

寄存器组的选取由程序状态字寄存器PSW中的RS1、RS2位的状态组合来决定。

通用寄存器为CPU提供了就近数据存储的便利,有利于提高单片机的运算速度。

同时,使用通用寄存器还能提高程序编制的灵活性。

2)位寻址区

部RAM的20H~2FH单元,既可以作为一般的RAM单元使用,进行字节操作,又可以对单元中的每一位进行位操作。

位寻址区共有16个RAM单元(共128位),位地址为00H~7FH。

MCS-51利用这个位寻址区进行布尔处理机的存储。

3)用户RAM区

部RAM低128单元-通用寄存器32单元-位寻址区16单元=80单元,其地址为30H~7FH。

在一般应用中常把堆栈开辟在此区中。

高128单元

供给专用寄存器使用(专用寄存器SFR区),其单元地址为80H~FFH。

8051共有22个专用寄存器(21个是可字节寻址的)。

其中典型的5个如下:

1)程序计数器(PC-ProgramCounter)

PC是16位的计数器(寻址围为64KB),其容为将要执行的指令地址。

PC有自动加1功能,从而实现程序的顺序执行。

PC无地址(不可寻址),但可通过指令改变其容。

2)累加器(ACC-Accumulator)

ACC为8位寄存器,功能较多,也最为常用。

既可用于存放操作数,也可用来存放运算的中间结果。

单片机中的大部分数据操作都是通过ACC进行的,因此ACC实际上称为单片机程序运行的“瓶颈”,制约着单片机软件效率的提高。

3)B寄存器

8位寄存器,主要用于乘除运算,也可作为一般数据寄存器使用。

乘法运算时,B为乘数,乘积的高8位也存于B中。

除法运算时,B为除数,余数也存于B中。

4)程序状态字(PSW-ProgramStatusWord)

8位寄存器,用于寄存程序运行的状态信息。

其中,

CY(PSW.7)——进位标志位:

存放算术运算的进位标志;

在位操作中,作累加位使用,位传送、位与、位或等位操作,操作位之一固定是进位标志位。

AC(PSW.6)——辅助进位标志位:

加减运算中,当有低4位向高4位进位或借位时,AC由硬件置位,否则被清零。

F0(PSW.5)——用户标志位:

用来控制程序的转向,需要时用软件方法置位或复位。

RS1和RS0(PSW.4和PSW.3)——寄存器组选择位:

用于设定通用寄存器的组号(软件设置)。

OV(PSW.2)——溢出标志位

PSW.1保留未用

P(PSW.0)——奇偶标志位:

表明累加器中数的奇偶性(在每个指令周期由硬件自动进行置位或复位)

5)数据指针(DPTR)

16位寄存器,编程时,DPTR既可按16位寄存器使用,也可以按两个8位寄存器分开使用。

即,分成DPH和DPL。

DPTR通常用作访问外部数据存储器时的地址指针(外部数据存储器的寻址围为64KB)。

专用寄存器的字节寻址

1)在22个专用寄存器中,唯一一个不可寻址的专用寄存器是PC。

PC不占据RAM单元,它在物理上是独立的;

2)21个可字节寻址的专用寄存器是不连续地分散在部RAM高128单元中。

尽管还余有许多空闲地址,但用户不能使用;

3)对专用寄存器只能使用直接寻址方式,编程时既可使用寄存器符号,也可使用寄存器单元地址。

专用寄存器的位寻址

在21个可寻址的专用寄存器中,有11个是可以位寻址的。

表中凡字节地址不带括号的寄存器都是可进行位寻址的寄存器(全部专用寄存器可寻址的位共83位),加上位寻址区的128位,在MCS-51的部RAM中共有128+83=211个可寻址位。

堆栈及堆栈指示器

所谓堆栈(一种数据结构)就是只允许在其一端进行数据插入和数据删除操作的线性表。

堆栈最大的特点就是“后进先出”(LIFO)。

堆栈是为子程序调用和中断操作而设立的。

其具体功能有两个:

保护断点和保护现场。

为了使单片机能进行多级中断嵌套及多重子程序嵌套,还要求堆栈具有足够的容量(或称为足够的堆栈深度)。

堆栈的开辟可分为外堆栈和堆栈。

鉴于单片机的特点,因此在单片机中只能采用堆栈形式(即在CPU芯片的寄存器中开辟堆栈)。

堆栈的主要优点是操作速度快,但堆栈容量有限。

堆栈有两种操作:

进栈和出栈。

为了指示栈顶地址,要设置堆栈指示器SP(StackPointer),SP的容就是堆栈栈顶的存储单元地址。

由于MCS-51的堆栈设在部RAM中,因此SP是一个8位专用寄存器。

SP可初始化为不同的值(系统复位后,SP的容为07H),因此堆栈的位置是浮动的。

但堆栈最好在部RAM的30H~7FH单元中开辟,因此在程序设计时,应注意把SP值初始化位30H以后。

堆栈可有两种类型:

向上生长型和向下生长型。

向上生长型堆栈,栈底在低地址单元。

随着数据进栈,地址递增,指针上移;

反之,随着数据的出栈,地址递减,指针下移。

向下生长型堆栈的操作规则与之相反。

MSC-51属于向上生长型堆栈,这种堆栈的操作规则如下:

进栈操作:

先SP加1,后写入数据;

出栈操作:

先读出数据,后SP减1。

堆栈有两种使用方式:

自动方式和指令方式。

自动方式无需用户干预,即在调用子程序或中断时,返回地址(断点)自动进栈,程序返回时,断点再自动弹回PC。

指令方式,即使用专用的堆栈操作指令进行进出栈的操作。

部程序存储器(ROM)

8051芯片有4K的ROM存储单元(其地址为0000H~0FFFH)。

其中,一组特殊的单元是0000H~0002H。

系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。

如果程序不从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。

另一组特殊单元是0003H~002AH。

共40个单元,这40个单元被均匀地分为五段,作为五个中断源的中断地址区。

0003H~000AH代表外部中断0中断地址区

000BH~0012H代表定时/计数器0中断地址区

0013H~001AH代表外部中断1中断地址区

001BH~0022H代表定时/计数器1中断地址区

0023H~002AH代表串行中断地址区

中断响应后,按中断种类,自动转到各中断区的首地址去执行程序。

但通常8个单元难以存下一个完整的中断服务程序,因此往往在中断地址区的首地址处存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转移到中断服务程序的实际入口地址。

并行输入/输出口电路结构

MCS-51共有四个8位的并行I/O口,记作P0~P3。

它们已归入专用寄存器,并具有字节和位寻址功能。

在单片机中,口(或称为端口)是一个集数据输入缓冲,数据输出驱动及锁存等多项功能为一体的I/O电路。

MCS-51单片机的四个I/O口都是8位双向口,它们在结构和特性上基本相同,但又各具特点。

P0口既可以作为通用的I/O口进行数据的输入输出,也可以作为单片机系统的地址/数据线使用。

在实际应用中,P0口通常都是作为单片机系统的地址/数据线使用。

而当P0进行一般的输入操作时,由于输出电路是漏极开路的,因此必须外接上拉电阻才能输出高电平;

当P0进行一般的输出操作时,必须先向电路中的锁存器写入“1”,使FET截止,以免锁存器为“0”时对引脚读入的干扰。

P1口通常作为通用I/O口使用的,无需再外接上拉电阻。

当P1口作为输入口使用时,通用先需向锁存器写入“1”,使输出驱动电路的FET截止。

P2口与P0口一样,可作为通用I/O口使用,但通常是作为高位地址线使用。

P3口为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。

时钟电路与时序

为了保证单片机同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

单片机时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

晶体的振荡频率为1.2MHz~12MHz。

晶体振荡频率越高,系统时钟频率也越高,单片机运行速度也越快。

但快速的运行速度对存储器的运行速度要求高,同时对PCB板的工艺要求也高(线间寄生电容要小)。

因此,MCS-51通常使用振荡频率为6MHz的石英晶体,而12MHz主要用于高速串行通信。

在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。

需注意的是,外接的脉冲信号应当是高低电平持续时间大于20ns的方波,且脉冲频率应低于12MHz。

MCS-51的时序定时单位共有4个,从小到大依次是:

拍节、状态、机器周期和指令周期。

拍节(P)定义为振荡脉冲的周期,而经二分频后得到的单片机时钟信号的周期称为状态(S)。

即一个状态(S)包含两个拍节(P)。

MCS-51采用定时控制方式,因而有固定的机器周期。

规定一个机器周期的宽度为6个状态,共12个拍节,即机器周期就是振荡脉冲的十二分频。

指令周期是指执行一条指令所需要的时间。

MCS-51的指令周期根据指令的不同,可包含1~4个机器周期。

MCS-51指令时序

MCS-51共有111条指令,全部指令按其长度可分为单字节指令、双字节指令和三字节指令。

执行这些指令所需的机器周期数目不同,有以下几种情况:

单字节指令单机器周期和单字节指令双机器周期,双字节指令单机器周期和双字节指令双机器周期。

三字节的指令都是双机器周期的,单字节中的乘除指令为四机器周期。

图中的ALE信号时为地址锁存而定义的,以振荡脉冲的六分之一频率出现,每有效一次对应单片机进行的一次读指令操作。

外部ROM读时序

外部RAM读写时序

MCS-51单片机的工作方式

MCS-51单片机共有复位、程序执行、单步执行、掉电保护、低功耗以及EPROM编程和校验等六种工作方式。

1.复位方式

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序;

当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。

除PC之外,复位操作还对以下一些专用寄存器有影响:

复位操作还对单片机的个别引脚信号有影响,例如使

RST引脚为复位信号(高电平有效)的输入端,其有效时间应持续24个振荡脉冲周期以上。

复位操作有上电自动复位和按键手动复位两种方式,按键方式又可分为电平方式和脉冲方式两种。

上述电路图的电阻电容参数适用于6MHz晶振——保证复位信号高电平持续时间大于2个机器周期。

2.程序执行方式

该方式是单片机的基本工作方式。

3.单步执行方式

即通过外来脉冲控制程序的执行,来一个脉冲(按键一次)就执行一条指令。

单步执行是借助单片机的外部中断功能来实现的。

MCS-51的中断机制有这样的特点:

从中断服务程序返回主程序后,至少要执行一条指令,然后再响应新的中断。

4.掉电保护方式

MCS-51设置有掉电保护措施,可对RAM与寄存器中的程序和数据进行掉电保护处理。

其具体作法是,先把有用信息转存,然后再启用备用电源维持供电。

所谓信息转存是指当电源故障时,立即将系统的有用信息转存至部RAM中保护起来,即通常所说的“掉电中断”。

系统需具有备用电源与VCC电源的自动切换电路,如上上图所示,才能保护转存的信息不被破坏。

由于备用电源容量有限,为减少消耗,掉电后时钟电路和CPU皆停止工作,只维持部RAM和专用寄存器工作。

当电源VCC恢复时,STR/VPD端的备用电压还应维持一段时间(约10ms)。

单片机恢复正常工作的第一件事是被保护信息的现场恢复。

5.低功耗方式(80C51)

对HMOS的8051而言,掉电保护方式实际上就是低功耗方式;

而CHMOS得80C51有两种低功耗方式:

待机和掉电方式。

这两种方式都由专用寄存器PCON(电源控制寄存器)的有关位来控制。

其中

SMOD——波特率倍增位,在串行通信是才使用

GF0和GF1——通用标志位

PD——掉电方式位

IDL——待机方式位

当PCON寄存器的IDL=1,则80C51进入待机方式。

这时CPU时钟被阻断,但中断功能存在,振荡器仍然向中断逻辑、串行口和定时/计数器电路提供时钟。

当PCON寄存器的PD=1,则80C51进入掉电保护方式。

此时只有部RAM单元的容被保存——与8051不同!

另外,其备用电源由VCC端引入。

MCS-51指令系统概述

一台计算机所能执行的指令集合就是它的指令系统。

指令系统是由计算机生产厂商定义的,没有通用性。

指令系统是学习和使用单片机的基础和工具。

单片机应用中主要使用机器语言和汇编语言,而由汇编语言编写的程序没有通用性,无法直接移植。

MCS-51单片机指令系统共有111条指令,分为五大类:

1)数据传送类指令(29条)

2)算术运算类指令(24条)

3)逻辑运算及移位类指令(24条)

4)控制转移类指令(17条)

5)位操作类指令(17条)

一条指令通常由操作码和操作数两部分组成。

单片机的指令都是不定长的(变长指令)。

在MCS-51指令系统中,共有一字节指令49条;

二字节指令45条;

三字节指令17条。

寻址方式

所谓寻址,其实质就是如何确定操作数单元地址的问题。

一般而言,寻址方式越多的计算机其寻址能力越强,但指令系统也越复杂。

MCS-51共有七种寻址方式:

1)寄存器寻址方式

寄存器寻址就是操作数在寄存器中,因此制定了寄存器就能得到操作数。

典型的如:

MOVA,R0;

把寄存器R0中的容(操作数)传送到累加器A中。

该寻址方式的寻址围包括:

1.四个寄存器组(共32个通用寄存器);

2.部分专用寄存器。

2)直接寻址方式

指令中,操作数直接以单元地址的形式给出。

典型如:

MOVA,3AH;

把部RAM3AH单元中的数据传送给累加器A。

这种寻址方式的寻址围只限于部RAM,即低128单元+专用寄存器(以单元地址或寄存器符号形式给出)。

3)寄存器间接寻址方式

寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的。

为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,应在寄存器的名称前加标志“”。

以R0寄存器容3AH为地址,把该地址单元的容送入累加器A

其寻址围为:

1.部RAM低128单元

使用R0或R1作为间址寄存器,其通用形式为Ri(i=0或1)。

2.外部RAM的64KB

使用DPTR作为间址寄存器,其形式为DPTR。

3.外部RAM的低256单元

除可以使用DPTR作为间址寄存器寻址外,还可使用R0或R1(操作码为MOVX)。

4.堆栈操作指令

即以堆栈指针SP作为间址寄存器的间接寻址方式。

4)立即寻址方式

操作数(立即数)在指令中直接给出。

为了与直接寻址指令中的直接地址相区别,在立即数前加标志“#”。

MOVA,#3AH;

把数据3AH送累加器A

MOVDPTR,#data16;

MCS-51指令系统中唯一的一条16位立即寻址指令

5)位寻址方式

MCS-51有位处理功能,可以对数据位进行操作,响应地有位寻址方式。

ANLC,30H;

累加位C和地址30H的位进行逻辑与

其寻址围:

1.部RAM中的位寻址区(单元地址为20H~2FH,位地址为00H~7FH)。

2.专用寄存器(11个)的可寻址位(80位),可寻址位有四种表示方法:

A)直接使用为地址。

如PSW寄存器的第5位地址为D5H。

B)位名称表示。

如PSW寄存器的第5位是F0。

C)单元地址+位表示。

如D0H单元(即PSW寄存器)的第5位可表示为D0H.5。

D)专用寄存器符号+位表示。

如PSW寄存器的第5位可表示位PSW.5。

6)变址寻址方式

以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者容相加形成的16位地址作为操作数地址。

如:

MOVCA,A+DPTR;

把DPTR和A的容相加,再把所得到的程序存储器地址单元的容送A。

变址寻址的指令都是一字节指令,且只有三条:

MOVCA,A+DPTR

MOVCA,A+PC

JMPA+DPTR

变址寻址方式只能对程序存储器进行寻址,或可说它是专门针对程序存储器的寻址方式。

7)相对寻址方式

位实现程序的相对转移而设计,把PC的当前值加上偏移量rel(8位二进制补码,围为-128~+127)就构成了程序转移的目的地址。

单片机执行指令的过程

单片机的工作过程,实际上就是周而复始地取指令和执行指令的过程。

在取指令阶段,单片机从程序存储器中取出指令的操作码,送入指令寄存器,再经过指令译码器译码,产生一系列的控制信号,然后进入指令执行阶段,即利用指令译码产生的控制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1