第二章MCS51单片机的结构和工作原理.docx

上传人:b****5 文档编号:6877874 上传时间:2023-01-12 格式:DOCX 页数:25 大小:79.09KB
下载 相关 举报
第二章MCS51单片机的结构和工作原理.docx_第1页
第1页 / 共25页
第二章MCS51单片机的结构和工作原理.docx_第2页
第2页 / 共25页
第二章MCS51单片机的结构和工作原理.docx_第3页
第3页 / 共25页
第二章MCS51单片机的结构和工作原理.docx_第4页
第4页 / 共25页
第二章MCS51单片机的结构和工作原理.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

第二章MCS51单片机的结构和工作原理.docx

《第二章MCS51单片机的结构和工作原理.docx》由会员分享,可在线阅读,更多相关《第二章MCS51单片机的结构和工作原理.docx(25页珍藏版)》请在冰豆网上搜索。

第二章MCS51单片机的结构和工作原理.docx

第二章MCS51单片机的结构和工作原理

第二章MCS-51单片机的结构和工作原理

Intel公司生产的MCS-51系列单片机以其典型的硬件结构和面向控制的指令系统,为单片机的发展奠定了良好的基础。

众多单片机芯片的厂商都以它为基核,开发出具有不同功能和应用场合的单片机,为单片机的使用者提供了更多的选择余地。

在这一章中,以MCS-51型号的单片机为例,介绍MCS-51系列单片机的片内结构、引脚功能、存储器配置、时钟和复位电路等内容,使之对单片机的内部组成部件有初步的了解,为今后的学习奠定基础。

第一节MCS-51系列单片机的组成结构

一、MCS-51单片机的组成

在一块电路芯片上集成了微型计算机的五个组成部分,单片机的片内结构简化框图如图2-1所示。

主要由以下几部分组成:

8位的微处理器CPU,内含布尔处理器,一个片内振荡器和时钟电路;数据存储器RAM,程序存储器ROM;定时/计数器;串行通信接口;64K总线扩展控制器和4个并行I/0接口等。

MCS-51单片机片内总体结构框图如图2-2所示。

图2-1MCS-51单片机片内总体结构简化框图

众所周知,计算机是由五大部件组成,即运算器、控制器、存储器、输入和输出接口组成,单片机也是如此,各部件的功能简述如下。

二、中央处理单元(CPU)

CPU是MCS-51单片机核心部分。

它主要由运算器和控制器两部分构成,它的工作过程是:

取指令→分析指令→根据指令的功能控制单片机的各功能部件执行指定的运算或操作,如此循环往复。

1.运算器

运算器由算术/逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器、程序状态字寄存器PSW组成。

它所完成的任务是实现算术与逻辑运算、位变量处理和数据传送等操作。

1)算术/逻辑运算单元ALU可以实现8位数据的加、减、乘、除算术运算和与、或、异或、循环、取反等逻辑运算,同时还具有一般微处理器所不具备的位处理功能。

2)累加器ACC的作用是向ALU提供操作数和存放运算的结果。

同一般微机一样,MCS-51单片机在结构上也是以累加器ACC为中心,大部分指令的执行都要通过累加器ACC进行。

在运算时将累加器ACC中的一个操作数经暂存器2送至ALU,与另一个来自暂存器1的操作数在ALU中进行运算,运算后的结果又送回累加器ACC。

3)寄存器B作为通用的寄存器使用。

另外在乘、除运算时用来存放一个操作数,也用来存放运算后的一部分结果。

4)暂存寄存器用来暂时存放数据总线或其它寄存器送来的操作数。

它作为ALU的数据输入源,向ALU提供操作数。

5)程序状态字寄存器PSW用来保存ALU运算结果的特征位。

例如:

结果是否有溢出,是否有进位/借位等。

这些特征位可以作为控制程序转移的条件,供程序判别和查询。

图2-2MCS-51单片机内部结构框图

2.控制器

控制器是由指令寄存器IR、指令译码器ID、定时及控制逻辑电路和程序计数器PC等部件组成。

1)程序计数器PC是一个16位的计数器。

它总是存放着下一个要取指令的16位存储单元地址。

即CPU将PC的内容作为地址,从内存中取出指令码或含在指令中的操作数。

每取完一个字节后,PC的内容自动加1,为取下一个字节做好准备。

在执行转移、子程序调用指令和中断响应时例外,PC的内容不再加1,而是由指令或中断响应过程自动给PC置入新的地址。

2)指令寄存器IR保存当前正在执行的一条指令。

执行一条指令,先要把它从程序存储器取到指令寄存器中,然后进行译码,并形成相应指令的微操作信号。

