第2章 MCS-51单片机内部结构和原理_第1页
第2章 MCS-51单片机内部结构和原理_第2页
第2章 MCS-51单片机内部结构和原理_第3页
第2章 MCS-51单片机内部结构和原理_第4页
第2章 MCS-51单片机内部结构和原理_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汽车单片机与车载网络技术(讲义)上册主讲:李鹏伟第三章第2章MCS-51单片机内部结构和原理

MCS-51单片机是高性能8位单片机,其代表是8051。该系列其他单片机以8051为核心,再增加一定的功能部件后构成的。在单片机中除了有CPU、存储器和输入/输出接口外,还有定时器/计数器、串行I/O接口和中断系统等逻辑部件。本章主要介绍MCS-51单片机的基本结构和功能、存储器、I/O口以及单片机的引脚功能等。2.1MCS-51单片机内部结构与封装2.1.1MCS-51单片机基本结构及功能

MCS-51单片机是由8位CPU、程序存储器(EPROM/ROM)、数据存储器(RAM)、并行I/O口、串行I/O口、定时器/计数器、中断系统、振荡器和时钟电路等部分组成,各部分通过内部总线相连。MCS-51单片机系统结构如图2-1所示。图2-1MCS-51单片机系统结构框图下面介绍各部分的功能。中央处理器是MCS-51单片机的核心,完成运算和控制操作。故CPU由运算器和控制器两大部分组成。1.中央处理器(CPU)(1)运算器。用来完成算术运算、逻辑运算和位操作。它由算术/逻辑单元(ALU)、累加器A、寄存器B、暂存寄存器、程序状态字寄存器PSW等组成。算术/逻辑单元(ALU)由加法器和相应的控制器逻辑电路组成,可实现8位数据的加减乘除算术运算和与、或等逻辑运算,又具有位处理功能。累加器A是一个非常常用的寄存器。运算时将一个操作数经暂存寄存器送至ALU,与另一个来自暂存寄存器的操作数在ALU中运算,结果又送入累加器A中。寄存器B在乘、除运算时用来存放一个操作数,也用来存放结果的一部分。暂存寄存器用来暂时存放数据总线和其他寄存器送来的操作数。程序状态字寄存器PSW是状态标志寄存器,用来保存ALU运算结果的特征和处理状态。(2)控制器。用来统一控制和协调单片机进行工作的部件。由程序计数器PC、指令寄存器IR、指令译码器ID和定时及控制逻辑电路等部分组成。程序计数器PC是16位计数器,总是存放下一条要读取指令所在存储单元的16位地址。每取完一个字节后PC自动加1。单片机复位时PC自动清0,即装入地址0000H。指令寄存器IR用来保存当前正在执行的一条指令。指令译码器ID用来翻译操作码,确定所要执行的操作。定时与控制逻辑是CPU的核心部件,它控制读指令、执行指令、存取操作数或运算结果等操作,向其他部件发出各种操作控制信号,协调各部件工作。2.存储器

MCS-51单片机的存储器物理上设计成程序存储器和数据存储器两个独立空间。

MCS-51单片机片内数据存储器共有256BRAM单元,其中后128个单元被特殊功能寄存器占用(80H~FFH),供用户使用的是前128B单元(00H~7FH),用于存放运算结果、暂存数据和数据缓存。因此前128B单元简称内部RAM。片内程序存储器为4KBROM,用于存放程序和原始数据,简称片内ROM,地址范围为0000H~07FFH。3.定时器/计数器

MCS-51单片机有2个16位定时器/计数器,实现定时和计数功能。4.并行I/O口

MCS-51单片机有4个8位I/O口,即P0、P1、P2和P3,实现数据并行输入输出。5.串行口

MCS-51单片机有一个全双工串行口(UART),利用P3.0(RXD)和P3.1(TXD)实现单片机与外设的数据传送。6.中断控制系统

MCS-51单片机有5个中断源,包括2个外部中断,2个定时/计数中断,1个串行中断。有高级和低级两个优先级。7.时钟电路主要为单片机产生时钟脉冲序列,石英晶体和微调电容需要外接,典型晶振频率为11.0592MHz、12MHz和24MHz,微调电容容量为20pF~30pF。8.总线为了减少单片机的连线和引脚,提高集成度和可靠性,系统的地址信号、数据信号和控制信号都是通过总线传送的,因此有三种总线,即地址总线、数据总线和控制总线。2.1.2MCS-51单片机引脚分布及功能图2-2是89C51的引脚结构图,有双列直插封装(DIP)方式和方形封装方式。下面分别叙述这些引脚的功能。图2-289C51的引脚结构1.电源引脚VCC和VSS

VCC(40脚):电源端,接+5V。

VSS(20脚):接地端,有时标为GND。2.时钟信号引脚XTAL1和XTAL2

