第2章AT89C51的结构和原理Word格式.docx

上传人:b****4 文档编号:6411900 上传时间:2023-05-06 格式:DOCX 页数:23 大小:82.23KB
下载 相关 举报
第2章AT89C51的结构和原理Word格式.docx_第1页
第1页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第2页
第2页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第3页
第3页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第4页
第4页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第5页
第5页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第6页
第6页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第7页
第7页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第8页
第8页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第9页
第9页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第10页
第10页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第11页
第11页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第12页
第12页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第13页
第13页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第14页
第14页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第15页
第15页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第16页
第16页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第17页
第17页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第18页
第18页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第19页
第19页 / 共23页
第2章AT89C51的结构和原理Word格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第2章AT89C51的结构和原理Word格式.docx

《第2章AT89C51的结构和原理Word格式.docx》由会员分享,可在线阅读,更多相关《第2章AT89C51的结构和原理Word格式.docx(23页珍藏版)》请在冰点文库上搜索。

第2章AT89C51的结构和原理Word格式.docx

控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。

控制电路完成指挥控制工作,协调单片机各部分正常工作。

程序计数器PC用来存放即将要执行的指令地址,它可以完成64K的外部存储器寻址,执行指令时,PC内容的高8位经P2口输出,低8位经P0口输出。

数据指针DPTR为16位数据指针,它可以对64K的外部数据存储器和I/O口进行寻址,它的低8位为DPL(地址82H),高8位为DPH(地址为83H)。

堆栈指针SP在片内RAM(128字节)中开辟栈区,并随时跟踪栈顶地址,它按先进后出的原则存取数据,上电复位后,SP指向07H。

2.定时器/计数器

MCS-51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。

它们可以用于定时控制、延时以及对外部事件的计数和检测等。

3.存储器

MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。

对MCS-51系列(8031除外)而言,有4个物理上相互独立的存储器空间:

即内、外程序存储器和内、外数据存储器。

对于8051其芯片中共有256个RAM单元,其中后128个单元被专用寄存器占用,只有前128个单元供用户使用。

4.并行I/O口

MCS-51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。

P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。

5.串行I/O口

MCS-51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。

