首页 理论教育MCS-51系列单片机的系统结构概述

MCS-51系列单片机的系统结构概述

【摘要】:MCS—51系列单片机中,有的芯片有片内程序存储器,有的芯片内没有程序存储器。MCS—51单片机片内有4 KB ROM,片外还可以扩展64 KB ROM。

1.MCS—51系列单片机引脚及功能、内部存储器。(C)

2.单片机时序(时钟、机器、指令周期关系)。(C)

3.单片机并行I/O口特点及使用。(A)

4.MCS—51系列单片机内部结构。(A)

5.指针(程序计数器PC、堆栈指针SP、数据指针计数器DPTR)。(C)

6.状态寄存器(程序状态字PSW)。(C)

7.单片机4组R0-R7通用寄存器选择。(B)

8.计算、存储(累加器A、乘除法专用寄存器B)。(A)

9.MCS—51系列单片机工作方式。(C)

10.带符号数的表示(原码、反码、补码),BCD码(压缩型BCD码和非压缩型BCD码)、ASCII码。(B)

近三年四川省对口升学本章考点内容及考题分析

本章应重点学习单片机内部结构、引脚及功能,理解存储器的组织结构,掌握时序单位间的关系,了解复位对单片机的影响。

一、MCS—51单片机的内部结构

MCS—51单片机的内部结构框图如图3-2-1所示。

图3-2-1 MCS—51芯片内部结构框图

(1)CPU是整个单片机的核心,由运算器和控制器组成,主要功能是完成指令的运行、控制、8位数据运算和位处理等。

(2)程序存储器主要用于存放程序指令、常数和数据表格。

(3)数据存储器RAM,主要用于存放可随机读写的数据。

(4)4个8位并行I/O口:P0、P1、P2和P3主要用于完成数据的并行输入和输出。

(5)两个16位的定时器/计数器,主要功能是用于定时或计数。

(6)一个可编程全双工串行口,用于实现单片机与其他设备之间的串行数据传输。

(7)具有5个中断源、2个优先级的中断系统。

二、芯片引脚功能

MCS—51单片机DIP(双列直插)封装芯片共有40个引脚,采用引脚复用技术。

各引脚名称和功能如下。

(1)工作电源引脚

VCC:电源端。

GND:接地端。

工作电压:5V。

(2)时钟引脚

XTAL1:芯片内部振荡电路反相输入端。

XTAL2:芯片内部振荡电路同相输入端。

当外接晶振时,XTAL1和XTAL2各接晶振的一端。

(3)I/O引脚

P0.0~P0.7:P0口8位双向口线。第一功能为基本输入/输出,第二功能是为扩展系统分时提供数据总线和低8位地址总线。

P1.0~P1.7:P1口8位双向口线,用于完成8位数据的并行输入/输出。用户使用口。

P2.0~P2.7:P2口8位双向口线。第一功能为基本输入/输出,第二功能是在系统扩展时作为高8位地址线使用。

P3.0~P3.7:P3口8位双向口线。它是一个双功能口,即P3口的每一条口线都具有第二功能,其功能见表3-2-1。

表3-2-1 P3口线的第二功能

(4)控制引脚

:地址锁存允许/EP ROM编程脉冲输入信号。当单片机正常工作时,该引脚输出稳定的脉冲信号(访问片内存储器时频率为fosc/6,访问片外存储器时频率为fosc/12)。

RST:复位信号。持续两个机器周期的电平

:访问外部程序存储器控制信号/片内FLASH ROM编程电源输入。主要用来选择CPU初始访问ROM对象,8031单片机由于无片内ROM,故必须接地。

:外部程序存储器选通信号。

三、并行I/O口

1.P0口

P0口有两种方式:通用I/O口、地址/数据总线。

通用I/O口:漏极开路输出,因此外接负载时要接上拉电阻,否则不能正常工作。

P0输入数据时,分为读引脚和读锁存器两种工作方式。