XTAL1(19脚):接外部晶振和微调电容的一端,也是外部时钟源的输入端。

XTAL2(18脚):接外部晶振和微调电容的另一端,采用外部时钟源时该脚悬空。判断单片机的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。3.控制信号引脚RST、ALE、和RST(9脚):复位信号输入端,高电平有效。

ALE(30脚):地址锁存允许信号端。CPU访问片外存储器时该引脚输出信号作为锁存低8位地址的控制信号。单片机正常工作时该引脚不断向外输出正脉冲信号,频率为振荡频率的1/6。(29脚):片外程序存储允许输出信号端。单片模式时该引脚不接。(31脚):外部程序存储器地址允许输入端。当引脚接高电平时,CPU从片内ROM访问并从内部程序存储器中的指令执行;当引脚接低电平时,CPU只访问片外ROM并执行片外程序存储器中的指令。4.输入/输出端口P0、P1、P2和P3

P0口(32~39脚):8位漏极开路型双向并行I/O口。

P1口(1~8脚):8位具有内部上拉电阻的准双向I/O口。

P2口(21~28脚):8位具有内部上拉电阻的准双向I/O口。

P3口(10~17脚):8位具有内部上拉电阻的准双向I/O口,每一位又具有特殊功能(第二功能),如表2-1所示。表2-1P3口引脚与特殊功能表端口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)2.2MCS-51单片机内部存储器

CPU访问存储器时,一个地址对应唯一的存储器单元,可以是ROM,也可以是RAM,并用同类访问指令,此种存储器结构称为普林斯顿结构。MCS-51单片机的存储器在物理上是分开的,共有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,这种程序存储器和数据存储器分开的结构形式称为哈佛结构。

MCS-51单片机的存储器从逻辑上划分为3个存储地址空间:片内外统一编址的64KB程序存储器地址空间(0000H~FFFFH),64KB片外数据存储器地址空间(0000H~FFFFH),256字节片内数据存储器地址空间。CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。图2-3为MCS-51单片机的存储器配置。2.2.1程序存储器程序存储器用来存放调试好的应用程序和表格常数。内部有ROM的单片机,在正常运行时应把引脚接高电平,使程序从内部ROM开始执行,当PC值超过内部ROM地址空间时,自动转向外部ROM去执行程序。对内部无ROM的单片机,应始终接低电平,迫使CPU从外部ROM取指令。图2-3MCS-51单片机的存储器配置

64KB程序存储器中的7个入口地址具有特殊功能。

0000H单元:程序的起始地址,系统复位后PC的值为0000H,0000H~0002H单元用于初始化,一般在起始地址单元中设置一条绝对转移指令使之转向主程序处执行。其他6个特殊功能的入口地址分别对应6种中断源的中断服务程序入口地址,如表2-2所示。通常在中断入口地址处写一条跳转指令,跳转到中断服务程序处执行。表2-2中断向量入口地址表中断源入口地址外部中断00003H定时计数器T0溢出000BH外部中断10013H定时计数器T1溢出001BH串行口中断0023H定时计数器T2溢出或T2EX输入负跳变002BH2.2.2数据存储器数据存储器RAM用于存放运算的中间结果、数据暂存和缓冲等。数据存储器地址空间由内部和外部数据存储器空间组成,当访问片内RAM时,用MOV类指令;当访问片外RAM时,则用MOVX类指令。片内数据存储器在物理上又分为三部分:低128BRAM、高128BRAM(仅52系列)和特殊功能寄存器(SFR)。1.片外RAM片外RAM与片内RAM的低地址部分(0000H~00FFH)是重叠的。片内RAM使用MOV指令,片外64KBRAM空间专门为MOVX指令所用,采用R0、R1或DPTR寄存器间接寻址方式访问。如MOVXA,@DPTR。2.片内RAM(1)低128BRAM(00H~7FH)片内RAM的低128BRAM由工作寄存器区、位寻址区和数据缓冲区组成,如图2-4所示。图2-4低128BRAM区