它具有两个相互独立的接收、发送数据缓冲器,两个缓冲器共用一个地址(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。

6.中断控制系统

MCS-51单片机的中断功能较强,以满足控制应用的需要。

8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。

所有中断分为高级和低级两个中断优先级。

7.时钟电路

MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。

时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为6MHz。

8.总线

以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。

系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。

2.1.3 

引脚信号

图2.3为MCS-51系列单片机引脚图及逻辑符号,它们为标准的40脚DIP封装。

这些引脚的功能描述如下:

(a)引脚图(b)逻辑符号

图2.3MCS-51外形

1. 

电源引脚Vcc和Vss

Vcc:

电源端,接+5V。

Vss:

接地端。

通常在Vcc和Vss引脚之间接0.1μ高频滤波电容。

2. 

时钟电路引脚XTAL1和XTAL2

XTAL1:

接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。

XTAL2:

接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。

3. 

地址锁存允许ALE

在系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。

当单片机上电正常工作后,ALE端就周期性地以时钟频率的1/6的固定频率向外输出正脉冲信号,ALE的负载能力为8个LSTTL器件。

4. 

外部程序存储器读选通信号

是读外部程序存储器的选通信号,低电平有效。

CPU从外部存储器取指令时,它在每个机器周期中两次有效。

5. 

程序存储器地址允许输入端

/VPP

为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。

为低电平时,CPU只执行片外程序存储器指令。

对于8031,由于其无片内ROM,故

必须接低电平。

6. 

复位信号RST

该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。

此外,该引脚还有掉电保护功能,若在该端接+5V备用电源,在使用中若Vcc掉电,可保护片内RAM中信息不丢失。

7. 

输入/输出口引脚P0、P1、P2和P3

P0口(P0.0~P0.7):

该端口为漏极开路的8位准双向口,负载能力位8高LSTTL负载,它为8位地址线和8位数据线的复用端口。

P1口(P1.0~P1.7):

它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。

P2口(P2.0~P2.7):

它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。

在访问外部程序存储器时,它作存储器的高8位地址线。

P3口(P3.0~P3.7):

P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有特殊功能。

MCS-51的存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自己的寻址系统、控制信号和功能。

程序存储器用来存放程序和始终要保留的常数,数据存储器通常用来存放程序运行中所需要的常数或变量。

MCS-51的存储器结构如图2.4所示。

在本节中我们将对单片机的内部数据存储器、内部程序存储器和外部存储器分别作一介绍。

图2.4MCS-51存储器配置

2.2.1内部数据存储器

 

对于8051单片机,其内部共有256个数据存储器单元,其中低128字节(00H~7FH)为真正的用户RAM区,其空间分配如图2.5所示;

高128字节(80H~FFH)为特殊功能寄存器区。

内部数据存储器低128单元

在低128字节存储单元中,前32个单元(00H~1FH)作为工作寄存器使用,这32个寄存器分作4组,每组由8个通用寄存器(R0~R7)组成,组号依次为0、1、2和3。

通过对程序状态字中RS1和RS0的设置,可以决定选用哪一组工作寄存器,通常没有选中的单元也可作为一般的数据缓存使用。

系统上电复位时,默认选中第0组寄存器。

在表2-1中给出了工作寄存器地址表。

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

组号

RS1RS0

R0

R1

R2

R3

R4

R5

R6

R7

0

00

00H

01H

02H

03H

04H

05H

06H

07H

1

01

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

2

10

10H

11H

12H

13H

14H

15H

16H

17H

3

11

18H

19H

1AH

1BH

1CH

1DH

1EH

1FH

工作寄存器中R0和R1可以进行直接寻址或间接寻址,而R2~R7只可以进行直接寻址。

通用寄存器为CPU提供了数据就近存取的便利,大大提高了单片机的处理速度。

在工作寄存器后的16个数据单元(20H~2FH),它们既可以作为一般的数据单元使用,由可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。

位寻址区共计128位,其位地址为00H~0FH,位地址表如表2-2。

表2-2内部RAM位寻址区的位地址

单元地址

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

24H

23H

22H

21H

20H

在内部RAM的低128个单元中,剩余的80个数据单元即30H~7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。

内部数据存储器高128单元

内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR),它们主要用于存放控制命令、状态或数据。

除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80H~FFH,特殊功能寄存器见表2-3。

这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。

下面将对部分专用寄存器作简要介绍。

表2-3MCS-51单片机特殊功能寄存器表

符号

名称

地址

*ACC

累加器

E0H

*B

B寄存器

F0H

*PSW

程序状态字

D0H

SP

栈指针

81H

DPTR

数据指针(DPH,DPL)

83H,82H

*P0

P0口锁存寄存器

80H

*P1

P1口锁存寄存器

90H

*P2

P2口锁存寄存器

A0H

*P3

P3口锁存寄存器

B0H

*IP

中断优先级控制寄存器

B8H

*IE

中断允许控制寄存器

A8H

TMOD

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

89H

+*T2CON

定时/计数器2控制寄存器

C8H

*TCON

定时/计数器控制寄存器

88H

TH0

定时/计数器0(高字节)

8CH

TL0

定时/计数器0(低字节)

8AH

TH1

定时/计数器1(高字节)

8DH

TL1

定时/计数器1(低字节)

8BH

+TH2

定时/计数器2(高字节)

CDH

+TL2

定时/计数器2(低字节)

CCH

+RCAP2H

定时/计数器2记录寄存器(高字节)

CBH

+RCAP2L

定时/计数器2记录寄存器(低字节)

CAH

*SCON

串行口控制寄存器