读引脚操作,即为单片机执行端口输入指令(如MOV A,P0)时的操作。

读锁存器操作,即为单片机执行“读—改—写”类指令(如ANL P0,A)时的操作。在执行这类指令时,先读入P0口在锁存器中的数据,然后进行相关逻辑运算,再把结果写回到P0口。

地址/数据总线的工作过程:当系统片外扩展时,控制信号使多路转换开关MUX接通,P0口就可以作为地址/数据总线。

2.P1口

P1口作为通用I/O口,输入和输出数据的工作过程与P0口相似。

P1口与P0口的区别是由于位结构中含有上拉电阻,不需外接上拉电阻。

3.P2口

P2口既可作为通用I/O口使用,又可作为系统扩展时的高8位地址总线使用。

P2口作通用I/O,其输入和输出的工作过程与P0口相似。

4.P3口

P3口可作为通用I/O口使用,同时P3口又是一个双功能口。

P3口作通用I/O,结构和工作过程与P2口完全相同。

P3口的某一位用作第二功能输出:该位的锁存器自动置1,与非门的输出只受“第二功能输出”端控制。“第二功能输出”端的信号经与非门和场效应管输出到该位引脚上。

P3口的某一位用作第二功能输入:该位的锁存器和“第二功能输出”端都为1,与非门输出为低电平,场效应管截止,引脚上的信号经缓冲器进入单片机内部第二功能输入端。

P0~P3口都是双向I/O口,同时又是双功能口。在输入引脚信息前,必须向对应的锁存器写1,就驱动能力来说,P0口的驱动能力最强,为8个TTL门,其余3个口驱动能力为4个TTL门。

四、存储器的组织结构

MCS—51系列单片机系统中有5种存储器,它们分别是片内RAM、片外RAM、片内ROM、片外ROM和片内特殊功能寄存器(SFR)。将这5种存储器编排在3个地址空间,即程序存储器空间、片内数据存储器空间、片外数据存储器空间。存储器空间分配情况如图3-2-2所示。

图3-2-2 MCS—51系列单片机的存储器配置

1.程序存储器空间

程序存储器可寻址的地址空间为64 KB,它包括片内ROM和片外ROM。MCS—51系列单片机中,有的芯片有片内程序存储器(如89S51),有的芯片内没有程序存储器(如8031)。

MCS—51单片机片内有4 KB ROM,片外还可以扩展64 KB ROM。片内4 KB ROM和片外低4 KB ROM地址重复,分配的地址空间为0000H~0FFFH。由引脚输入的信号决定是使用片内ROM还是片外ROM。时,CPU只访问片外ROM,地址范围:0000 H~FFFFH;时,CPU先访问片内ROM(0000 H~0FFFH)后访问片外ROM(1000 H~FFFFH)。

PC:程序计数器

PC是一个自动加1的计数器,其作用是CPU根据PC的值从ROM中取指令代码。由于无物理地址,故用户无法访问。

2.片内数据存储器空间

片内数据存储器空间包含内部RAM和SFR共256B。

(1)内部RAM

MCS—51单片机内部含有128 B的RAM,其地址为00H~7FH。按用途可分为三个部分:工作寄存器区、位寻址区和一般RAM区。如图3-2-3所示。

图3-2-3 内部RAM结构

工作寄存器区:共含有32个单元(00H~1FH),平均分成四组,每一组含有8个单元,记作R0~R7。其作用是用于存放操作数以及指令执行的中间结果。当前工作寄存器组是指CPU正在使用的工作寄存器组,可通过PSW中的RS1和RS0来进行选择。该区域中未被作为寄存器使用的单元可作为一般RAM使用。

位寻址区:共有16个单元(20 H~2FH)。这16个单元中的每一个位都有一个位地址,故有128个位地址,位地址范围是00H~7FH。该区域既可以进行单元寻址,也可以进行位寻址。

一般RAM区:共有80个单元(30H~7FH)。一般把堆栈设置在此区域中。