3)定时与控制是微处理器的核心部件,它的任务是控制取指令、执行指令、存取操作数或运算结果等操作,向其它部件发出各种微操作控制信号,协调各部件的工作。

三.存储器

MCS-51系列单片机片内有程序存储器ROM和数据存储器RAM。

由表1-1可知,不同型号的单片机片内存储器的容量稍有不同。

8051及8751的片内程序存储器容量为4KB,用于存放程序和表格常数;8051/8751/8031片内数据存储器均为128B,用于存放运算的中间结果、数据暂存以及数据缓冲等。

在这128B的RAM中,有32个字节单元可指定为工作寄存器,和片内RAM排在一个队列里统一编址。

四、输入/输出接口

MCS-51系列单片机有四个8位并行接口(P0~P3),它们都是双向端口,每个端口的8条I/O线均可以进行数据的输入/输出。

端口的详细介绍请看本章第六节。

第二节MCS-51单片机的引脚功能

MCS-51系列单片机引脚的封装有多种形式,图2-3为双列直插式(DIP)引脚封装形式。

各引脚功能如下:

1.Vcc、Vss(40、20脚):

电源接入引脚,MCS-51系列单片机采用+5V的电源电压。

使用时VCC接电源的正极,VSS接电源负极。

2.XTAL1、XTAL2(18、19脚):

外部晶体振荡器的接入引脚;

图2-3MCS-51系列单片机引脚示意图

3.控制信号引脚RST,ALE,

1)RST/VPD(9脚):

此引脚有两个功能,一是作为复位信号输入端RST使用,高电平有效。

正常工作时,当此输入端保持两个机器周期(24个振荡周期)的高电平时,就可以完成复位操作。

此引脚的第二功能是作为备用电源的输入端VPD,当主电源Vcc发生故障,降低到低电平规定值时,将备用电源自动接入,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而使复位后能继续正常运行。

2)ALE/PROG(30脚):

此引脚有两个功能,一是输出地址锁存控制信号ALE,高电平有效,二是作为片内EPROM编程写入脉冲输入端。

当单片机上电正常工作后,ALE引脚不断向外输出地址锁存信号,其频率为振荡器频率fosc的1/6。

CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。

ALE端的负载驱动能力为8个LS型TTL负载。

在对片内带有4KBEPROM的单片机进行固化程序时,作为编程脉冲输入端PROG使用。

3)

(29脚):

程序存储器输出允许信号,低电平有效。

在访问片外扩展的程序存储器时,此端定时输出负脉冲,作为片外存储器的读选通信号。

同样可驱动8个LS型TTL负载。

另外,如果想测试MCS-51系列单片机芯片的好坏,在上电的状态下,可用示波器查看ALE和

引脚是否有脉冲信号输出,如有脉冲信号输出,表示芯片基本上是好的。

4)

/Vpp(31脚):

此引脚有两个功能,一是作为内/外部程序存储器设置信号输入端,二是作为片内EPROM编程写入电压输入端使用。

引脚接高电平时,CPU访问片内程序存储器的顺序是由内到外,即CPU首先从片内程序存储器开始执行程序,当PC(程序计数器)的值超过0FFFH时,将自动转去执行片外程序存储器内的程序。

当输入信号

引脚接低电平(接地)时,CPU只访问外部程序存储器,执行外部程序存储器中的程序,而不管是否有片内程序存储器。

对于无片内ROM的8031或8032型号的单片机,在使用时需要通过外部电路扩展程序存储器,此时必须将

引脚接地。

此引脚的第二功能Vpp是对8751片内EPROM固化编程时,作为施加较高编程电压(一般12V~21V)的输入端。

4.输入/输出端口引脚:

P0,P1,P2和P3

四个并行端口都可以作为普通的I/O端口使用,除P1口外其它三个端口都具有第二功能。

1)P0口(P0.0~P0.7,39~32脚):

可以作为普通的I/O口使用,在总线方式时,作为地址/数据线使用。

当P0口作为普通输入/输出口使用时,在输入数据时,应先向P0口锁存器(地址80H)写入全1,然后再读入数据。

当P0口作为总线接口使用时,在CPU访问片外存储器时,P0口做为低8位地址/数据的复用总线使用。

在此期间,P0口内部上拉电阻有效。

P0口是一个漏极开路的8位准双向I/O端口。

每位能驱动8个LS型TTL负载。

2)P2口(P2.0~P2.7,21~28脚):

可以作为普通的I/O口使用,在总线方式时,作为地址线使用。

当P2口作为普通输入口使用时与P0口相同,要先写1,然后再读入数据。