00H~1FH地址安排为4组工作寄存器区,每组有8个工作寄存器(R0~R7),共占32个单元,见表2-3。通过对程序状态字PSW中RS1、RS0的设置,每组寄存器均可选作CPU的当前工作寄存器组。表2-3工作寄存器地址表RS1RS0寄存器组R0R1R2R3R4R5R6R700工作寄存器组000H01H02H03H04H05H06H07H01工作寄存器组108H09H0AH0BH0CH0DH0EH0FH10工作寄存器组210H11H12H13H14H15H16H17H11工作寄存器组38H19H1AH1BH1CH1DH1EH1FH内部RAM中的20H~2FH是16个单元的位寻址区,这16个单元共有128位,其位地址为00H~7FH。所谓位寻址是指CPU能直接对这些位进行置“1”、清“0”、求反、传送等逻辑操作。数据缓冲区是片内RAM中30H~7FH的80个单元,只能以存储单元的形式使用,一般常把堆栈开辟于此区中。(2)高128BRAM(80H~0FFH)该存储区仅52子系列有,只可用间接寻址方式访问。(3)特殊功能寄存器(SFR)(80H~0FFH)该区存放相应功能部件的控制命令的状态或数据,MCS-51系列单片机的特殊功能寄存器共有22个,可直接寻址的有21个。①程序计数器PC(ProgramCounter)。PC是16位计数器,内容为将要执行的指令地址,有自动加1功能,以实现程序顺序执行。PC没有地址,不可以寻址。但在执行转移、调用、返回等指令时自动改变其内容实现程序执行顺序的改变。②累加器A(ACC,Accumulator)。ACC为8位寄存器,用于寄放操作数,也是ALU运算结果的暂存单元,也是数据的中转站,在变址寻址方式中把累加器作为变址寄存器使用。因此累加器A使用非常频繁。③寄存器B。8位寄存器,主要用于乘、除运算。④程序状态字PSW(ProgramStatusWord)。8位寄存器,寄存指令执行的状态信息。PSW的各位定义如下:位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV—PPSW各位的功能如下:

CY(PSW.7)进位标志。加减法运算时如果结果的最高位(D7位)向上有进位或借位,CY置1,否则清0。在位操作时CY又作为位累加器使用。

AC(PSW.6)半进位标志。加减运算时如果运算结果低半字节(D3位)向高半字节有进位或借位,AC置1,否则清0。F0(PSW.5)用户标志位。

RS1、RS0(PSW.4、PSW.3)工作寄存器组选择控制位。用软件对RS1、RS0作不同组合,以确定工作寄存器的组号,如表2-3所示。

OV(PSW.2)溢出标志。带符号数补码运算时,如果有溢出,即当运算结果超出-128~+127的范围时,OV置1;无溢出时OV清0。—(PSW.1)为保留位。

P(PSW.0)奇/偶标志。每个指令周期均由硬件来置位或清0,以指出累加器A中1的个数的奇偶性。若1的个数为奇数,则P置位,否则清0。⑤堆栈指针SP。堆栈是一个特殊的存储区,暂存数据和地址,它是按“先进后出”的原则存放数据的。第一个进栈的数据所在的存储单元称为栈底,最后进栈数据的存储单元叫做栈顶,SP是8位特殊功能寄存器,始终指向栈顶在片内RAM中的位置,每存或取一字节数据SP就自动加或减1,系统复位后SP的初始值为07H,即堆栈实际从08H单元开始工作。⑥数据指针DPTR。DPTR是16位的特殊功能寄存器,由高8位字节DPH和低8位字节DPL组成。用于存放16位地址,作间址寄存器和基址寄存器使用,以便访问片外RAM和ROM。DPTR可以作为2个独立的8位寄存器DPH和DPL使用。⑦并行I/O接口P0、P1、P2和P3。均为8位,可以实现数据的输入或输出。其余的特殊功能寄存器在以后章节介绍。2.3MCS-51单片机I/O端口电路、时钟电路与工作方式2.3.1MCS-51单片机I/O端口的结构及使用方法

MCS-51单片机内有4个8位并行I/O口,称为P0、P1、P2和P3。每个端口都是8位准双向I/O口,共占32个引脚。每个端口都包含一个锁存器,一个输出驱动器和一个输入缓冲器。在具有片外扩展存储器的系统中,P2口送出高8位地址,P0口为双向总线,分时送出低8位地址和数据的输入/输出。1.P0口

P0口的字节地址为80H,位地址为80H~87H。图2-5所示为P0口某一位的结构图。它由一个输出锁存器、2个三态输入缓冲器和输出驱动电路及控制电路组成。图中控制信号C的状态决定转换开关的位置。当C=0时,开关处于图示位置;当C=1时,开关拨向反相器输出端位置。图2-5P0口某位结构图VCC10KΩ(1)P0口用作输入/输出口当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,这样,端口引脚上的数据经过缓冲器2读入到内部总线。在读入端口引脚数据时,由于输出驱动VT2并接在引脚上,如果VT2导通,就会将输入的高电平拉成低电平,产生误读。因此在端口执行输入操作前,应先向端口锁存器写入1,也就是使锁存器Q的反的值=0。因为控制线C=0,因此VT1和VT2全截止,引脚处于悬浮状态,可作高阻抗输入。例如执行:

MOVA,P0