(2)特殊功能寄存器(SFR)

典型的MCS—51单片机共有21个特殊功能寄存器(SFR),离散分布在80 H~0FFH地址空间内。常用的特殊功能寄存器如下。

累加器ACC:8位累加器主要完成数据的算术和逻辑运算,也可以存放数据或中间结果,是最常用的特殊功能寄存器。它也是一个可位寻址的寄存器,单元地址为0E0H。

寄存器B:8位寄存器B主要用于乘、除法运算,与累加器配对使用,单元地址为0F0H。在乘法指令中,被乘数取自A,乘数取自B,乘积高字节存放于B中、乘积低字节存放于A中。在除法指令中,被除数取自A,除数取自B,结果商存放于A,余数存放于B。此外,B寄存器也可作为一般的寄存器使用。

程序状态寄存器PSW:用来反映指令执行后的状态。PSW中各位的定义见表3-2-2。

表3-2-2 PSW中各位的定义

CY:进位标志位。在加减法运算中,向高字节进/借位时CY=1,否则为0。

AC:辅助进位标志位(或半字节进位标志位)。在加减法运算中,向高半字节进/借位时AC=1,否则为0。该位对BCD码调整(指令DA A)有重要意义。

FO:用户标志位。

RS1、RS0:工作寄存器组选择位,其对应关系见表3-2-3。

表3-2-3 RS1、RS0与寄存器组对应关系

OV:溢出标志位。在符号数运算中有重要意义。

P:奇偶标志位。反应ACC中1的个数的奇偶性(奇数为1,偶数为0),如A=02 H,则P=1;A=06H,则P=0。

SP:堆栈指针寄存器。

堆栈是设置在片内RAM中的一段存储区域,它的存储顺序为先进后出(最先进栈的数据最后出栈)。SP用来指示栈顶位置的寄存器。

堆栈有两种操作:进栈和出栈。进栈操作后,SP的值自动加1,表明堆栈顶部的位置向上移;出栈操作后,SP的值自动减1,表明堆栈顶部的位置向下移。

DPTR:数据指针寄存器。

DPTR是一个16位特殊功能寄存器,可作为两个8位寄存器DPH和DPL使用,写作DPH为高8位,DPL为低8位。在系统扩展中,DPTR作为片外程序存储器和数据存储器的地址指针,指示要访问的存储器单元地址。

3.片外数据存储器空间

片外数据存储器扩展的最大容量为64 KB(0000H~FFFFH),由数据指针寄存器DPTR进行寄存器间接寻址(低256单元00H~FFH可用@Ri进行寻址)。

五、MCS—51时钟电路与复位电路

1.时钟电路

时钟的作用是保证片内各电路同步工作。

(1)振荡器与时钟电路

单片机的内部时钟信号是由振荡器产生的振荡脉冲二分频得到的。振荡器如图3-2-4所示。

图3-2-4

其中C1和C2起频率微调作用,外接石英晶体时选30 p F左右,外接陶瓷谐振器时选40 p F左右。晶体的振荡频率决定时钟电路的振荡频率,其频率范围一般在0~33 MHz之间。

单片机还可以采用外部时钟信号方式,如图3-2-5所示。

图3-2-5

这种方式主要用于解决多片单片机系统中的同步问题。

(2)时序的基本概念(www.chuimin.cn)

时序是指各种信号的时间序列,它表明了指令执行中各种信号之间的相互关系。为了保证同步工作方式的实现,全部电路应在统一的时钟信号控制下严格地按时序进行工作。

MCS—51时序的基本定时单位共有4个(从小到大),如图3-2-6所示。

时钟周期t:由振荡电路产生的振荡脉冲的周期,又称为节拍。

状态周期S:是时钟周期的2倍宽。

机器周期T:是执行指令的单位周期。1个机器周期包含6个状态周期(12个时钟周期)。

指令周期:执行一条指令所需要的时间。它是机器周期的整数倍。

图3-2-6