当P2口作为总线接口使用时,在CPU访问片外存储器时,它作为高8位地址总线使用。

P2口是一个带内部上拉电阻的8位准双向I/O端口,每一位能驱动4个LS型TTL负载。

3)P1口(P1.0~P1.7,1~8脚):

P1口是一个带内部上拉电阻的8位准双向I/O端口,无总线接口功能。

同理,在P1口作为输入口使用时,应先向P1口锁存器(地址90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平,然后再读入P1口的数据。

P1口的每一位能驱动(灌入或输出电流)4个LS型TTL负载。

4)P3口(P3.0~P3.7,10~17脚):

P3口是一个带内部上拉电阻的8位准双向I/O端口。

P3口的每一位能驱动4个LS型TTL负载。

P3口除作为一般准双向I/O口外,每个引脚还具有第二功能。

P3口用在第二功能使用时,8个引脚的功能如下:

P3.0-串行数据输入引脚RXD

P3.1-串行数据输出引脚TXD

P3.2-外部中断0(

)的中断请求信号输入引脚

P3.3-外部中断1(

)的中断请求信号输入引脚

P3.4-定时器0(T0)外部计数脉冲输入引脚

P3.5-定时器1(T1)外部计数脉冲输入引脚

P3.6-片外数据存储器写选通控制信号输出引脚

P3.7-片外数据存储器读选通控制信号输出引脚

第三节MCS-51单片机的存储器配置

mcs-51的存储器在物理结构上分为程序存储器和数据存储器,共有四个存储空间:

分别是片内程序存储器、片内数据存储器、片外程序存储器和片外数据存储器。

存储空间分布如图2-4所示,从使用者的角度看,mcs-51存储器的地址空间为三类:

图2-4存储空间分布图

1)片内、片外统一编址的64KB程序存储器地址空间,用16位地址表示为:

0000H~FFFFH。

CPU访问片内、片外ROM时,使用MOVC指令。

2)片外扩展的64KB的数据存储器地址空间,也用16位地址表示为:

0000H~FFFFH。

CPU访问片外RAM时,使用MOVX指令。

3)片内数据存储器256B地址空间,用8位地址表示为:

00H~FFH。

CPU访问片内RAM时。

使用MOV指令。

一、程序存储器的配置

MCS-51系列单片机的程序存储器最大配置为64KB,用于存放编好的程序和表格常数。

由图2-4可知,程序存储器由两个部分组成,片内程序存储器ROM,8051/8751的容量为4KB,地址为0000H~0FFFH;片外程序存储器最多可扩至64KB,地址为1000H~FFFFH,片内外统一编址。

并且通过

引脚进行设置。

1.

引脚的作用

当引脚

接高电平(

=1)时,MCS-51的程序计数器PC在0000H~0FFFH范围内(即前4KB地址)执行片内ROM中的程序;当指令地址超过0FFFH后,就自动转向执行片外ROM中的程序。

MCS-51从片内程序存储器和片外程序存储器取指时执行速度相同。

当引脚

接低电平(

=0)时,MCS-51片内ROM不起作用,CPU只能从片外扩展的程序存储器ROM中取指令执行,片外扩展的程序存储器ROM的地址从0000H开始编址。

这种接法特别适用于无片内程序存储器的8031型号的单片机。

CPU访问片内、片外ROM时,使用MOVC指令。

2.程序存储器中的保留单元

程序存储器的某些单元是留给系统使用的,见表2-1。

由于MCS-51系列单片机上电复位后,程序计数器的内容为0000H,所以CPU总是从0000H开始执行程序。

存储单元0000H~0002H用作MCS-51上电复位后引导程序的存放单元。

使用时通常在这三个单元中存放一条转移指令(LJMPMAIN),那么程序就被引导到转移指令指定的程序段去执行。

表2-1保留的存储单元

存储单元

功能

0000H

上电或复位后,引导程序入口地址

0003H

外部中断0(

)中断服务程序的入口地址

000BH

定时器0(T0)中断服务程序的入口地址

0013H

外部中断1(

)中断服务程序的入口地址

001BH

定时器1(T1)中断服务程序的入口地址

0023H

串行口中断服务程序的入口地址

MCS-51单片机有5个中断源,在程序存储器中规定了5个中断服务程序的入口,并且在每个中断向量之间有8个单元提供用户使用。

例如,外部中断0引脚

(P3.2)有效时,向CPU发出中断申请,CPU响应

的中断请求后自动将

中断服务程序的入口地址0003H装入PC,程序就自动转向0003H单元开始执行。