CPU执行的是“读引脚”的操作,将P0口上的数据读入累加器A,必须注意,执行该类输入指令前必须把锁存器写入“1”。当P0口作为输出端口时,CPU执行“读—修改—写”的操作,内部数据总线上的数据在“写锁存器”的信号作用下由D端进入锁存器,经锁存器的反相端送至VT2,在经VT2反相,在P0.X引脚上出现的数据正好是内部总线的数据。例如执行:ANLP0,A内部产生的“读锁存器”操作信号使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算后,结果又送回P0的接口锁存器并出现在引脚上。(2)P0口用作地址/数据总线当系统进行片外ROM扩展或进行片外RAM扩展,P0口用作地址/数据总线。2.P1口

P1口的字节地址为90H,位地址为90H~97H。图2-6所示为P1口某一位的结构图。它由一个输出锁存器、2个三态输入缓冲器和输出驱动电路组成。输出驱动电路只有一个场效应管VT1,同时内部带上拉电阻。图2-6P1口某位结构图

P1口可作通用双向I/O口用,不必再外接上拉电阻。当端口用作输入时和P0口一样,必须先向对应的锁存器写入“1”,使VT1截止,然后读引脚。3.P2口

P2口的字节地址为0A0H,位地址为0A0H~0A7H。图2-7所示为P2口某一位的结构图。它由一个输出锁存器、2个三态输入缓冲器和输出驱动电路及控制电路组成。输出驱动电路只有一个场效应管VT1,同时内部带上拉电阻。图2-7P2口某位结构图P2口作为输入/输出口使用时和P0口一样。例如执行:

ANLP2,A

CPU执行的是“读—修改—写”的操作。内部产生的“读锁存器”操作信号使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算后,结果又送回P2口的接口锁存器并出现在引脚上。例如执行:

MOVA,P2

CPU执行的是“读引脚”的操作。将P2口锁存器的内容送入累加器A。必须注意,执行该类输入指令前必须把锁存器写入“1”。当单片机系统需要进行片外ROM扩展或进行片外RAM扩展时,P2口可用于输出高8位地址。4.P3口

P3口的字节地址为0B0H,位地址为0B0H~0B7H。图2-8所示为P3口某一位的结构图。它由一个输出锁存器、3个三态输入缓冲器和输出驱动电路组成。输出驱动电路只有一个场效应管VT1,同时内部带上拉电阻。比P1口多了一个第二功能控制部分的逻辑电路。图2-8P3口某位结构图

P3口是一个多功能端口。图中“与非”门的作用是一个开关,决定是输出锁存器Q端数据,还是输出第二功能(W)的信号。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。当P3口作为输入使用时,同P0~P2口一样,先由软件向口锁存器写1,即使D锁存器Q端保持“1”,“与非”门输出为0,场效应管截止,引脚端可作为高阻输入。当CPU执行读命令操作时,使缓冲器2上的“读引脚”信号有效,三态缓冲器2开通,于是引脚的状态经缓冲器3、缓冲器2送至CPU内部总线。当某位被用作第二功能时,该位D锁存器Q端被内部硬件自动置“1”,使“与非”门对第二功能是畅通的。由于端口不作为I/O口(不执行MOVA,P3),故“读引脚”信号无效,缓冲器2不通,第二输入功能信号经缓冲器4送入第二输入功能端。注意:P0口与其他口不同,它的输出级无上拉电阻。P1~P3口都是准双向口,作为输入时必须先对相应端口锁存器写1。2.3.2MCS-51单片机时钟电路时钟电路用于产生单片机工作所需的时钟信号。单片机是一个复杂的同步时序电路,因此必须受控于唯一的时钟信号,而时序所研究的则是指令执行时各信号之间的相互时间关系。1.单片机时钟电路单片机芯片内部有一个高增益反相放大器,用于构成振荡器,XTAL1为反相放大器的输入端,XTAL2为输出端,两端跨接石英晶体和两个电容就构成稳定的自激振荡器。电容器C1和C2通常取30pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fosc=0~24MHz。单片机的时钟电路有两种方式:内部时钟方式和外部时钟方式。如图2-9所示。图2-9单片机的时钟电路2.CPU时序的几个概念(1)节拍与状态周期节拍(用P表示)是指振荡脉冲的周期。振荡脉冲经过两分频后就是单片机的时钟信号,把时钟信号的周期定义为状态(用S表示)。即一个状态包含两个节拍。时钟周期也称为状态周期,它是计算机中最基本的时间单位。MCS-51单片机中一个时钟周期为振荡周期的2倍。(2)机器周期和指令周期一个机器周期是指CPU访问存储器一次所需要的时间,一个机器周期包括12个振荡周期,分为6个状态:S1~S6,每个状态又分为两个节拍。指令周期是完成一条指令所需要的时间。MCS-51单片机系统中有单周期指令、双周期指令和四周期指令。四周期指令只有乘、除两条指令。振荡周期=1/fosc状态周期=2/fosc机器周期=12/fosc指令周期=(1~4)机器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论