2.单片机系统的复位

复位是单片机进入工作状态的初始化操作。另外,当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可通过复位进行重新启动。

(1)复位电路(如图3-2-7所示)

MCS—51单片机的复位方式有上电自动复位和按键手动复位两种。按键手动复位又分为按键电平复位和按键脉冲复位两种。

图3-2-7

(2)复位状态

单片机复位操作的主要作用是使PC值为0000H,这样单片机将从0000 H单元开始执行程序。

复位操作还会影响其他某些专用寄存器,它们的状态见表3-2-4所示。

表3-2-4 专用寄存器复位状态

复位操作还会把ALE和变为无效状态,即ALE=0,=1。但复位操作不影响片内RAM单元的内容。

六、MCS—51单片机最小应用系统

单片机最小系统,或者称为最小应用系统(见图3-2-8),是指用最少的元件组成的单片机可以工作的系统。

对MCS—51系列单片机来说,最小系统一般应该包括单片机、时钟电路、复位电路、电源电路。

图3-2-8

七、MCS—51单片机的工作方式

MCS—51单片机的工作方式包括复位方式、程序执行方式、节电方式和编程校验方式。

1.复位方式

复位方式指对单片机的复位操作,让PC指向0000H地址。

2.程序执行方式

程序执行方式是单片机的基本工作方式。程序的执行可分为连续执行和单步执行。

3.节电方式

节电方式是指让单片机处于低功耗状态。节电方式包含掉电方式和空闲方式,由电源控制寄存器PCON中的控制位进行控制;退出节电方式的方法有复位和中断。

4.编程校验方式

编程:把用户编写的程序写入到单片机内部的ROM。校验:把写入到单片机内部ROM中的程序读出,验证写入的程序代码是否正确。

八、带符号数及码制

带符号数的定义:8位二进制数中用高位表示符号(0表示“正数”,1表示“负数”),其余7位表示数值。

1.带符号数的三种表示方法

(1)原码:用字节的最高位表示符号(0表示“正数”,1表示“负数”),其余位表示数值。

例如:十进制数+54和-54的原码

符号 数值

+54:0 0110110

-54:1 0110110

能表示十进制数的范围:-127~127。

(2)反码:正数的反码与原码相同;负数的反码与原码的符号位相同,数值位相反。

例如:十进制数+54和-54的反码

符号 数值

+54:0 0110110

-54:1 1001001

能表示十进制数的范围:-127~127。

(3)补码:正数的补码与原码相同;负数的补码与原码的符号位相同,数值位相反之后最低位加1。

例如: 十进制数+54和-54的补码

符号 数值

+54:0 0110110

-54:1 1001010

0的补码是唯一的00000000。能表示十进制数的范围:-128~127。在计算机中负数都采用补码。

2.常用的编码

(1)BCD码:用4位二进制数表示1位十进制数,见表3-2-5。非压缩BCD码:8位二进制数表示1位十进制数,就是在BCD码前加4个0,见表3-2-6。压缩BCD码:用8位二进制数表示2位十进制数,高、低4位各表示1位十进制数。通常十进制数采用压缩BCD码存放,见表3-2-7。

表3-2-5

表3-2-6

表3-2-7

(2)ASCII码:用7位二进制数对数字、字母和符号的编码。无数量意义。

在计算机中,所有的数据在存储和运算时都要使用二进制数表示。同样的像a、b、c、d这样的26个字母(包括大写)以及0、1、2等数字和一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示。而对于具体用哪个数字表示哪个符号的约定就叫编码。当然每个人都可以约定自己的一套编码,但这样就造成了一种通信和文件保存读取上的混乱。为了避免这样的混乱情况发生,美国国家标准学会出台了所谓的美国信息交换标准码(ASCII)。图3-2-9为原始ASCII码,8位二进制编码中最高位为0,共有128个编码。增补的ASCII码8位二进制编码中最高位为1,可有128个编码。

图3-2-9