如果事先在0003H~000AH存入转移到

中断服务程序的转移指令,则程序就被自动转移到指定的中断服务程序空间去执行。

二、数据存储的配置

数据存储器RAM用于存放运算的中间结果、数据暂存和缓冲、标志位等。

数据存储器空间也分成片内和片外两大部分,片内存储器空间为256B,地址从00H~0FFH;片外数据存储器空间可扩展为64KB,地址从0000H~0FFFFH。

下面分别进行介绍。

图2-5片内RAM

1.片外RAM

片外数据存储器通过硬件电路可以扩展为64KB,地址范围:

0000H~0FFFFH。

使用时通过“MOVX”指令进行数据存取。

2.片内RAM

片内数据存储器共有128个字节,地址范围:

00H~7FH。

它们又分为三个部分:

工作寄存器区,位寻址区和用户区低。

如图2-5所示。

1)地址为00H~1FH的32个字节定义为工作寄存器区,并且分成四组来使用,称为0组、1组、2组和3组。

每组有8个工作寄存器,每个字节定义为一个工作寄存器,分别用R0~R7表示。

每组寄存器均可选作CPU的当前工作寄存器组。

若程序中并不需要四组寄存器,其余可以作一般RAM单元使用。

CPU复位后,选中第0组寄存器为当前的工作寄存器。

通过对程序状态字PSW中RS1,RS0的设置,可以选择其它组为当前工作寄存器,见表2-2。

2)地址为20H~2FH的单元为“位寻址区”,这16个字节即可以按字节寻址,也可以按位寻址,这16个字节总共128位,每一位都有唯一的位地址,可通过位寻址方式访问其各位,其位地址分布见表2-3所示。

表2-2工作寄存器地址表

R7

R6

R5

R4

R3

R2

R1

R0

RS1RS0

0组

工作寄存器的地址

07H

06H

05H

04H

03H

02H

01H

00H

00

1组

0FH

0EH

0DH

0CH

0BH

0AH

09H

08H

01

2组

17H

16H

15H

14H

13H

12H

11H

10H

10

3组

1FH

1EH

1DH

1CH

1BH

1AH

19H

18H

11

表2-3RAM位寻址区地址表

字节地址

MSB

位地址

LSB

2FH

7FH

7EH

7DH

7CH

7BH

7AH

79H

78H

2EH

77H

76H

75H

74H

73H

72H

71H

70H

2DH

6FH

6EH

6DH

6CH

6BH

6AH

69H

68H

2CH

67H

66H

65H

64H

63H

62H

61H

60H

2BH

5FH

5EH

5DH

5CH

5BH

5AH

59H

58H

2AH

57H

56H

55H

54H

53H

52H

51H

50H

29H

4FH

4EH

4DH

4CH

4BH

4AH

49H

48H

28H

47H

46H

45H

44H

43H

42H

41H

40H

27H

3FH

3EH

3DH

3CH

3BH

3AH

39H

38H

26H

37H

36H

35H

34H

33H

32H

31H

30H

25H

2FH

2EH

2DH

2CH

2BH

2AH

29H

28H

24H

27H

6H

25H

24H

23H

22H

21H

20H

23H

1FH

1EH

1DH

1CH

1BH

1AH

19H

18H

22H

17H

16H

15H

14H

13H

12H

11H

10H

21H

0FH

0EH

0DH

0CH

0BH

0AH

09H

08H

20H

07H

06H

05H

04H

03H

02H

01H

00H

3)地址为30H~7FH的单元为用户区,用户可以在这个区域存取数据,也可以定义为堆栈区。

对于128B的RAM区,CPU访问时可以采用字节地址或位地址方式。

如果访问位地址区,就用位寻址方式,否则可以采用直接寻址或间接寻址方式。

位寻址能力是MCS-51的一个重要特点。

这些可寻址位,通过执行指令可直接对某一位操作,如置1、清0等,可用作软件标志位或用于位(布尔)处理。

3.特殊功能寄存器(SFR)区

MCS-51片内RAM的80H~FFH地址空间,为特殊功能寄存器(SFR)区,有21个特殊功能寄存器(SFR),它们离散地分布在80H~FFH的RAM空间中。

访问特殊功能寄存器只允许使用直接寻址方式,这些特殊功能寄存器见表2-4所示。

在表2-4中,有21个特殊功能寄存器,有些特殊功能寄存器的符号地址上标有“※”号,他表示该特殊功能寄存器既可以位寻址也可以字节寻址。

表中有10个寄存器是即可以位寻址也可以字节寻址,特征是它们的字节地址正好能被8整除,其地址分布见表2-5所示。