98H

SBUF

串行数据缓冲寄存器

99H

PCON

电源控制寄存器

97H

注:

凡是“*”号的特殊功能寄存器既可按位寻址,也可直接按字节寻址,凡是标有“+”号的特殊功能寄存器仅8032/8052型才有。

累加器ACC

累加器为8位寄存器,是程序中最常用的专用寄存器,在指令系统中累加器的助记符为A。

大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数也取自累加器。

加、减乘和除等算术运算指令的运算结果都存放在累加器A或AB寄存器中,在变址寻址方式中累加器被作为变址寄存器使用。

在MCS-51中由于只有一个累加器,而单片机中的大部分数据操作都是通过累加器进行的,故累加器的使用是十分频繁的。

B寄存器

B寄存器为8位寄存器,主要用于乘除指令中。

乘法指令的两个操作数分别取自累加器A和寄存器B,其中B为乘数,乘法结果的高8位存放于寄存器B中。

除法指令中,被除数取自A,除数取自B,除法的结果商数存放于A,余数存放于B中。

在其它指令中,B寄存器也可作为一般的数据单元来使用。

程序状态字PSW

程序状态字是一个8位寄存器,它包含程序的状态信息。

在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。

PSW中的每个状态位都可由软件读出,PSW的各位定义如表2.4。

表2.4PSW的各状态位定义

位序

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

位标志

CY

AC

F0

RS1

RS0

OV

/

P

(1) 

CY:

进位标志位

在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。

在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。

(2) 

AC:

辅助进位标志

进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置“0”。

在进行十进制调整指令时,将借助AC状态进行判断。

(3) 

F0:

用户标志位

该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。

(4) 

RS1和RS0:

寄存器区选择控制位

该两位通过软件置“0”或“1”来选择当前工作寄存器区,RS1和RS0的选择见表2.2。

(5) 

OV:

溢出标志位

当执行算术指令时,由硬件置位或清零来指示溢出状态。

在带符号的加减运算中,OV=1表示加减运算结果超出了累加器A所能表示的符号数有效范围(-128~+127),即运算结果是错误的,反之,OV=0表示运算正确,即无溢出产生。

无符号数乘法指令MUL的执行结果也会影响溢出标志,若置于累加器A和寄存器B的两个数的乘积超过了255,则OV=1,反之OV=0。

由于乘积的高8位存放于B中,低8位存放于A中,OV=0则意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积结果。

在除法运算中,DIV指令也会影响溢出标志,当除数为0时,OV=1,否则OV=0。

(6) 

P:

奇偶标志位

每个指令周期由硬件来置位或清零用以表示累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P=1,否则P=0。

数据指针DPTR

数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。

DPTR在访问外部数据存储器时既可用来存放16位地址,也可作地址指针使用。

如MOVX@DPTR,A。

I/O端口P0~P3

P0~P3为四个8位的特殊功能寄存器,分别是四个并行I/O端口的锁存器,当I/O端口的某一位用作输入时,对应的锁存器必须先置“1”。

定时器/计数器

在MCS-51中,除8032/8052外都只有两个16位定时器/计数器T0和T1,它们由两个相互独立的8位寄存器组成TH和TL,共有四个独立的寄存器TH0、TL0、TH1和TL1,只可对这四个寄存器独立寻址,而不能作为一个16位寄存器来寻址。

串行数据缓冲寄存器

串行数据缓冲器SBUF用于存放将要发送或已接收的数据,它由发送缓冲器和接收缓冲器组成,将要发送的数据被送入SBUF时进入发送缓冲器,反之进入接收缓冲器。

2.2.2 

外部数据存储器

在MCS-51中,其片外数据存储器和I/O口与片内数据存储器空间0000FH~FFFFH是重叠的。

在8051单片机中采用MOV和MOVX两种指令来区分片内外RAM空间,其中片内RAM使用MOV指令,片外RAM和I/O口使用MOVX指令。

