第二章51结构与时序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章MCS—51单片机结构与时序12.1MCS—51系列单片机内部结构2.1.1MCS-51单片机内部结构MCS-51单片机的系统结构框图如图2.1所示。251单片机结构框图MCS-51CPU振荡器和时序OSC64KB总线扩展控制器数据存储器128BRAM/SFR2×16位定时器/计数器可编程I/O程序存储器4KBROM可编程全双工串行口外中断内中断控制并行口串行通信外部时钟源外部事件计数返回由图2.1可以看出,单片机内部主要包含下列几个部件:u一个8位CPU;u一个时钟电路;u4Kbyte程序存储器;u128byte数据存储器;u两个16位定时/计数器;u64Kbyte扩展总线控制电路;u四个8-bit并行I/O端口;u一个可编程串行接口;五个中断源,其中包括两个优先级嵌套中断4二、结构组成(一)、中央处理单元(CPU)(二)、存储器(三)、I/O接口返回5(一)、中央处理单元(CPU)•1.运算器返回•2.控制器61.运算器(1)8位的ALU(算术逻辑运算单元):返回(2)8位累加器ACC(A):(3)8位程序状态寄存器PSW:(4)8位寄存器B:(5)布尔处理器:(6)2个8位暂存器:71.运算器可对4位、8位、16位数据进行操作。能做加减乘除、加1、减1、BCD数十进制调整和比较等算术运算和“与”、‘或’、‘异或’、‘求补’机循环移位等逻辑操作返回(1)8位的ALU:81.运算器•(2)8位累加器ACC(A):它经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。经常作为数据传送的中转站,是最忙碌的一个寄存器,指令中用A来表示。返回91.运算器指示指令执行后的状态信息,相当于一般的微处理器的标志寄存器。PSW中各位状态供程序查询和判别用。(3)8位程序状态寄存器PSW:返回位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV未用P10•CY(PSW.7):进位标志位。在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向前有进位(或借位),则CY位由硬件自动置1;如果运算结果最高位无进位(或借位),则CY清0。CY也是89C51在进行位操作(布尔操作)时的位累加器,在指令中用C代替CY。•AC(PSW.6):半进位标志位,也称辅助进位标志。当执行加法(或减法)操作时,如果运算结果(和或差)的低半字节向高半字节有半进位(或借位),则AC位将被硬件自动置1;否则AC被自动清0。•F0(PSW.5):用户标志位。用户可以根据自己的需要对F0位赋予一定的含义,由用户置位或复位,以作为软件标志。11•RS0和RS1(PSW.3和PSW.4):工作寄存器组选择控制位。这两位的值可决定选择哪一组工作寄存器为当前工作寄存器组。通过用户用软件改变RS1和RS0值的组合,以切换当前选用的工作寄存器组。其组合关系如表2-7所列。•89C51上电复位后,RS1=RS0=0,CPU自动选择第0组为当前工作寄存器组。•根据需要,可利用传送指令对PSW整字节操作或用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组。这样的设置为程序中保护现场提供了方便。12•OV(PSW.2):溢出标志位。当进行补码运算时,如有溢出,即当运算结果超出-128~+127的范围时,OV位由硬件自动置1;无溢出时,OV=0。•PSW.1:为保留位。89C51未用,89C52为F1用户标志位。•P(PSW.0):奇偶校验标志位。每条指令执行完后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个1,则置P=1;否则P=0。常用于校验串行通信中的数据传送是否出错。131.运算器•(4)8位寄存器B:在乘除运算时,用来存放一个操作数也用来存放运算后的一部分结果;如不做乘除运算时,作为通用寄存器。141.运算器•(5)布尔处理器:专门用于处理位操作的,以PSW中的CY(指令中用C代替CY)为其累加器。返回151.运算器•(6)2个8位暂存器:ALU的两个入口处。返回162.控制器(1)程序计数器PC(16位)(2)指令寄存器IR及指令译码器ID(3)振荡器和定时电路返回(4)控制器电路还包括数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。17(1)程序计数器PC(16位)•由两个8位计数器PCH、PCL组成。•PC是程序的字节地址计数器,PC内容为将要执行的指令地址。•改变PC内容,改变执行的流向。•PC可对64KB的ROM直接寻址返回18(2)指令寄存器IR及指令译码器ID•由PC中的内容指定ROM地址,取出来的指令经IR送至ID,由ID对指令译码产生一定序列的控制信号,以执行指令所规定的操作。返回19(3)振荡器和定时电路•89C51单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz~12MHz。该信号作为89C51工作的基本节拍即时间的最小单位。返回20堆栈指针SP(StackPointor)符合“先入后出”或“后入先出”规则的存储区。SP的值始终指向栈顶。操作用PUSH和POP如PUSHACC;SP先加1后存数POPACC;SP先取数后减121数据指针DPTR数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。DPTR在访问外部数据存储器时既可用来存放16位地址,也可作地址指针使用。如MOVX@DPTR,A表示A的值送入外部DPTR所对应的RAM地址中22(二)、存储器1、程序存储器(ROM)2、数据存储器(RAM)返回233.MCS-51单片机系列MCS-51可分为两个子系列和4种类型,如表1-1所示。按资源的配置数量,MCS-51系列分为51和52两个子系列,其中51子系列是基本型,而52子系列属于增强型。资源配置子系列片内ROM的形式片内ROM容量片内RAM容量定时器与计数器中断源无ROMEPROME2PROM8×51系列80318051875189514KB128B2×1658×C51系列80C3180C5187C5189C514KB128B2×1658×52系列80328052875289528KB256B3×1668×C252系列80C23280C25287C25289C2528KB256B3×167MCS-51系列单片机分类241、程序存储器(片内ROM)地址从0000H开始。用于存放程序和表格常数。•在8051中,其片内有4K字节的ROM存储单元,地址为0000H~0FFFH。8751有4K字节的EPROM,而8052和8752则有8K字节的片内存储器。8031和8032无片内程序存储器,所以片内程序存储器的有无是区分芯片的主要标志。•在程序存储器中,以下6个单元具有特殊含义:返回250000H:单片机复位后,PC=0000H,程序从0000H开始执行指令。0003H:外部中断0入口地址。000BH:定时器0中断入口地址。0013H:外部中断1入口地址。001BH:定时器1中断入口地址。0023H:串行口中断入口地址。002BH:定时器2中断入口地址。在系统中断相应之后,将自动转各中断入口地址处执行程序,而中断服务程序一般无法存放于几个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。26存储器的结构图272、数据存储器(片内RAM)地址为00H~FFH。用于存放运算的中间结果、数据暂存以及数据缓冲等。返回281.存储器地址分配(片内ROM、片外RAM、片内RAM)外部FFFF1000内部(=1)外部(=0)0FFF00000FFF0000专用寄存器内部RAMFF807F00FFFF0000程序存储器内部数据存储器外部数据存储器图2.3MCS-51的存储器结构如2.1.2存储器结构292.片内RAM用户区位寻址区(位地址00~7F)工作寄存器区3(R0~R7)工作寄存器区2(R0~R7)工作寄存器区1(R0~R7)工作寄存器区0(R0~R7)7FH30H2FH20H1FH00H.........图2.4MCS-51片内RAM的空间分配30存储器的结构图31•低128单元是单片机的真正RAM存储器。1、内部数据存储器低128单元51子系列32•分为三个区域:•A、寄存器区:•4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。每组8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运算数据和中间结果。字节地址为00H~1FH。•B、位寻址区:•字节地址为20H~2FH,既可作RAM,也可位操作。共有16个RAM单元,共128位,位地址为00H~7FH。•C、用户RAM区:•32个单元,地址为30H~7FH,在一般应用中常作堆栈区。用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作。33图2-8低128字节RAM区图2-9高128字节RAM区(SFR区,特殊功能寄存器区)3435在工作寄存器后的16个数据单元(20H~2FH),它们既可以作为一般的数据单元使用,也可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H~7FH。位地址的表示方法是采用字节地址和位数相结合的方法。如位地址00H可以表示为20H.0(见表2-4)剩余的80个数据单元即30H~7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。36图2-8低128字节RAM区图2-9高128字节RAM区(SFR区,特殊功能寄存器区)37(2).内部数据存储器高128单元SFR内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR)它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80H~FFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。8952的SFR见表2-338图2-8低128字节RAM区图2-9高128字节RAM区(SFR区,特殊功能寄存器区)3940•堆栈和数据缓冲•实际应用中,往往需要一个先进后出的RAM缓冲器用于保护CPU现场,这种后进先出的缓冲器称为堆栈。•51的堆栈原则上可设在内部RAM(0-7F或0-FF)的任意区域。但由于00-2FH区域的特殊功能,堆栈一般设在30H-7FH或30H-FFH范围内。•内部RAM中除了作为工作寄存器、位标志、堆栈区以外的单元都可以作为数据缓冲器使用。41(1)累加器ACC(E0H)•累加器ACC是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。42(2)寄存器B(F0H)•在乘、除指令中,用到了8位寄存器B。乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A,B中存放余数。•在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。43(3)程序状态寄存器PSW(D0H)•PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如表2-6所列。•PSW除有确定的字节地址(D0H)外,每一位均有位地址.44(4)栈指针SP(81H)•堆栈指针SP为8位特殊功能寄存器,SP的内容可指向89C51片内00H~7FHRAM的任何单元。系统复位后,SP初始化为07H,即指向07H的RAM单元。45SP的操作规则•堆栈指针SP(8位):•MCS—51系列的堆栈是按“先进后出”原则存取数据的存储区。•MCS—51堆栈设在片内RAM区。•数据入栈时:先SP自动加1,后写入数据,SP始终指

1 / 76
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功