【例1】 8051单片机的接电源时,能扩展片外ROM可用的最大容量为________KB。

【答案】 60

【解析】 该题是对的作用、8051单片机片内ROM容量和总容量的考查。8051单片机ROM的总容量为64KB,当=1时,CPU先访问片内ROM(4KB)再访问片外ROM(60KB)。

【例2】 (2018年高考题)若程序状态寄存器PSW中的RS1=1,RS0=0,则工作寄存器R7的直接地址为_________。

【答案】 17H

【解析】 该题是对RS1、RS0的作用,以及各工作寄存器组的地址范围的考查。RS1=1,RS0=0,故当前工作寄存器组为组2,地址范围10 H~17 H。所以R7的物理地址为17H。

【例3】 (2017年高考题)若累加器中有奇数个1,则PSW中的奇偶标志位P为1。( )

【答案】 A

【解析】 该题是对奇偶标志位作用的考查。P反应A中1的个数的奇偶性,奇为1,偶为0。

【例4】 (2017年高考题)关于MCS—51单片机复位的说法,正确的是( )

A.保持RESET引脚两个以上机器周期的高电平即可复位单片机

B.复位时程序计数器PC和堆栈指针SP将被清零

C.复位时内部RAM的值将被清零

D.复位操作不影响ALE和引脚

【答案】 A

【解析】 复位时程序计数器PC=0000H,堆栈指针SP=07H,对内部RAM的值不影响,并将ALE和置为无效。故保持RESET引脚两个以上机器周期的高电平即可复位单片机是正确的。

【例5】 (2017年高考题)MCS—51单片机中,除I/O功能外还具有中断、串行通信等第二功能的I/O口是( )

A.P0 B.P1 C.P2 D.P3

【答案】 D

【解析】 该题是对并行I/O口第二功能的考查。P0口低8位地址和数据总线,P2口高位地址线,P3口串行通信、中断等。

【例6】 (2016年高考题)若MCS—51单片机的晶振频率为6 MHz,则机器周期为( )

A.1μs B.2μs C.4μs D.8μs

【答案】 B

【解析】 晶振频率为6 MHz时,时钟周期就为1/6μs;由于机器周期是时钟周期的12倍,所以此时机器周期为2μs。

一、单项选择题

1.ALU的中文含义是( )

A.加法器 B.算术逻辑单元

C.逻辑单元 D.数学单元

2.8051单片机的字长是_________位。( )

A.8 B.4 C.16 D.32

3.当8051单片机系统的振荡晶体频率为6 MHz时,复位电平至少需( )

A.1μs B.2μs

C.3μs D.4μs

4.当8051单片机的RST引脚上出现持续________个振荡周期以上的高电平时,系统复位。( )

A.24 B.48

C.12 D.64

5.在8051单片机中,第3区工作寄存器位于内部RAM的________区域内。( )

A.00~07H B.08 H~0FH

C.10H~17H D.18H~1FH

二、判断题(正确的选“A”,错误的选“B”)

1.8051单片机片内有128B的数据存储器。( )

2.8051单片机片内有16个单元的位寻址区,该区域只能位寻址不能单元寻址。( )

3.单片机复位后,堆栈指针寄存器SP的值为00H。( )

4.PSW中AC位为辅助进位标志位,主要用于BCD码的运算调整。( )

5.堆栈操作有进栈操作和出栈操作两种类型,进栈操作原则上指针加1后再进栈。( )

三、填空题

1.程序执行方式是单片机的基本工作方式。程序的执行可分为连续执行和________。

2.MCS—51单片机最小系统一般应该包括单片机、时钟电路、_________和电源电路。

3.MCS—51单片机中用户可以使用唯一一个16位寄存器________,由两个8位寄存器组成,作为片外数据存储器和程序存储器的地址指针。

4.MCS—51单片机中CPU由运算器和________组成,主要用于运算和控制。

5.PC是一个自动加1的16位寄存器,它存放的是_________的地址。