1第2章MCS-51单片机结构及原理本章内容:(1)MCS-51系列的8051的基本结构;(2)存储器结构及其配置;(3)P0、P1、P2、P3四个I/O口的基本工作原理和操作特点;(4)单片机的时序(5)复位22.1.1MCS-51的基本组成MCS-51单片机(以8051为例,Intel产品)1个8位CPU;1个片内振荡器及时钟电路;128字节RAM(数据存储器);4K字节ROM(程序存储器);2个16位定时器/计数器;32条可编程的I/O线(四个8位并行I/O端口);1个全双工串行口;5个中断源;2.1MCS-51单片机组成及结构32.1MCS-51单片机组成及结构存储器CPU输入输出口定时/计数器中断系统总线42.1.2MCS-51单片机的引脚与功能逻辑符号2.1MCS-51单片机组成及结构引脚分配5(1)电源线+5V供电VCC(40)——+5VGND(20)——地2.1.2MCS-51单片机的引脚与功能引脚分配P0(2)晶体振荡器信号输入输出XTAL2(18)——晶体振荡器信号输出XTAL1(19)——晶体振荡器信号输入(3)输入/输出线P0.0~P0.7P0口P1.0~P1.7P1口P2.0~P2.7P2口P3.0~P3.7P3口P1P2P36(4)控制信号线ALE(30)——地址锁存控制信号(AddressLatchEnable),ALE用于将地址总线的低八位锁存。该信号频率为晶振频率的1/6,可作为外部定时或时钟使用。2.1.2MCS-51单片机的引脚与功能引脚分配PSEN(29)——外部程序存储器读选通信号(ProgramStoreEnable)该信号为低电平时,CPU从外部程序存储器单元读取指令。7(31)——内外程序存储器选择控制(ExternalAccessEnable)。EA2.1.2MCS-51单片机的引脚与功能(4)控制信号线(续)引脚分配RESET(9)——复位信号。RESET持续2个机器周期以上的高电平,单片机复位。EA=0,CPU对程序存储器的操作仅限于单片机外部程序存储器。=1,CPU对程序存储器的操作从单片机内部程序存储器开始,并可延伸到单片机的外部程序存储器。EA(5)部分引脚的第二功能(复用,同一个引脚被双重定义)2.1.2MCS-51单片机的引脚与功能T1定时器1外部计数信号输入T0定时器0外部计数信号输入INT1外部中断1,输入INT0外部中断0,输入WR外部数据存储器写选通信号,输出第二功能RXD串行输入端口引脚P3.0P3.2P3.3P3.4P3.5P3.6P3.7RD外部数据存储器读选通信号,输出TXD串行输出P3.19(5)部分引脚的第二功能程序存储器固化所需的信号编程脉冲ALE/PROG编程电压/VPP备用电源引入RESET/VPD:当电源电压下降到某个给定下限时,备用电源由该引脚向单片机芯片内部RAM供电,以保护内部RAM的内容不丢失。2.1.2MCS-51单片机的引脚与功能EA10TMP1TMP2ALUPSW4K字节ROMACCSPB寄存器RAM地址寄存器地址译码器与128字节RAMP2口锁存器P2口驱动器P3口锁存器P3口驱动器P1口锁存器P1口驱动器P0口锁存器P0口驱动器程序地址寄存器PCPC加1寄存器缓冲器DPTRPCONSCONTMODTCONTH0TL0TH1TL1SBUFIEIP中断模块串行口模块定时器/计数器模块指令寄存器定时与控制电路PSENALERESETEAXTAL1XTAL2OSCC1C2P2.0~P2.7P0.0~P0.7P3.0~P3.7P1.0~P1.7VccGND振荡器控制器运算器特殊功能寄存器I/O口I/O口2.1.3MCS-51单片机的内部结构数据存储器程序存储器11(一)中央处理器(CPU)CPU由运算器和控制器组成,它是单片机的核心,完成运算和控制操作。2.1.3MCS-51单片机的内部结构1.运算器TMP1TMP2ALUPSWACCTMP1TMP2ALUPSWACC运算器内部总线组成:算术逻辑运算器ALU,算术累加器ACC,寄存器B,暂存器TMP1,暂存器TMP2,布尔累加器Cy等。功能:进行移位、算术运算和逻辑运算;MCS-51运算器还包含有一个布尔(位)处理器,用来处理位操作。12(1)累加器A(ACC)(8位)功能:暂存操作数及保存运算结果;A是MCS-51单片机中最繁忙的寄存器;(2)寄存器B(8位)功能:用于乘法、除法运算,对于其它指令可作为一个寄存器使用;(3)程序状态字寄存器PSW(8位)功能:存放累加器A在运算过程标志位(P,OV,AC,Cy)的状态;指出CPU所使用的当前工作寄存器组。2.1.3MCS-51单片机的内部结构13CYACF0RS0OVPRS1PSW.7PSW.0CY(PSW.7)进位/借位标志位(Carry)。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。AC(PSW.6)半进位/借位标志位(AttachedCarry)。若AC在运算过程中,D3位向D4位发生了进位或借位,则AC=1,否则=0。F0(PSW.5)——用户标志位(Flag0:userdefinableflag)。PSW.6PSW.52.1.3MCS-51单片机的内部结构PSW程序状态字寄存器142.1.3MCS-51单片机的内部结构PSW.7PSW.0RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位(RegisterSelection)。RS1,RS0=01则选择了工作寄存器组1区R0~R7分别代表08H~0FH单元。RS1,RS0=10则选择了工作寄存器组2区R0~R7分别代表10H~17H单元。RS1,RS0=11则选择了工作寄存器组3区R0~R7分别代表18H~1FH单元。CYACF0RS0OVPRS1PSW.4PSW.3RS1,RS0=00则选择了工作寄存器组0区R0~R7分别代表08H~0FH单元。PSW程序状态字寄存器15CYACF0RS0OVPRS1PSW.7PSW.0OV(PSW.2)溢出标志位(Overflow)。OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。PSW.1未定义(Reserved)。P(PSW.0)奇偶标志位(ParityBit)。P=1表示累加器ACC中“1”的个数为奇数P=0表示累加器ACC中“1”的个数为偶数CPU随时监视着ACC中的“1”的个数,并反映在PSW中PSW.2PSW.12.1.3MCS-51单片机的内部结构PSWAC,Cy,OV,P通常在有A累加器参与运算的情况下改变,它们反映A累加器参与运算后的状态变化。程序状态字寄存器16(4)布尔处理器Cy实现各种位逻辑运算和传送;MCS-51具有一个位寻址空间。(5)TMP1和TMP2为8位暂存寄存器存放参与预算的操作数。2.1.3MCS-51单片机的内部结构MCS-51单片机仅能实现两个8位二进制数的算术和逻辑运算!17组成:定时与控制部件,复位电路,程序计数器(PC),指令寄存器、指令译码器,数据指针(DPTR),堆栈指针(SP)等作用:产生计算机所需的时序,控制程序自动执行。CPU程序存储器指令寄存器外RAM,EPROM,外I/O指令译码器控制单片机各部分的运行,产生ALE,PSEN,RD/WR2.1.3MCS-51单片机的内部结构CPU执行指令2.控制器18指令寄存器定时与控制电路PSENALERESETEAXTAL1XTAL2OSCC1C2振荡器控制器指令寄存器定时与控制电路PSENALERESETEAXTAL1XTAL2OSCC1C2振荡器控制器程序地址寄存器PCPC加1寄存器缓冲器DPTR总线程序地址寄存器PCPC加1寄存器缓冲器DPTR4K字节ROM存储器4K字节ROM程序总线控制器示意图19(1)程序计数器PC(16位)程序计数器PC用来存放即要执行的指令地址,共16位,低8位经P0口输出,高8位经P2口输出。CPU每取一次机器码,PC内容自动加一,CPU执行一条指令,PC内容自动增加该指令的长度。CPU复位后,PC内容为0000H,它标志着程序从头开始执行。PC的内容变化决定程序的流向。(2)指令寄存器(8位)指令寄存器中存放将要执行的指令代码,通过指令译码器,将指令代码转化为电信号——控制信号ALE等。2.1.3MCS-51单片机的内部结构202.1.3MCS-51单片机的内部结构(3)数据指针DPTR(16位)用于访问外部RAM或外部I/O口,提供十六位地址。用于程序存储器的查表和程序散转指令,作为基地址寄存器,提供十六位基地址。(4)堆栈指针寄存器SP(8位)用于管理对栈,指出栈顶位置。MCS-51单片机复位后,(SP)=07H212.1.3MCS-51单片机的内部结构(二)存储器(1)内部数据存储器单片机的内部数据存储器由RAM地址寄存器、地址译码器以及128个单元的RAM构成,用于存放可读写的数据。(2)内部程序存储器MCS-51系列单片机(8031除外)的内部程序存储器由程序地址寄存器、地址译码器以及4K(4096)个单元的ROM构成,用于存放程序的机器代码和常数。(3)特殊功能寄存器(SpecialFunctionRegister,SFR)MCS-51系列单片机有21个可以寻址的特殊功能寄存器,包括单片机内的I/O口、串行口、定时/计数器、中断系统等相关的数据寄存器(或缓冲器)以及控制寄存器和状态寄存器,用于存放相应功能部件的控制命令、状态和数据。22TMP1TMP2ALUPSW4K字节ROMACCSPB寄存器RAM地址寄存器地址译码器与128字节RAMP2口锁存器P2口驱动器P3口锁存器P3口驱动器P1口锁存器P1口驱动器P0口锁存器P0口驱动器程序地址寄存器PCPC加1寄存器缓冲器DPTRPCONSCONTMODTCONTH0TL0TH1TL1SBUFIEIP中断模块串行口模块定时器/计数器模块指令寄存器定时与控制电路PSENALERESETEAXTAL1XTAL2OSCC1C2P2.0~P2.7P0.0~P0.7P3.0~P3.7P1.0~P1.7VccGND振荡器存储器示意图I/O口特殊功能寄存器数据存储器程序存储器232.1.3MCS-51单片机的内部结构(三)并行口(ParallelPort)有4个并行的I/O口:P0、P1、P2、P3,每根口线都可独立地用作输入或输出。(四)串行口(SerialPort)有1个全双工的串行口,用于串行通信。串行口由发送缓冲器SBUF、接收缓冲器SBUF、移位寄存器和串行口控制逻辑等部分组成。(五)定时/计数器(Timer/Counter)有2个16位的定时/计数器T0和T1,T0由TH0和TL0构成,T1由TH1和TL1构成,定时/计数器方式寄存器TMOD选择定时/计数器的工作模式和方式,定时/计数器控制寄存器TCON控制T0和T1的启动和停止,同时反映T0和T1的溢出状态。(六)中断系统(InterruptSystem)有5个中断源,分别为2个外部中断、2个定时/计数器溢出产生的中断、1个串行口接收/发送产生的中断,提供2个中断优先级。24TMP1TMP2ALUPSW4K字节ROMACCSPB寄存器RAM地址寄存器地址译码器与128字节RAMP2口锁存器P2口驱动器P3口锁存器P3口驱动器P1口锁存器P1口驱动器P0口锁存器P0口驱动器程序地址寄存器PCPC加1寄存器缓冲器DPTRPCONSCONTMODTCONTH0TL0TH1TL1SBUFIEIP中断模块串行口模块定时器/计数器模块指令寄存器定时与控制电路PSENALERESETEAXTAL1XTAL2OSCC1C2P2.0~P2.7P0.0~P0.7P3.0~P3.7P1.0~P1.7VccGND振荡器输入输出口输入输出口252.2MCS-51单片机的存储器MCS-51单片机的程序存储器和数据存储器分开设置,地址空间相互独立。MC