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中断控制4K字节ROM128字节RAM定时/计数器1定时/计数器0总线控制4个I/0口串行口计数器输入P0P2P1P3RXDTXDEARESETXTAL1XTAL2OSCC1C2PSENALE地址/数据总线42.1.2MCS-51单片机的引脚与功能逻辑符号2.1MCS-51单片机组成及结构引脚分配5(1)电源线+5V供电VCC(40)——+5VGND(20)——地2.1.2MCS-51单片机的引脚与功能引脚分配P0(2)晶体振荡器信号输入输出XTAL1(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)=0,CPU对程序存储器的操作仅限于单片机外部程序存储器。=1,CPU对程序存储器的操作从单片机内部程序存储器开始,并可延伸到单片机的外部程序存储器。EAEAEA2.1.2MCS-51单片机的引脚与功能(4)控制信号线(续)引脚分配RESET(9)——复位信号。RESET持续2个机器周期以上的高电平,单片机复位。8(5)部分引脚的第二功能(复用,同一个引脚被双重定义)2.1.2MCS-51单片机的引脚与功能第二功能RXD串行输入T1定时器1外部计数信号输入T0定时器0外部计数信号输入INT1外部中断1,输入TXD串行输出INT0外部中断0,输入WR外部数据存储器写选通信号,输出端口引脚P3.0P3.2P3.1P3.3P3.4P3.5P3.6P3.7RD外部数据存储器读选通信号,输出9(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.运算器组成:算术逻辑运算器ALU,算术累加器ACC,寄存器B,暂存器TMP1,暂存器TMP2,布尔累加器Cy等功能:进行移位、算术运算和逻辑运算;MCS-51运算器还包含有一个布尔(位)处理器,用来处理位操作。12(1)累加器A(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)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机器在执行“DAA”指令时自动要判断这一位,我们可以暂时不关心它。F0(PSW.5)——用户标志位。PSW.6PSW.52.1.3MCS-51单片机的内部结构PSW142.1.3MCS-51单片机的内部结构PSW.7PSW.0RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。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单元。PSW15CYACF0RS0OVPRS1PSW.7PSW.0OV(PSW.2)溢出标志位。OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。PSW.1未定义。P(PSW.0)奇偶标志位。P=1表示累加器中“1”的个数为奇数P=0表示累加器中“1”的个数为偶数CPU随时监视着ACC中的“1”的个数,并反映在PSW中PSW.2PSW.12.1.3MCS-51单片机的内部结构PSW16(4)布尔处理器Cy实现各种位逻辑运算和传送;MCS-51具有一个位寻址空间。(5)TMP1和TMP2为8位暂存寄存器存放参与预算的操作数。2.1.3MCS-51单片机的内部结构MCS-51仅能实现两个8位二进制数的算术逻辑运算!172.控制器组成:定时与控制部件,复位电路,程序计数器(PC),指令寄存器、指令译码器,数据指针(DPTR),堆栈指针(SP)等作用:产生计算机所需的时序,控制程序自动执行。CPU程序存储器指令寄存器外RAM,EPROM,外I/O指令译码器控制单片机各部分的运行,产生ALE,PSEN,RD/WR2.1.3MCS-51单片机的内部结构18程序计数器PC(16位)程序计数器PC用来存放即要执行的指令地址,共16位,低8位经P0口输出,高8位经P2口输出。CPU每取一次机器码,PC内容自动加一,CPU执行一条指令,PC内容自动增加该指令的长度。CPU复位后,PC内容为0000H,它标志着程序从头开始执行。PC的内容变化决定程序的流向。指令寄存器(8位)指令寄存器中存放将要执行的指令代码,通过指令译码器,将指令代码转化为电信号——控制信号ALE等。2.1.3MCS-51单片机的内部结构192.1.3MCS-51单片机的内部结构数据指针DPTR(16位)用于访问外部RAM或外部I/O口,提供十六位地址。用于程序存储器的查表和程序散转指令,作为基地址寄存器,提供十六位基地址。堆栈指针寄存器SP(8位)用于管理对栈,指出栈顶位置。MCS-51单片机复位后,(SP)=07H202.1.3MCS-51单片机的内部结构(二)存储器1.内部数据存储器单片机的内部数据存储器由RAM地址寄存器、地址译码器以及128个单元的RAM构成,用于存放可读写的数据。2.内部程序存储器MCS-51系列单片机(8031除外)的内部程序存储器由程序地址寄存器、地址译码器以及4K(4096)个单元的ROM构成,用于存放程序的机器代码和常数。2.特殊功能寄存器(SpecialFunctionRegister,SFR)MCS-51系列单片机有21个可以寻址的特殊功能寄存器,包括单片机内的I/O口、串行口、定时/计数器、中断系统等相关的数据寄存器(或缓冲器)以及控制寄存器和状态寄存器,用于存放相应功能部件的控制命令、状态和数据。212.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个中断优先级。222.2MCS-51单片机的存储器MCS-51单片机的程序存储器和数据存储器分开设置,地址空间相互独立。MCS-51存储器地址空间可分为以下5类:(1)程序存储器,最大空间64K;(2)片内数据存储器,128个单元;(3)特殊功能寄存器,共21个;(4)位寻址空间,211位;(5)外部数据寄存器,最大空间64K。这些资源与单片机应用的关系密切,下面我们介绍上述5类存储空间的功能。232.2.1程序存储器程序存储器用来存放程序和常数,最大寻址空间64K单元。MCS-51系列产品按程序存储器配置类型分为3类:8051芯片含有4k个单元的ROM;8751芯片含有4k个单元的EPROM;8031中无程序存储器,需要扩展程序存储器。在实际应用中,用户既可使用芯片内部的程序存储器,也可以使用芯片外部的程序存储器,但最大空间为64k,程序存储器的地址空间构成与引脚的接法有关。EA242.2.1程序存储器(1)芯片内部含有程序存储器的单片机(8051/8751)当=1(接高电平)时,8051/8751的程序存储器结构如图:EA00000FFF1000FFFF00010FFEFFFE1001芯片内部的4K芯片外部的60K程序存储器结构锁存器P0P2ALEPSENEAVccR片外ROMDBOEAB8751/8051程序存储器连接电路252.2.1程序存储器(1)芯片内部含有程序存储器的单片机(8051/8751)当=0(接低电平)时,8051/8751的程序存储器结构如图:EA0000FFFFFFFE0001芯片外部的64K程序存储器结构锁存器P0P2ALEPSENEAROMDBOEAB8751/8051程序存储器连接电路262.2.1程序存储器(1)芯片内部不含有程序存储器的单片机(8031)必须接地,8031的程序存储器结构如图:0000FFFFFFFE0001芯片外部的64K程序存储器结构不论哪一种MCS-51单片机,如果接地,其内部的程序存储器将被CPU忽略。EAEA锁存器P0P2ALEPSENEAROMDBOEAB8751/8051程序存储器连接电路8031272.2.1程序存储器在单片机的程序存储器中,有