第2章单片机基本原理第2章单片机基本原理2.1MCS-51系列单片机简介MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,它包含51和52两个子系列。对于51子系列,主要有8031、8051、8751三种机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同,8031芯片不带ROM,8051芯片带4KROM,8751芯片带4KEPROM。51子系列的主要特点为:◆8位CPU。◆片内带振荡器,频率范围1.2~12MHZ。◆片内带128字节的数据存储器。◆片内带4K的程序存储器。◆程序存储器的寻址空间为64K字节。◆片外数据存储器的寻址空间为64K字节。◆128个用户位寻址空间。第2章单片机基本原理◆21个字节特殊功能寄存器。◆4个8位的并行I/O接口:P0、P1、P2、P3。◆2个16位定时器/计数器◆2个优先级别的5个中断源。◆1个全双工的串行I/O接口,可多机通信。◆111条指令,含乘法指令和除法指令。◆片内采用单总线结构。◆有较强的位处理能力。◆采用单一+5V电源。对于52子系列,有8032、8052、8752三种机型。52子系列与51子系列相比大部分相同,不同之处在于:片内数据存储器增至256字节;8032芯片不带ROM,8052芯片带8KROM,8752芯片带8KEPROM;有3个16位定时器/计数器;6个中断源。本书以51子系列的8051介绍MCS-51单片机的基本原理第2章单片机基本原理CPUROM/EPROMRAM定时/计数器并行接口串行接口中断系统P0P1P2P3TXDRXDINT0INT1T0T1XTAL1XTAL2时钟电路2.2MCS-51系列单片机的结构原理2.2.1MCS-51系列单片机的基本组成第2章单片机基本原理PSENALERESETXLAT1P0.0~P0.7P2.0~P2.7RAM地址寄存器RAMP0锁存器P2锁存器EPROM或ROM程序地址寄存器缓冲器B寄存器ACC暂存器2暂存器1ALUPSWSPPC增量器PCDPTRP0驱动器P2驱动器特殊功能寄存器指令寄存器定时及控制P1锁存器P3锁存器P1驱动器P3驱动器振荡器VssP1.0~P1.7P3.0~P3.7EAXLAT2Vcc2.2.2MCS-51系列单片机的内部结构第2章单片机基本原理2.2.3MCS-51系列单片机的中央处理器(CPU)一.运算部件运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC(简称A)、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。标志寄存器PSW是一个8位的寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):进位标志位。AC(PSW.6):辅助进位标志位。F0(PSW.5):用户标志位。RS1、RS0(PSW.4、PSW.3):寄存器组选择位。第2章单片机基本原理RS1RS0工作寄存器组000组(00H-07H)011组(08H-0FH)102组(10H-17H)113组(18H-1FH)OV(PSW.2):溢出标志位。P(PSW.0):奇偶标志位(偶)。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。【例2-1】试分析下面指令执行后,累加器A,标志位C、AC、OV、P的值?MOVA,#67HADDA,#58H加法运算过程如下:第2章单片机基本原理67H=01100111B58H=01011000B01100111B+01011000B10111111=0BFH则执行后累加器A中的值为0BFH,由相加过程得C=0、AC=0、OV=1、P=1。二.控制部件控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。第2章单片机基本原理2.2.4MCS-51系列单片机的存储器结构MCS-51单片机存储器结构与一般微机的存储器结构不同,分为程序存储器ROM和数据存储器RAM。程序存储器存放程序、固定常数和数据表格。数据存储器用作工作区及存放数据。一.程序存储器1.程序存储器的编址与访问MCS-51单片机的程序存储器,从物理结构上分为片内和片外程序存储器,而对于片内程序存储器,在MCS-51系列中,不同的芯片各不相同,8031和8032内部没有ROM,8051内部有4KBROM,8751内部有4KBEPROM,8052内部有8KBROM,8752内部有8KBEPROM。对于内部没有ROM的8031和8032,工作时只能扩展外部ROM,最多可扩展64K,地址范围为0000H—FFFFH第2章单片机基本原理对于内部有ROM的芯片,根据情况外部可以扩展ROM,但内部ROM和外部ROM共用64K存储空间,其中,片内程序存储器地址空间和片外程序存储器的低地址空间重叠。51子系列重叠区域为0000H—0FFFH,52子系列重叠区域为0000H—1FFFH。片外ROMEA=0片外ROMEA=0片内ROMEA=1片外ROM0000HFFFFH0000H0FFFH1000HFFFFH片外ROMEA=0片内ROMEA=1片外ROM0000H1FFFH2000HFFFFH(a)片内无ROM(b)片内有4KROM(c)片内有8KROM第2章单片机基本原理2.程序存储器的7个特殊地址中断源入口地址外部中断00003H定时/计数器0000BH外部中断10013H定时/计数器1001BH串行口0023H定时/计数器2(仅52子系列有)002BH复位地址0000H,第2章单片机基本原理二.数据存储器从物理结构上分为片内数据存储器和片外数据存储器。1.片内数据存储器对于51子系列,片内数据存储器RAM有128字节,编址为00H—7FH;对于52子系列,片内数据存储器有256字节,编址为00H—FFH;除了RAM块外,还有特殊功能寄存器(SFR)块,编址为80H—FFH,与52系列RAM后128字节编址重叠的。后者也有128字节,编址为80H—FFH;后者与前者的的。访问时通过不同的指令相区分。片内数据存储器按功能分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区,其中还包含堆栈区。第2章单片机基本原理SFR00H1FH20H2FH30H7FH80HFFH80HFFH工作寄存器组区位寻址区一般RAM区一般RAM区仅52子子系列1.工作寄存器组区00H—1FH单元为工作寄存器组区,共32个字节。工作寄存器也称为通用寄存器,用于临时寄存8位信息。工作寄存器共有4组,称为0组、1组、2组和3组,每组8个,分别依次用R0~R7表示第2章单片机基本原理2.位寻址区20H—2FH为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,每一位都有一个位地址,位地址范围为00H—7FH字节单元地址D7D6D5D4D3D2D1D020H070605040302010021H0F0E0D0C0B0A090822H171615141312111023H1F1E1D1C1B1A191824H272625242322212025H2F2E2D2C2B2A292826H373635343332313027H3F3E3D3C3B3A393828H474645444342414029H4F4E4D4C4B4A49482AH57565554535251502BH5F5E5D5C5B5A59582CH67666564636261602DH6F6E6D6C6B6A69682EH77767574737271702FH7F7E7D7C7B7A7978第2章单片机基本原理3.一般RAM区30H—7FH是一般RAM区,也称为用户RAM区,共80字节,对于52子系列,一般RAM区从30H—FFH单元。另外,对于前两区中未用的单元也可作为用户RAM单元使用。4.堆栈区与堆栈指针堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。MCS-51单片机中,堆栈是用片内数据存储器的一段区域,在具体使用时应避开工作寄存器、位寻址区,一般设在2FH以后的单元,如工作寄存器和位寻址区未用,也可开辟为堆栈。第2章单片机基本原理5.特殊功能寄存器CPU专用寄存器:累加器A(E0H),寄存器B(F0H),程序状态寄存器PSW(D0H),堆栈指针SP(81H),数据指针DPTR(82H、83H)。并行接口:P0~P3(80H、90H、A0H、B0H)。串行接口:串口控制寄存器SCON(98H),串口数据缓冲器SBUF(99h),电源控制寄存器PCON(87H)。定时/计数器:方式寄存器TMOD(89H),控制寄存器TCON(88H),初值寄存器TH0、TL0(8CH、8AH)/TH1、TL1(8DH、8BH)。中断系统:中断允许寄存器IE(A8H),中断优先级寄存器IP(B8H)。第2章单片机基本原理定时/计数器2相关寄存器:定时/计数器2控制寄存器T2CON(CBH),定时/计数器2自动重装寄存器RLDL、RLDH(CAH、CBH),定时/计数器2初值寄存器TH2、TL2(CDH、CCH)。(仅52子系列有)特殊功能寄存器名称符号地址位地址与位名称D7D6D5D4D3D2D1D0P0口P080H8786858483828180堆栈指针SP81H数据指针低字节DPL82H数据指针高字节DPH83H定时/计数器控制TCON88HTF18FTR18ETF08DTR08CIE18BIT18AIE089IT088定时/计数器方式TMOD89HGATEC/TM1M0GATEC/TM1M0第2章单片机基本原理定时/计数器0低字节TL08AH定时/计数器0高字节TH08BH定时/计数器1低字节TL18CH定时/计数器1高字节TH18DHP1口P190H9796959493929190电源控制PCON97HSMODGF1GF0PDIDL串行口控制SCON98HSM09FSM19ESM09DREN9CTB89BRB89ATI99RI98串行口数据SBUF99HP2口P2A0HA7A6A5A4A3A2A1A0中断允许控制IEA8HEAAFET2ADESACET1ABEX1AAET0A9EX0A9第2章单片机基本原理P3口P3B0HB7B6B5B4B3B2B1B0中断优先级控制IPB8HPT2BDPSBCPT1BBPX1BAPT0B9PX0B8定时/计数器2控制T2CONC8HTF2CFEXF2CERCLKCDTCLKCCEXEN2CBTR2CAC/T2C9CP/RL2C8定时/计数器2重装低字节RLDLCAH定时/计数器2重装高字节RLDHCBH定时/计数器2低字节TL2CCH定时/计数器2高字节TH2CDH程序状态寄存器PSWD0HCD7ACD6F0D5RS1D4RS0D3OVD2D1PD0累加器AE0HE7E6E5E4E3E2E1E0寄存器BBF0HF7F6F5F4F3F2F1F0在表中,字节地址能被8整除的既能按字节方式处理,也能够按位方式处理。第2章单片机基本原理2.片外数据存储器扩展的外部数据存储器最多64KB,地址范围为0000H—0FFFFH,通过DPTR作指针间接方式访问,对于低端的256字节,可用两位十六进制地址编址,地址范围为00H—0FFH,可通过R0和R1间接方式访问。说明:第一,64K的程序存储器和64K的片外数据存储器地址空间都为0000H—0FFFFH,地址空间是重叠的,它们如何区分呢?第二,片内数据存储器和片外数据存储器的低256字节的地址空间是重叠的,它们如何区分呢?第2章单片机基本原理2.2.5MCS-51系列单片机的输入/输出接口MCS-51系列单片机有4个8位的并行I/O接