第2章MCS-51单片机硬件结构主要内容1.MCS-51单片机组成(结构、引脚功能)2.MCS-51单片机存储器3.MCS-51单片机并行I/O端口4.MCS-51单片机的时钟与定时电路5.MCS-51单片机的系统复位重点理解1.MCS-51系列单片机存储器结构特点2.单片机特殊功能寄存器的作用3.不同场合下单片机引脚的复用功能4.单片机的位处理功能及其作用2.1MCS-51单片机的硬件结构•单片机的基本组成有三个部分:CPU、存储器和I/O口。MCS-51单片机硬件图2-1•8位CPU(算术逻辑单元ALU、控制器)•存储器(程序存储器ROM、数据存储器RAM)•定时器/计数器•并行I/O口•串行I/O口•振荡器和时钟电路2.1MCS-51单片机的硬件结构CPU运算部件控制部件BRAMP0口P2口ROM(EPROM)串行口C/T中断系统SFRP1口8P3口888XTAL1XTAL2PSENALEEARESETVccVss各功能部件,通过片内单一总线连接起来1.微处理器2.数据存储器3.程序存储器4.I/O口5.串行口6.定时/计数器7.中断系统8.特殊功能寄存器控制方式:SFR对各功能部件集中控制片内总线9.时钟电路部分各功能部件:1.CPU(微处理器)单片机的核心,主要完成运算和控制功能,又增设了面向控制的处理功能,增强了实时性。功能:读入、分析每条指令,根据指令要求,控制部件完成特定的功能。CPU组成2.数据存储器(RAM)片内为128个字节(52子系列的为256个字节)3.程序存储器(ROM/EPROM)8031:无此部件;8051:4K字节ROM;8751:4K字节EPROM;89C51/89C52/89C55:4K/8K/20K字节闪存。程序存储器的形式4.数据存储器数据存储器用来存储程序在运行期间的工作变量和数据。一般在单片机内部设置一定容量的RAM(64B—384B或更大)可加快单片机运行的速度,还可以使存储器的功耗下降很多常把寄存器(工作寄存器、特殊功能寄存器、堆栈等)逻辑上划分在片内RAM,可将单片机内部RAM看成寄存器堆,提高单片机运行速度。4.P1口、P2口、P3口、P0口:为4个并行8位I/O口。提供功能强、使用灵活的输入输出引脚,用于检测和控制。•有些I/O引脚具有多种功能,作为数据总线的数据线,地址总线的地址线,控制总线的控制线•I/O引脚的驱动能力也逐渐增大,甚至可以直接驱动外扩的LED5.串行口1个全双工的异步串行口实现与某些终端设备进行串行通信,或者和一些特殊功能的器件相连的能力,甚至多个单片机相连构成多机系统。6.定时器/计数器用于精确的定时或者对外部事件进行计数。7.中断系统5个中断源,2个中断优先级8.特殊功能寄存器(SFR)共有21个,是一个具有特殊功能的RAM区。9.时钟电路单片机的工作是在时钟信号的驱动下,按照严格的时序,有规律的一个节拍一个节拍地执行各种操作。单片机内部设有定时电路只需外接振荡元件即可工作,外接振荡元件一般选用晶体振荡器,或RC振荡器,也可用外部时钟源。有的单片机内部有振荡元件。2.2MCS-51的引脚40只引脚双列直插封装(DIP)44只引脚方形封装方式(4只无用)引脚逻辑图•8051单片机为40条引脚双列直插式封装•引脚可分为三个部分X1X2EAPSENALERSTVCCGND8051P0P1P2P3P00~P07P10~P17P20~P27P30~P37控制引脚并行I/O口引脚电源及时钟引脚(1)电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2。(2)控制引脚:PSEN*、EA*、ALE、RESET(3)I/O口引脚:P0、P1、P2、P3,4个8位I/O口2.2.1电源及时钟引脚1.电源引脚(1)Vcc(40脚):+5V电源;(2)Vss(20脚):接地。2.时钟引脚(1)XTAL1(19脚):采用外接晶体振荡器时,此引脚应接地。(2)XTAL2(18脚):接外部晶体的另一端。2.2.2控制引脚(1)RST/VPD(9脚):复位与备用电源振荡器工作时,在RST上作用两个机器周期以上的高电平可以将单片机复位(2)ALE/PROG*(30脚):第一功能ALE:地址锁存允许还有就是在不访问外部存储器时ALE以1/6振荡频率固定速率输出,还可以做对外输出时钟用。通过此脚可初步判断单片机的好坏。第二功能PROG*:编程脉冲输入端。以89C51为例,其内部有EPROM,要写入程序时,需要提供专门的编程脉冲和编程电源。编程脉冲:30脚,(ALE/PROG*)编程电压(+12V或者+5V):31脚,(EA*/VPP)(3)PSEN*(29脚):读外部程序存储器的选通信号。可以驱动8个LS型TTL负载。从外部程序存储器取指期间,在每个机器周期当PSEN*有效时,程序存储器的内容被送到P0口(数据总线)(4)EA*/VPP(31脚):EA*为内外程序存储器选择控制EA*=1,访问片内程序存储器,EA*=0,单片机则只访问外部程序存储器。第二功能VPP,用于施加编程电压。使用80C31时该脚必须接地,使用8751编程该脚接21V电压。2.2.3I/O口引脚(1)P0口:双向8位三态I/O口,地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。(2)P1口:8位准双向I/O口,可驱动4个LS型TTL负载。(3)P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。(4)P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。注意:准双向口与双向三态口的差别。当3个准双向I/O口作输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态。引脚转义引脚功能说明P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2/INT0外部中断0请求P3.3/INT1外部中断1请求P3.4T0计数器0外部输入P3.5T1计数器1外部输入P3.6/WR外部数据存储器写P3.7/RD外部数据存储器读2.3MCS-51的CPU是单片机的核心部件,由运算器和控制器所构成2.3.1运算器对操作数进行算术、逻辑运算和位操作。•对传送到CPU的数据进行加减乘除、比较、BCD码校正等算术运算•与、或、异或等逻辑操作;移位、置位、清零、取反等操作•位置1、位清零、位与、位或等位操作1.算术逻辑运算单元ALU•ALU有两个输入(1)通过暂存器1的输入:输入数据来自寄存器、直接寻址单元(含I/O口)、内部RAM、寄存器B或立即数(2)通过暂存器2或累加器的输入:通过暂存器2输入的指令:ANLdirect,#dataORLdirect,#dataXRLdirect,#data其它运算其输入之一大多数通过累加器。•ALU有两个输出(1)数据经过运算后,结果又通过内部总线送回到累加器A(2)数据运算后产生的标志位送至PSW2.累加器A8位的,使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。因为A用的最频繁,容易产生堵塞现象,这是累加器结构特有的瓶颈现象。3.B寄存器•(1)B是专门为执行乘除运算而设置的8位寄存器。•(2)不在执行乘除指令的情况下,可以把寄存器B当作一个普通的寄存器使用。4.程序状态字寄存器PSW(1)Cy(PSW.7)进位标志位功能一:存放算术运算的进位标志,最高位出现进位或借位功能二:在位操作中作位累加器使用(2)Ac(PSW.6)辅助进位标志位加减法操作时产生的由低4位向高4位的进位或借位,AC被置1.举例在十进制调整指令DA中要用到AC状态。(3)F0(PSW.5)用户标志位开机时该位为0。由用户使用的一个状态标志位。通过位操作指令置1或清零。相当于一个软件开关。(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。工作寄存器区的选择18~1FH3区1110~17H2区1008~0FH1区0100~07H0区00R0~R7地址寄存器组RS1RS0(5)OV(PSW.2)溢出标志位执行指令时由硬件置1或清0.指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂。加减运算:超出累加器A的范围-128~127OV=1乘法运算:乘积超过255除法运算:除数为0最高位和次高位只有一个借(进)位时,就溢出。(6)PSW.1位:保留位,未用(7)P(PSW.0)奇偶标志位P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数如(A)=01000001P=0在串行通信中常以传送奇偶校验位来检验传输数据的可靠性。2.3.2控制器控制器是识别指令,并根据指令性质控制单片机各组成部件进行工作的部件。其功能是控制指令的读出、译码和执行,对指令的执行过程进行定时控制,并根据执行结构决定是否分支转移。1.程序计数器PC(ProgramCounter)一个独立的计数器,不属于内部的特殊功能计数器存放下一条要执行的指令在程序存储器中的地址。基本工作方式:(1)程序计数器自动加1(2)执行有条件或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。(3)执行子程序调用或中断调用时完成下列操作:①PC的当前值保护②将子程序入口地址或中断向量的地址送入PC。PC变化的轨迹决定程序的流程。2.数据指针DPTR16位特殊功能寄存器作为片外数据存储器或I/O寻址用的地址寄存器。既可以作为一个16位数据存储器处理也可以作为两个8位数据存储器处理。高8位用DPH表示,低8位用DPL表示。•访问片外数据存储器或I/O的指令为:MOVXA,@DPTR读MOVX@DPTR,A写•作为访问程序存储器时的基址寄存器。寻址程序存储器中的表格、常数等单元,而不是寻址指令•MOVCA,@A+DPTRPC与DPTR比较•都是与地址有关的16位地址寄存器。PC与程序存储器的地址有关,DPTR与数据存储器的地址有关,作为地址寄存器使用时两者都是通过P0和P2口输出的。PC的输出与ALE和/PSEN有关,DPTR的输出与ALE、/WR、/RD有关。•PC只能作16位寄存器对待,是不能访问的DPTR可以作16位寄存器,也可以做两个8位特殊功能寄存器,它是可以访问的。2.指令寄存器IR、指令译码器及定时控制逻辑电路•IR是用来存放指令操作码的专用寄存器。执行程序时首先进行程序存储器的读操作,也就是根据PC给出的地址从程序存储器中取出指令,送指令寄存器IR,IR的输出送指令译码器•指令译码器对该指令进行译码,译码结果送定时控制逻辑电路•定时控制逻辑电路根据指令的性质发出一系列定时控制信号,控制单片机的各部件进行相应的工作,执行指令。•条件转移逻辑电路主要用来控制程序的分支转移。转移条件分两部分:内部条件:程序状态标志位和累加器A的零状态外部条件:F0和所有位寻址空间的状态。2.4MCS-51存储器的结构哈佛(Har-vard)结构:程序存储器和数据存储器截然分开,分别寻址物理上存储器空间可划分为5类:1.程序存储器空间8031无内部程序存储器。2.内部数据存储器空间3.特殊功能寄存器(P21)4.位地址空间211个可寻址位。5.外部数据寄存器空间片外可扩展64K字节RAM。内部数据存储器(a)外部数据存储器(b)MCS-51单片机存储器空间分配特殊功能寄存器00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH程序存储器(c)工作寄存器区位寻址区通用RAM区返回•在逻辑上有三个彼此独立的地址空间:•(1)片内外统一编地址的64KB程序存储器地址空间;•(2)128字节的片内数据存储器地址空间;•(3)64KB片外数据存储器地址空间MCS-