文档库 最新最全的文档下载
当前位置:文档库 › 51单片机基本结构详解

51单片机基本结构详解

51

单片机基本结构详解

1.什么是单片机

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 、随机存储器RAM 、只读存储器ROM 、多种I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调试电路电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

图1-1 单片机外形图

2.单片机的引脚排列

常用的单片机有40个引脚,其排列和功能如图2-1所示。

外ROM读选通信号

外接晶体引线端

地址锁存控制

引脚内外ROM选择引脚21

2223242526272829303132333435363738394020

19181716151413121110987654321VSS

XTAL1XTAL2T1/P3.5TO/P3.4TXD/P3.1RXD/P3.0RST/VPD P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT0/P3.2INT1/P3.3P2.0

P2.1P2.2P2.3P2.4P2.5P2.6P2.7P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0VCC EA/VPP ALE/PROG

PSEN RD/P3.7WR/P3.6电源引脚

接地引脚

复位信号

P1口

P0口

P3口

P2口

图2-1单片机的引脚排列和功能

3.单片机最小系统

单片机最小系统是单片机正常工作的最小硬件要求,包括供电电路、时钟电路、复位电路,如图3-1所示。

图3-1 单片机的最小应用系统

判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机

晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V ,19脚对地约2.09V 。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V 连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。

4. 单片机的内部结构

单片机由5个基本部分组成,包括中央处理器CPU 、存储器、输入/输出口、定时/计数器、中断系统等,如图4-1所示。

GN D VCC

1234567891011121314151617181920

P1.0P1.1P1.3P1.2RXD/P3.0RST/VPD

P1.7

P1.6P1.5P1.4P2.7RSEN ALE/PROG P2.6P2.5WR/P3.6T1/P3.5T0/P3.4INT1/P3.3INT0/P3.2TXD/P3.1XTAL1XTAL2RD/P3.7VSS P0.0P0.1P0.2P0.3P0.4P0.5

P0.6

P0.7EA/VPP 21

22232425262728293130323334353637383940P2.4P2.1P2.3P2.2P2.0

8051+5V

+5V

GN D

GN D 560Ω

4.7K Ω

22uF/50V

30P

30P

时钟电路复位电路

供电电路

1K Ω

图4-1 单片机的内部结构

4.1 单片机CPU 内部结构及功能

51单片机内部有一个8位的CPU ,包含运算器,控制器及若干寄存器等,如题

4-2所示。

4-2 单片机CPU 结构

INT CPU

ROM RAM

1

INT 0

INT 总线

时钟电路

并行接口

串行接口 中断系统

定时/计数器

从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A (8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。

1、运算器(ALU)的主要功能

A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。

B)加、减、乘、除、加1、减1、比较等算术运算。

C)与、或、异或、求补、循环等逻辑运算。

D)位处理功能(即布尔处理器)。

由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A 也用于存放运算结果。

例如:执行指令 ADD A,B

执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。

2、程序计数器PC

PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。

程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。

3、指令寄存器IR

指令寄存器的作用就是用来存放即将执行的指令代码。

在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。

4、指令译码器ID

用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根

据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。

5、地址寄存器AR(16位)

AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。

6、数据寄存器DR

用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。

7、程序状态字PSW

用于记录运算过程中的状态,如是否溢出、进位等。

例如,累加器A的内容83H,执行:

ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。

指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。

8、时序部件

由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。

4.2单片机的存储器

存储器是用来存放程序和数据的部件,MCS-51单片机芯片内部存储器包括程序存储器和数据存储器两大类。

①程序存储器(ROM)

一般用来存放固定程序和数据,特点是程序写入后能长期保存,不会因断电而丢失,MSC-51系列单片机内部有4KB的程序存储空间,可以通过外部扩展到64KB,如图4-3所示。

图4-3 内部程序存储器和外部程序存储器 ②数据存储器(RAM )

主要用于存放各种数据,内部结构如图4-4所示。 优点:可以随机读入或读出,读写速度快,读写方便。 缺点:电源断电后,存储的信息丢失。

图4-4 数据存储器的内部结构

位寻址区的位地址映象如表1-1所示。

0FFFH

0000H

1

=EA 外部

0FFFH

0000H

内部

=EA 4KB

64KB

0000H

FFFFH

4KB

FFFFH 1000H 60KB

00H 07H

08H 0FH 10H 17H 18H

1FH

R0

R7

R0

R7 R0 R7 R0

R7

第3 组 第2 组 第1 组 第0 组

通用工作寄存器区

20H 2FH 位寻址区

30H 7FH 用户数据存储区

低128

高128

21

SFR

特殊功能寄存器区

表1-1位寻址区的位地址映象表

4.2. 单片机的并行I/O

①P0口

P0口的口线逻辑电路如图4-5所示

vcc

地址/数据

控制

锁存器P0.X

D CP Q

Q

MUX

T1

T2

1

P0.X 引脚

读锁存器

写锁存器

内部总线读引脚

&

图4-5 P0口的口线逻辑电路如图

②P1口

P1口的口线逻辑电路如图4-6所示

单元地址

位地址

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 26H 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

高位

低位

vcc

锁存器

P1.X D

CP

Q Q

P1.X 引脚

读锁存器

写锁存器

内部总线读引脚

内部上拉电阻

图4-6 P1口的口线逻辑电路图

③P2口

P2口的口线逻辑电路如图4-7所示

锁存器P2.X

D CP Q

Q

读锁存器

写锁存器

内部总线读引脚

vcc

P2.X 引脚

内部上拉电阻

地址控制

MUX

1

图4-7 P2口的口线逻辑电路图

④ P3口

P3口的口线逻辑电路如图4-8 所示

锁存器P3.X

D

CP Q

Q

读锁存器

写锁存器

内部总线读引脚

vcc

P3.X 引脚

内部上拉电阻

&

第二输出功能

第二输入功能

图4-8 P3口的口线逻辑电路图

4.3.单片机的时钟和时序

①时钟电路

单片机时钟电路通常有两种形式:内部振荡方式和外部振荡方式

MCS-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端 。把放大器与晶体振荡器连接,就构成了内部自

激振荡器并产生振荡时钟脉冲。

外部振荡方式就是把外部已有的时钟信号直接连接到XTAL1端引入单片机内,

XTAL2端悬空不用。

②时序

振荡周期:为单片机提供时钟信号的振荡源的周期。

时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。因此时钟周期是振荡周期的两倍,即一个S 周期,被分成两个节拍—P1、P2

指令周期:CPU 执行一条指令所需要的时间(用机器周期表示)。 各时序之间的关系如图4-9所示。

图4-9各时序之间的关系

S1

P1

S2

S3

S4

S5

S6

S1

P2

P1

P2

P1

P2

P1

P2

P1

P2

P1

P2

P1

P2

机器周期

OS C

时钟

钟周期状态拍节

相关文档
相关文档 最新文档