下面介绍部分特殊功能寄存器,其余将在后续章节中讲述。

表2-4MCS-51系列单片机特殊功能寄存器表

符号地址

名称

字节地址

B

B寄存器

F0

*ACC

累加器

E0H

*PSW

程序状态字寄存器

D0H

*IP

中断优先级控制寄存器

B8H

*P3

P3口锁存寄存器

B0H

*IE

中断允许控制寄存器

A8H

*P2

P2口锁存寄存器

A0H

SBUF

串行口数据缓冲器

99H

*SCON

串行口控制寄存器

98H

*P1

P1口锁存寄存器

90H

TH1

定时/计数器1的高字节

8DH

TH0

定时/计数器1的低字节

8CH

TL1

定时/计数器0的高字节

8BH

TL0

定时/计数器0的低字节

8AH

TMOD

定时/计数器工作方式寄存器

89H

*TCON

定时/计数器控制寄存器

88H

PCON

电源控制寄存器

87H

DPH

数据指针寄存器高字节

83H

DPL

数据指针寄存器低字节

82H

SP

堆栈指针寄存器

81H

*P0

P0口锁存寄存器

80H

1)累加器ACC是MCS-51最常用的8位特殊功能寄存器;在执行运算指令时,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC中。

在指令系统中用A作为累加器ACC的助记符。

2)寄存器B在乘、除指令中使用最多。

乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。

详见乘除法指令,在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。

3)程序状态字寄存器PSW,它的8位包含了程序执行后的状态信息,供程序查询和判断之用。

其各位含义如下:

CY:

进位、借位标志位。

有进位、借位时CY=1,否则CY=0;

AC:

辅助进位、借位标志位,当高半字节与低半字节间有进位或借位时AC=1,否则AC=0;

F0:

用户标志位,由用户自己定义;

RSl、RS0:

当前工作寄存器组选择位,见表2-2;

OV:

溢出标志位。

有溢出时OV=1,否则OV=0;

P:

奇偶标志位。

存于ACC中的运算结果有奇数个1时P=1,否则P=0。

表2-5特殊功能寄存器地址表

SFR

MSB

位地址/定义

LSB

字节地址

B

F0

ACC

E7H

E6H

E5H

E4H

E3H

E2H

E1H

E0H

E0H

ACC.7

ACC.6

ACC.5

ACC.4

ACC.3

ACC.2

ACC.1

ACC.0

PSW

D7H

D6H

D5H

D4H

D3H

D2H

D1H

D0H

D0H

CY

AC

F0

RS1

RS0

OV

F1

P

IP

BFH

BEH

BDH

BCH

BBH

BAH

B9H

B8H

B8H

/

/

/

PS

PT1

PX1

PT0

PX0

P3

B7H

B6H

B5H

B4H

B3H

B2H

B1H

B0H

B0H

P3.7

P3.6

P3.5

P3.4

P3.3

P3.2

P3.1

P3.0

IE

AFH

AEH

ADH

ACH

ABH

AAH

A9H

A8H

A8H

EA

/

/

ES

ET1

EX1

ET0

EX0

P2

A7H

A96H

A95H

A4H

A3H

A2H

A1H

A0H

A0H

P2.7

P2.6

P2.5

P2.4

P2.3

P2.2

P2.1

P2.0

SBUF

99H

SCON

9FH

9EH

9DH

9CH

9BH

9AH

99H

98H

98H

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

P1

97H

96H

95H

94H

93H

92H

91H

90H

90H

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

TH1

8DH

TH0

8CH

TL1

8BH

TL0

8AH

TMOD

GATE

C/T

M1

M0

GATE

C/T

M1

M0

89H

TCON

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

88H

TF1

TR1

TF0

TR0

IT1

IE1

IT0

IE0

PCON

SMOD

/

/

/

GF1

GF0

PD

IDL

87H

DPH

83H

DPL

82H

SP

81H

P0

87H

86H

85H

84H

83H

82H

81H

80H

80H

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

4)8位堆栈指针寄存器SP,它总是指向栈顶。

MCS-51单片机的堆栈通常设在30H~7FH这一段RAM中。

在系统上电或复位时,SP的初始值为07H,可以在初始化程序中重新设置。

MCS-51系列单片机堆栈操作遵循“先进后出,后进先出”的原则,入栈操作时,首先执行SP加1操作,然后数据入栈存入SP指向的单元。

出栈操作时,先将SP指向单元的数据弹出,然后执行SP减1操作,这时SP指向的单元是新的栈顶。

由此可见,MCS-5

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

当前位置:首页 > 人文社科

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

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