资源预览内容
第1页 / 共81页
第2页 / 共81页
第3页 / 共81页
第4页 / 共81页
第5页 / 共81页
第6页 / 共81页
第7页 / 共81页
第8页 / 共81页
第9页 / 共81页
第10页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 MCS-51单片机硬件结 构 l2.1 MCS-51的内部结构l2.2 MCS-51的内部工作原理l2.3 MCS-51的外部引脚分布l2.4 MCS-51的工作时序l2.5 MCS-51的复位电路2.1 MCS-51的内部结构MCS-51单片机除包含CPU外,还包含了一些程序存储器、数据 存储器、定时器/计数器、并行I/O接口、串行I/O接口、总线 控制逻辑和中断控制逻辑,其结构框图如下图所示: 89C5189C51单片机结构框图单片机结构框图89C51 CPU振荡器和时序 OSC64KB 总线 扩展控制器数据存储器 256B RAM/SFR216位 定时器/计数器可编程I/O程序存储器 4KBROM可编程全双工 串行口外中断内中断控制 并行口串行通信外部时钟源外部事件计数l CPU是单片机的最核心部分,它是整个单片机的控制和指挥中 心,完成所有的计算和控制任务。 l 振荡器和时序逻辑,产生CPU工作所需要的内部时钟。l 中断控制逻辑用来应付一些临时到达的突发事件。 l 并行I/O接口和串行I/O接口都是一些数据传输通道,方便CPU 从芯片外部取得待处理的对象和将处理的结果送到芯片外部 。 l 程序存储器用于存放单片机的程序。 l 数据存储器用于存放内部待处理的数据和处理后的结果。 l 定时器/计数器主要是完成对外部输入脉冲的计数或者根据内 部的时钟及定时设置,周期性的产生定时信号。 l 总线控制逻辑,用于产生外部存储空间的有关读写控制信号 。 l 内部总线内部CPU与程序存储器、数据存储器、并行I/O接口 、串行I/O接口和定时器/计数器之间都是通过内部总线联系在 一起。 MCS-51单片机的内部详细结构如下图所示:P0驱动器P2驱动器P0锁存器P2锁存器RAM地 址寄存器128B RAM4KB Flash ROMB寄存器暂存器1暂存器2ACCSP程序地址 寄存器 缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定 时 控 制指 令 寄 存 器指 令 译 码 器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSEN ALE EA RET89C5189C51单片机单片机 内部结构图内部结构图返回2.2 MCS-51的内部工作原理2.2.1 MCS-51的CPU结构及工作原理CPU是单片机的核心,它由运算器和控制器等部件组成。运算器包括:可进行8位算术和逻辑运算的单元ALU8位的暂存器1(TMP1)、暂存器2(TMP2),8位的累加器ACC8位寄存器B程序状态寄存器PSW等。(1)算术和逻辑单元ALUALU是CPU运算器的核心,它可以完成对4位、8位和16 位数据进行操作加、减、乘、除、加1、减1、BCD数十 进制调整及比较等算术运算和“与”、“或”、“异或”、“求补 ”及“循环移位”等逻辑运算操作。它是整个单片机的计算 中心。 (2)累加器ACC8位寄存器,ALU运算的结果,一般都进入累加器ACC ,当然运算的对象也可以来自于ACC。除此之外,ACC 在MCS-51内部还经常作为数据传送的中转站。同一般 微处理器一样,它是最忙碌的一个寄存器。在指令中用助 记符A来表示。 (3)寄存器B8位寄存器,在乘、除运算时,B寄存器用来存放一个操 作数,也用来存放运算后的一部分结果。若不做乘、除 运算,则可作为通用寄存器使用。(4)程序状态字寄存器PSW8位寄存器,用于指示指令执行后的状态信息,相当于一 般微处理器的标志寄存器。PSW的位结构如下表所示。D7D6D5D4D3D2D1D0CyACF0RS1 RS0OV-PCy:高位进位标志位 当ALU的算术运算过程中有进位或借位 时,Cy=1;否则,Cy=0。同时,该位还可以用作位累加器,这 时一般只用“C”表示。 AC:辅助进位标志 当ALU的算术运算过程中低4位向高4位有 进位或借位时,AC=1;否则,AC=0。该位常用于BCD码的调 整。 F0:用户标志位 RS1、RS0:选择工作寄存器组位 用于选择内部数据存储器区 内4组工作寄存器中的某一组。具体选择情况见寄存器介绍部分 。 OV:溢出标志位 运算结果超出机器所能表示的范围时称溢出。溢 出是指有符号数运算时,数值超过了+127-128。 OV=Cy7Cy6,补 码运算产生溢出OV=1,否则OV=0 P:奇偶校验标志位 根据累加器ACC中1的个数由硬件置位或 清除,当累加器ACC中有奇数个1时P=1;否则,P=0。 PSW.1:保留位 无定义。【例】:分析执行下列指令序列后,A、C、AC、OV、P 的内容是什么? MOV A,#79H ADD A,#58H 该指令功能是将79H+58HA。计算过程如下: (79H) 01111001 +(58H) 01011000 (D1H) 11010001 A=D1H最高位无进位,C=0;低半字节有进位,AC=1 ;OV=1,发生溢出;A中1的个数为偶数,P=0。 (5)临时寄存器TMP1和TMP2 这两个寄存器专门供 ALU存放临时数据,用户不可以直接访问。(6)程序控制逻辑 包括程序计数器PC、指令寄存器IR 、指令译码器ID、振荡器及定时电路等。 程序计数器PC 16位字节地址计数器,PC中的内容是 将要执行的下一条指令的地址。改变PC的内容就可改变 程序执行的方向。 指令寄存器IR及指令译码器ID CPU把由PC中的内容 决定的Flash或ROM地址中的指令代码取出后,经指令 寄存器IR送至指令译码器ID进行译码,译码后产生一定 序列的控制信号,以执行指令所规定的操作(例如,把 片内工作寄存器中的数据传送到外部I/0口)。2.2.2 MCS-51的存储空间及应用配置89C51存储器程序存储器ROM数据存储器RAM片内程序存储器片外程序存储器片内数据存储器片外数据存储器2.2.2 MCS-51的存储空间及应用配置MCS-51系列单片机的存储器在物理结构上分为程序存 储器空间和数据存储器空间。 (哈佛结构) 程序存储器空间采用片内、片外统一编址的方式,共有 64KB,地址范围为 0000HFFFFH (用16位地址表示) 。 数据存储器:片内有256字节数据存储器地址空间,地址范 围为 00HFFH (用8位地址表示)。除了片内数据存储器空间,MCS-51还有64KB的片外数 据存储器空间,其地址范围也是 0000HFFFFH (用16 位地址表示)。片内、片外数据存储器空间的访问通过不 同的数据访问指令来区分开来。片外数据存储器空间和 片外程序存储器空间,采用的外部地址总线和数据总线 是相同的,不同的是控制总线不一样。 MCS-51系列单片机的存储器分配如下图所示: (1)程序存储器空间配置程序存储器空间的片内、片外选择通过单片机的引脚EA来实现:当EA接低电平时(EA0),程序存储器空间的前 4KB(MCS-52是8KB)由片外实现当EA接高电平时(EA1),程序存储器空间的前 4KB(MCS-52是8KB)由片内实现。对于8031/80C31/8032/80C32这些片内没有ROM的 单片机,EA引脚必须接低电平。对于具有片内FLASH或者ROM的这些单片机,如果使用片内存储器,引脚必须接高电平。(2)片内数据存储器空间配置MCS-51系列单片机片内最多可以配置256字节的数据存 储器空间,地址从00HFFH。片内数据存储器分为两部分: 低128字节(00H7FH)是真正的RAM区高128字节(80HFFH)为特殊功能寄存器(SFR)区(MCS-52也有高128字节的数据存储单元,它们和特殊功能寄存器重叠的,区分这些重叠的高128字节存储单元 的方法是使用不同的寻址方式,SFR使用直接寻址而数 据存储单元使用间接寻址)。MCS-51系列单片机的SFR都是采用直接寻址方式进行访问的。特殊功能寄存器(SFR)在MCS-51系列单片机片内高128 字节RAM中,有21个特殊功能寄 存器(SFR),它们离散地分布在 80HFFH的RAM空间中。这些 特殊功能寄存器提供了CPU以及 其它功能部件(如定时器计数器 、串行口、并行口等)所需要的 控制、状态和缓冲寄存器。由于 这些寄存器一般都具有特殊的功 能,因此称为特殊功能寄存器。 这些寄存器的分布如图所示。 栈指针SP(81H)堆栈:在MCS-51系列单片机片内RAM中,常常要指定 一个专门的区域来存放某些特别的数据,它遵循顺序存 取和后进先出的原则,这个RAM区叫做堆栈。堆栈中的数 据一般是某些事件发生时的CPU状态或者寄存器的值。比如说,当中断到来时,为了防止中断服务程序中 的操作对某些寄存器(如PSW、ACC等)形成破坏,需要 将这个寄存器保护起来,我们就可以把这些需要保护的 寄存器的值压入堆栈,等服务程序执行完毕后,再把这 些寄存器的值恢复出来,这个过程我们叫做现场的保护 与恢复。 特殊功能寄存器堆栈指针SP地址为81H,SP的功能就 是用来指向堆栈的栈顶的.压栈(执行PUSH指令)时: SP自动加1,然后把被压的数据放到SP指向的单元。SP仍然指向栈顶,如左图所 示。弹栈(执行POP指令)时:先把SP指向的单元弹出,然后把SP减1,如右图所示。 数据指针DPTR(83H,82H)DPTR是一个16位的特殊功能寄存器.高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便对64 KB片外RAM作间接寻址,这在第三章有关寻址方式的章节中将再详细介绍。/端口P0P3(80H,90H,A0H,B0H)P0P3为4个8位特殊功能寄存器,分别是4个并行/端口的锁存器。它们都有字节地址,每一个口锁存器还有位地址,每一条/线均可独立用作输入或输出。用作输出时,可以锁存数据;用作输入时,数据可以缓冲.详细情况我们稍后介绍。 中断允许寄存器IE(A8H)、中断优先级寄存器IP(B8H)IE和IP都是8位特殊功能寄存器。IE用来对中断系统所有中断以及某个中断源进行开放或屏蔽;80C51单片机有两个中断优先级(即高优先级和低优先级),可实现两级中断服务嵌套。每个中断源的中断优先级是由中断优先级寄存器IP中的相应位的状态来决定的。关于这两个特殊功能寄存器的位结构和详细工作原理将在第四章有关章节中介绍。 定时/计数器工作方式寄存器TMOD(89H)定时/计数器控制寄存器TCON(88H)8位特殊功能寄存器TMOD和TCON都是与定时/计数器有关的。TMOD用来为定时/计数器T0、T1选定工作方式,TCON用来控制定时/计数器T0、T1的运行,并反映T0、T1的运行状态。 定时/计数器寄存器TH1(8DH)、TH0(8CH)、TL1(8BH)、TH0(8AH)8位特殊功能寄存器TH1和TL1构成定时/计数器T1的16位计数器,TH0和TL0构成定时/计数器T0的16位计数器。每来一个定时或计数脉冲,这个16位计数器将加1,直至计满产生溢出。与定时/计数器有关的TMOD、TCON、TH1、TH0、TL1、TH0等特殊功能寄存器的位结构和详细工作原理将在第五章有关章节中介绍。 串行口控制寄存器SCON(98H)、串行口发送、接收 缓冲寄存器SBUF(99H)8位特殊功能寄存器SCON用以实现设定串行口的工作 方式、控制接收/发送以及设置串行口的工作状态标志等 功能。MCS-51系列单片机片内有两个物理上独立的发送、接收串行口缓冲器SBUF,它们占用同一地址99H,对它们 的操作可以实现通过串行口接收或发送一定的数据。由 于读写方向是不一样的,所以读操作对应的是接收缓冲 器,写操作对应的是发送缓冲器,因此,虽然物理上是 两个缓冲寄存器,但占用相同的地址
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号