2.2.3 

程序存储器

在MCS-51系列中,程序存储器被用来存放程序、常数或表格等。

在8051中,其片内有4K字节的ROM存储单元,地址为0000H~0FFFH。

8751有4K字节的EPROM,而8052和8752则有8K字节的片内存储器。

8031和8032无片内程序存储器,所以片内程序存储器的有无是区分芯片的主要标志。

对于8051和8751除了片内的4K字节的程序存储器外,片外还有16位地址扩展总线扩展64K字节的程序存储器,两者统一进行编址,当接“1”时,片内程序存储器占用0000H~0FFFH,故外部程序存储器寻址范围为1000H~FFFFH。

当接“0”时,MCS-51单片机均从片外存储器取指,这时片外程序存储器可以从0000H开始编址,对于8031和8032由于无片内程序存储器,它们的端必须接“0”。

在程序存储器中,以下6个单元具有特殊含义:

0000H:

单片机复位后,PC=0000H,程序从0000H开始执行指令。

0003H:

外部中断0入口地址。

000BH:

定时器0中断入口地址。

0013H:

外部中断1入口地址。

001BH:

定时器1中断入口地址。

0023H:

串行口中断入口地址。

在系统中断相应之后,将自动转各中断入口地址处执行程序,而中断服务程序一般无法存放于几个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。

2.3MCS-51单片机输入/输出(I/O)口

在MCS-51单片机中有4个双向的8位I/O口P0~P3,在无片外存储器的系统中,这四个I/O口的每一位都可以作为准双向通用I/O口使用。

在具有片外存储器的系统中,P0口作为地址线的低8位以及双向数据总线,P2口作为高8位地址线。

这4个口除了按字节寻址外,还可以按位寻址。

2.3.1P0口

图2.6给出了P0口的逻辑结构,它由一个锁存器、两个三态输入缓冲器、一个多路复用开关以及控制电路和驱动电路等组成。

图2.6P0口位结构

P0口可以作为输入输出口,在实际应用中它通常作为地址/数据复用总线。

在访问外部存储器时,P0口为真正的双向口。

由图2.6,当P0口输出地址/数据信息时,此时控制信号为高电平“1”,模拟开关MUX将地址/数据线与场效应管T2接通,同时与门输出有效,于是输出的地址/数据信息通过与门后将去驱动T1,同时通过反相器后驱动T2。

若地址/数据线为“1”,则T1导通,T2截止,P0口输出为“1”,反之T1截止,T2导通,P0口输出为“0”。

当数据从P0口输入时,读引脚使三态缓冲器打开,端口上的数据经缓冲器后送到内部总线。

当P0口作为通用I/O口时,CPU向端口输出数据,此时MUX开关与锁存器的相连,写信号与触发器的时钟线相连,于是内部总线上的数据经反相后出现在端,再经T2反相后输出到P0端口,输出数据经过两次倒相后相位不变,但是由于T2为漏极开路输出,故此时必须外接上拉电阻。

当P0口作输入时,由于信号即加载在T2上由被送入三态缓冲器,若该接口此前刚锁存过数据“0”,则T2是导通的,T2的输出被钳位在“0”电平,此时输入的“1”无法读入,所以当P0口作为通用I/O口时,在输入数据前,必须向端口写“1”,使T2截止。

不过当在访问外部存储器时,CPU会自动向P0口写“1”。

有时我们需要先将端口的数据读入,经过修改后再输出到端口,如果此时P0口的负载正好是晶体管的基极,并且其输出为“1”,这必然导致该引脚为低,若此时读取引脚信号,则会将刚输出的“1”误读为“0”,为了避免这类误读的错误,于是单片机还提供了读锁存器的功能。

例如执行INCP0时,CPU先读P0锁存器中数据,然后再执行加1操作,最后将结果送回P0口。

这样单片机从结构上满足了“读-修改-

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2