第二章:MCS-5l系列单片机的结构和原理主讲喻萍2011年3月内容§2.1内部组成§2.2存储器§2.3并行输入/输出端口结构§2.4引脚、时钟电路与CPU时序§2.5复位电路§2.1MCS-5l系列单片机的内部组成MCS-51系列单片机简介MCS-51系列单片机是美国Intel公司的高性能8位单片微机。按其存储器配置状态可分3种:片内ROM型片内EPROM型外接EPROM型(无ROM)按其功能可分8种类型:1.基本型该类型的典型产品是8051特性:8位CPU;片内RAM有128字节;片内ROM有4K字节;21个特殊功能寄存器;4个8位并行I/O口,一个全双工串行口;2个16位定时器/计数器;5个中断源、2个中断优先级;一个片内时钟振荡器和时钟电路。基本型的产品还有8031、8051、87518031AH、8051AH、8751H、8751BH等8051AH与8051不同点在于采用了HMOS工艺制造2.增大内部存储器的基本型内部RAM和ROM容量比基本型单片机增大一倍。如8052AH、8032AH、8752BH。3.低功耗基本型这类产品型号中带有“C”字,采用CHMOS工艺,其特点为低功耗。产品有80C51BH、80C31BH、87C51。4.高级语言型如8052AH-BASIC芯片内固化有MCSBASIC52解释程序。5.可编程计数阵列(PCA)型该类产品具有两个特点:一个是有5个比较/捕捉模块;另一个是有一个增强的多机通信接口。该类产品有83C51FA、80C51FA、87C51FA、83C51FB等。6.A/D型该系列单片机带有8路8位A/D;半双工同步串行接口;拥有16位监视定时器;扩展了A/D中断和串行口中断,使中断源达到7个;具有振荡器失效检测功能。该类产品有83C51GA、80C51GA、87C51GA等。7.DMA型。实现高速数据传送该产品分为两类。一类产品是DMA、GSC型,产品有83C152JA、80C152JA、80C152B等。另一类产品是DMA、FIFO型,产品有83C452、80C452、87C452P。8.多并行口型此类单片机是在80C51基础上,新增加和P1口相同8位准双向P4口和P5口,还增加在内部具有上拉电阻的8位双向口P6口。该类产品有83C451、80C451。51与52子系列:51子系列:主要产品8031、8051、8751、89C5152子系列:主要产品8032、8052、8752、89C52无ROMEPROMEEPROM51与52的区别在于:51子系列RAM有128B;ROM有4KB;2个16位定时器/计数器;52子系列RAM有256B;ROM有8KB;3个16位定时器/计数器;8051是最早最典型产品,其它均以此为核心再增加部分功能部件构成。因此具有相同的系统结构。以8051为例介绍系统结构、工作原理、资源特性和使用方法。图2-18051内部结构原理框图8位CPU1.2~12MHzRAMROM片外存储器寻址能力64KB4个8位并行口2个16位计数器5个中断源1个串行口§2.2存储器MCS-51单片机的存储器结构与常规的微型计算机的配置不同,它把程序存储器和数据存储器分开,各有自己的寻址系统、控制信号和功能。程序存储器:存放程序和始终保留的常数。数据存储器:存放程序运行中所需的常数或变量。§2.2存储器从物理地址空间看,MCS-51单片机有四个存储器地址空间:片内程序存储器:4KB片外程序存储器:0~64KB片内数据存储器:128B片外数据存储器:0~64KB从逻辑地址空间看,MCS-51单片机有三个存储器地址空间:片内片外统一的程序存储器:64KB片内数据存储器:128B片外数据存储器:0~64KB图2-38051存储器地址空间图4KB60KB128B64KB如何区别三个不同的逻辑空间呢?不同的指令!一、程序存储器ROM1.程序存储器可寻址的地址空间为64K字节。以16位的程序计数器PC作地址指针。2.4KB片内ROM和片外ROM是统一编址的。3.片内ROM和片外ROM的选择由EA引脚上的电平控制EA=1:PC=0~4KB,CPU访问内部ROM(4KB)PC=4KB~64KB,CPU访问外部ROM(60KB)EA=0:内部ROM被忽略,CPU总是从外ROM读,外ROM空间可达64KB(0~64KB)先内后外一、程序存储器ROM4.PSEN:片外程序存储器选通信号5.几个特殊单元:ROM中有几个特殊单元0000H~0002H:MCS-51复位后,PC=0000H,因此系统从0000H单元开始读取指令,并执行程序,它是系统执行程序的起始地址。常在此放一条跳转指令。0003H~002AH:5个中断源的中断服务程序的入口地址(5×8=40)。二、片内数据存储器RAM1.RAM从物理上或逻辑上都分为两个地址空间:内部数据存储器128B:地址为00~7FH,用MOV指令访问;外部数据存储器64KB:地址为0000~FFFFH,用MOVX指令访问。因此,二者可以实现地址重叠。2.内部数据存储器的使用最为灵活,它被分成物理上独立的、且性质不同的三个地址区间。RAM片内数据存储器32个单元16个单元80个单元21个专用寄存器共128个单元工作寄存器区(00H~1FH)工作寄存器与RAM地址对照表每组都有8个寄存器,各组都以R0~R7作寄存器单元编号任一时刻只能选用其中一组,正在使用的那组称当前寄存器组未被用作工作寄存器组的RAM单元可作为一般RAM使用当前寄存器组由程序状态字PSW(专用功能寄存器)中的D4和D3位(即RS1和RS0)来决定工作寄存器区(00H~1FH)PSW的状态与工作寄存器组的对应关系如表2-4位寻址区(20H~2FH)既可作为一般RAM单元使用,进行字节操作;也可对单元中的每一位进行位操作,因此称之为位寻址区16个字节共有128位(16×8)位地址区间是00H~7FH每位都可视作“软件触发器”由程序直接进行位处理。通常把各种程序状态标志、位控制变量设在位寻址区内位寻址区的位地址分配表字节地址20H~2FH位地址00H~7FH用户RAM区(30H~7FH)80个单元堆栈区不仅是(30H~7FH)区间,实际上任何一个字节单元都可以作为用户缓冲器使用。堆栈区是一个“后进先出”的数据缓冲区,由堆栈指针SP来指出栈顶地址。堆栈区原则上可设置在片内RAM的任何位置。但由于(00H~1FH)、(20H~2FH)已有上面用途,堆栈区一般设在用户缓冲区内。三、专用功能寄存器(特殊功能寄存器)SFRMCS-51单片机内各种控制寄存器和状态寄存器都是以专用功能寄存器(或称特殊功能寄存器)的形式出现的,它们的地址分布在80H~FFH区间。每个寄存器都有相应的地址,可以象访问内部RAM一样访问。MCS-51共有21个寄存器,只占80H~FFH中的一部分,PC除外。介绍几个常用SFR1、累加器ACC累加器是一个最常用的专用寄存器。大多数单操作数指令的操作数取自累加器,很多双操作数指令的一个操作数也取自累加器2、B寄存器在乘除指令中用到了B寄存器,在其它指令中,B寄存器可以用作计数器或一般RAM单元。3、程序状态字PSWCYACF0RS1RS0OV-PPSW各位定义如下⑴.CY(PSW.7)进位/借位标志在执行某些算术和逻辑指令时,它可以被硬件或软件置位或清位。在布尔处理机中它被认为是位累加器,其重要性相当于常规中央处理器中的累加器A。⑵.AC(PSW.6)辅助进位标志当进行加法或减法操作而产生有低4位数(一个BCD码)向高4位数进位或借位时,AC将被硬件置位,否则被清零。AC常被用于十进制调整。⑶.F0(PSW.5)软件标志可供用户使用的一个状态标志,可以用软件置位或清位,也可以用软件测试它,以便控制程序的流向。PSW各位定义如下⑷.RS1,RS0(PSW.4,PSW.3)工作寄存器区选择位。可用软件置位或清零,以便确定当前工作寄存器组。RS1,RS0与工作寄存器组的对应关系如下表:PSW各位定义如下⑸.OV(PSW.2)溢出标志当执行算术指令时,由硬件置位或清零,以指示溢出状态。①当执行加法或减法指令时有:OV=Cs㈩Cp加法:用Cs和Cp表示有进位减法:用Cs和Cp表示有借位②无符号数乘法或除法指令:执行结果也会影响OV标志,详见MUL和DIV指令的说明。⑹.P(PSW.0)奇偶标志由硬件置位或清零,以表示累加器A中含“1”的个数的奇偶性。奇偶标志在串行通信中的数据传输有重要意义奇数:P=1偶数:P=04、堆栈指针SP何为堆栈:堆栈是只允许在其一端进行数据插入和删除操作的线性表,不是按字节任意访问的,是一个特殊的存储区。它的特点是按“先进后出,后进先出”的原则存取数据,这里的“进”与“出”是指进栈与出栈操作。堆栈功能:为子程序调用和中断操作而设立,主要功能是暂时存放数据和断点地址--保护现场堆栈有栈底和栈顶之分,栈底由栈底地址标识且固定不变,它决定了堆栈在RAM中的物理位置。第一个进栈的数据X1所在的存储单元就在栈底之上,然后逐次进栈。最后进栈的数据X4所在的存储单元称为栈顶。随着存放数据的增减,栈顶是变化的。35H34HX433HX332HX231HX130H栈顶(先取)栈底最后取栈底、栈顶何为堆栈指针SP:为此专门设了一个堆栈指针SP,用于存放栈顶地址。每存入(或取出)1个字节数据,SP就自动加1(或减1)。SP始终指向新的栈顶。有专门的堆栈操作指令PUSH、POP把数据存入或取出堆栈。SP是一个8位专用寄存器,它的内容是栈顶在片内RAM中的位置。系统复位后,SP初始化为07H,常把SP移到别的单元,一般设在30H以后的范围为宜。SP的初值越小,堆栈深度就越深。35H34HX433HX332HX231HX130H栈底栈顶小结:堆栈是一个“后进先出”的内部RAM区,在数据进出堆栈时,SP的值将自动增减,但始终指向最后进入或即将弹出数据的单元(即栈顶)SP初值SP当前值数据进入堆栈称“进栈(压栈)”数据从堆栈取出称“出栈(弹栈)”压栈:先SP增1,然后装入数据出栈:先取出数据,然后SP减1。5、数据指针DPTRDPTR是一个16位专用寄存器。既可作16位寄存器处理,又可分开作两个8位寄存器处理。分别称为DPH(高8位)DPL(低8位)DPTR是唯一的可寻址16位寄存器,主要用来存放16位地址,可访问64K片外RAM。四、位存储器为配合位操作指令,方便用户编程,专门设置了可位寻址的单元(位存储器)两部分位地址空间构成了位存储器⑴内部RAM中20H~2FH共16个单元的128位,对应的位地址为00H~7FH⑵SFR中地址为8的倍数的寄存器,共11个,对应的位地址为80H~FFH它们可以按位操作,如:置1、置0、取反等。也可按字节操作。专用寄存器字节地址和位地址表五、外部数据存储器MCS-51具有扩展64K字节外部数据存储器和I/O口的能力。外部数据存储器用MOVX指令来访问,单片机在执行MOVX指令时,将发出RD或WR信号来选通外部数据存储器。第八章介绍总结§2.2存储器一、程序存储器二、片内数据存储器(分三个区)三、专用寄存器(特殊功能寄存器)四、位存储器五、外部数据存储器片内§2.3并行输入/输出端口结构4个双向并行的8位I/O口P0~P3P1、P2、P3口为准双向口(作为输入线时,口锁存器必须先写“1”,口线被拉成高电平,故称为准双向口)。P0可驱动8个TTL电路;P1、P2、P3口其负载能力为4个TTL电路。P0~P3已被归入专用寄存器之列,且具有字节寻址和位寻址的功能端口(口)是一个综合概念,口是一个集数据输入缓冲、数据输出缓冲、驱动及锁存等多项功能为一体的I/O电路。P0~P3四个口的功能有所不同,故它们的电路结构也不完全一样,但基本工作原理相似。相同部分和不同部分不同部分:因为功能的差别而附加的输出控制电路不同。其中P1口的位结构是最简单的,也是最基本的。