第2章AT89C51单片机结构和原理第2章AT89C51单片机结构和原理2.1AT89C51单片机的结构2.2AT89C51单片机引脚及其功能2.3AT89C51存储器2.4AT89C51单片机工作方式2.5AT89C51时钟电路与时序习题与思考题第2章AT89C51单片机结构和原理2.1AT89C51单片机的结构AT89系列单片机在结构上基本相同,只是在个别模块和功能上有些区别。图2-1是AT89C51单片机的内部结构框图。它包含了作为微型计算机所必需的基本功能部件,各功能部件通过片内单一总线连成一个整体,集成在一块芯片上。第2章AT89C51单片机结构和原理P0驱动器P2驱动器P0锁存器P2锁存器RAMRAM地址寄存器BACCTMP1TMP2PSWP1驱动器P1锁存器P3驱动器P3锁存器OSC定时控制逻辑电路指令寄存器PCONSCONTMODTCONT2CONTH0TL0TH1TH2TL2RCAP2H*RCAP2L*中断、串行口,定时器逻辑TL1SBUFIEIPFlash程序地址寄存器缓冲器PC加1器程序计数器DPTRP0.0~P0.7P2.0~P2.7ALUSPP1.0~P1.7P3.0~P3.7PSENALERSTEAXTAL1XTAL2VCCGND*只在AT89C52中有图2-1AT89C51内部结构框图第2章AT89C51单片机结构和原理2.1.1中央处理器(CPU)CPU是单片机内部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。1.运算器运算器用来完成算术运算和逻辑运算功能,它是AT89C51内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP1、TMP2)和状态寄存器(PSW)组成。第2章AT89C51单片机结构和原理(1)算术逻辑单元(ALU):AT89C51中的ALU由加法器和一个布尔处理器组成(图中未具体画出)。(2)累加器(ACC):用来存放参与算术运算和逻辑运算的一个操作数或运算的结果。(3)暂存寄存器(TMP1、TMP2):用来存放参与算术运算和逻辑运算的另一个操作数,它对用户不开放。(4)状态寄存器(PSW):PSW是一个8位标志寄存器,用来存放ALU操作结果的有关状态。第2章AT89C51单片机结构和原理表2-1PSW各位定义表位编号PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0位定义CYACF0RS1RS0OV—P位地址D7HD6HD5HD4HD3HD2HD1HD0H第2章AT89C51单片机结构和原理①进位标志位CY:表示累加器A在加减运算过程中其最高位A7有无进位或借位。②辅助进位位AC:表示累加器A在加减运算时低4位(A3)有无向高4位(A4)进位或借位。③用户标志位F0:是用户定义的一个状态标志位,根据需要可以用软件来使它置位或清除。第2章AT89C51单片机结构和原理④寄存器选择位RS1、RS0:AT89C51共有四组,每组八个工作寄存器R0~R7。编程时用于存放数据或地址。但每组工作寄存器在内部RAM中的物理地址不同。RS1和RS0的四种状态组合就是用来确定四组工作寄存器的实际物理地址的。RS1、RS0状态与工作寄存器R0~R7的物理地址关系如表2-2所示。第2章AT89C51单片机结构和原理表2-2工作寄存器组R0~R7的物理地址RS1RS0工作寄存器组号R0~R7的物理地址00011011012300H~07H08H~0FH16H~17H18H~1FH第2章AT89C51单片机结构和原理⑤溢出标志位OV:当执行算术指令时,由硬件自动置位或清零,表示累加器A的溢出状态。⑥奇偶标志位P:用于指示运算结果中1的个数的奇偶性,若累加器A中1的个数为奇数,则P=1;若1的个数为偶数,则P=0。第2章AT89C51单片机结构和原理2.控制器控制器是单片机内部按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID和定时控制逻辑电路等构成。程序计数器PC是专门用于存放现行指令的16位地址的。CPU就是根据PC中的地址到ROM中去读取程序指令码和数据,并送给指令寄存器IR进行分析。第2章AT89C51单片机结构和原理指令寄存器IR用于存放CPU根据PC地址从ROM中读出的指令操作码。指令译码器ID是用于分析指令操作的部件,指令操作码经译码后产生相应于某一特定操作的信号。定时控制逻辑中定时部件用来产生脉冲序列和多种节拍脉冲。第2章AT89C51单片机结构和原理3.寄存器阵列寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。通用寄存器组用来存放过渡性的数据和地址,提高CPU的运行速度。专用寄存器组主要用来指示当前要执行指令的内存地址,存放特定的操作数,指示指令运行的状态等。第2章AT89C51单片机结构和原理2.1.2存储器AT89C51单片机内部有256个字节的RAM数据存储器和4 KB的闪存程序存储器(Flash),当不够使用时,可分别扩展为64KB外部RAM存储器和64KB外部程序存储器。它们的逻辑空间是分开的,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛型结构单片机。程序存储器是可读不可写的,用于存放编好的程序和表格常数。数据存储器是既可读也可写的,用于存放运算的中间结果,进行数据暂存及数据缓冲等。第2章AT89C51单片机结构和原理2.1.3I/O端口AT89C51单片机对外部电路进行控制或交换信息都是通过I/O端口进行的。单片机的I/O端口分为并行I/O端口和串行I/O端口,它们的结构和作用并不相同。1.并行I/O端口AT89C51有四个8位并行I/O端口,分别命名为P0口、P1口、P2口和P3口,它们都是8位准双向口,每次可以并行输入或输出8位二进制信息。第2章AT89C51单片机结构和原理2.串行I/O端口AT89C51有一个全双工的可编程串行I/O端口,它利用了P3口的第二功能,即将P3.1引脚作为串行数据的发送线TXD,将P3.0引脚作为串行数据的接收线RXD。第2章AT89C51单片机结构和原理2.1.4定时器/计数器AT89C51内部有两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1),T0和T1分别由两个8位寄存器构成,其中T0由TH0(高8位)和TL0(低8位)构成,T1由TH1(高8位)和TL1(低8位)构成。TH0、TL0、TH1、TL1都是SFR中的特殊功能寄存器(见表2-4)。第2章AT89C51单片机结构和原理T0和T1在定时器控制寄存器TCON和定时器方式选择寄存器TMOD的控制下(TCON、TMOD为特殊功能寄存器),可工作在定时器模式或计数器模式下,每种模式下又有不同的工作方式。当定时或计数溢出时还可申请中断。详细情况参见第6章。第2章AT89C51单片机结构和原理2.1.5中断系统单片机中的中断是指CPU暂停正在执行的原程序转而为中断源服务(执行中断服务程序),在执行完中断服务程序后再回到原程序继续执行。中断系统是指能够处理上述中断过程所需要的部分电路。AT89C51的中断系统由中断源、中断允许控制器IE、中断优先级控制器IP、定时器控制器TCON(中断标志寄存器)等构成,IE、IP、TCON均为SFR特殊功能寄存器(见表2-2)。第2章AT89C51单片机结构和原理2.1.6内部总线总线是用于传送信息的公共途径。总线可分为数据总线、地址总线、控制总线。单片机内的CPU、存储器、I/O接口等单元部件都是通过总线连接到一起的。采用总线结构可以减少信息传输线的根数,提高系统可靠性,增强系统灵活性。AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。第2章AT89C51单片机结构和原理2.2AT89C51单片机引脚及其功能AT89C51有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O端口线、电源线、控制线、外接晶体线四部分。其封装形式有两种:双列直插封装(DIP)形式和方形封装形式,如图2-2所示。第2章AT89C51单片机结构和原理12345678910111213141516171819204039383736353433323130292827262524232221(T2)P1.0(T2EX)P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(T0)P3.4(T1)P3.5XTAL2XTAL1GND(TNT0)P3.2(TNT1)P3.3(WR)P3.6(RD)P3.7VCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)P2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)EA/VPPALE/PROGPSENP1.5P1.6P1.7RST(RXD)P3.0NC(TXD)P3.1(INT0)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPNCALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)789101112131415161739383736353433323130291819202122232425262728P1.4P1.3P1.2P1.1(T2EX)P1.0(T2)NCVCCP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)(WR)P3.6(RD)P3.7XTAL2XTAL1GNDNC(A8)P2.0(A9)P2.1(A10)P2.2(A11)P2.3(A12)P2.46543214443424140(a)(b)图2-2AT89C51封装和引脚分配图(a)双列直插式封装;(b)方形封装第2章AT89C51单片机结构和原理2.2.1I/O端口功能1.P0口P0口有八条端口线,命名为P0.0~P0.7,其中P0.0为低位,P0.7为高位。每条线的结构组成如图2-3所示。它由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。P0口是一个三态双向I/O口,它有两种不同的功能,用于不同的工作环境。第2章AT89C51单片机结构和原理DCLQQP0.X锁存器MUXT2T1VCC控制地址/数据读锁存器内部总线写锁存器读引脚P0.X图2-3P0口位结构图第2章AT89C51单片机结构和原理2.P1口P1口有八条端口线,命名为P1.0~P1.7,每条线的结构组成如图2-4所示。P1口是一个准双向口,只作普通的I/O口使用,其功能与P0口的第一功能相同。作输出口使用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,使场效应管T截止,然后才能读取数据。第2章AT89C51单片机结构和原理DCLQQP1.X锁存器读锁存器内部总线写锁存器读引脚VCCP1.XT图2-4P1口位结构图第2章AT89C51单片机结构和原理3.P2口P2口有八条端口线,命名为P2.0~P2.7,每条线的结构如图2-5所示。P2口也是一个准双向口,它有两种使用功能:一种是当系统不扩展外部存储器时,作普通I/O口使用,其功能和原理与P0口第一功能相同,只是作为输出口时不需外接上拉电阻;另一种是当系统外扩存储器时,P2口作系统扩展的地址总线口使用,输出高8位的地址A7~A15,与P0口第二功能输出的低8位地址相配合,共同访问外部程序或数据存储器(64KB),但它只确定地址并不能像P0口那样还可以传送存储器的读写数据。第2章AT89C51单片机结构和原理DCLQQP2.X锁存器MUXTVCC控制内部上拉电阻读锁存器内部总线写锁存器读引脚P2.X地址图2-5P2口位结构图第2章AT89C51单片机