1、单片机原理及应用单片机原理及应用(C语言版)语言版)第第2章章 MCS-51单片机结构与原理单片机结构与原理第第2章章 MCS-51单片机结构与原理单片机结构与原理目目 录录2.1 MCS-51单片机结构及单片机结构及CPU2.2 MCS-51单片机引脚与总线结构单片机引脚与总线结构2.3 MCS-51单片机的存储器结构单片机的存储器结构2.4 MCS-51单片机的输入输出端口单片机的输入输出端口2.5 MCS-51单片机的时钟及单片机的时钟及CPU时序时序2.6 MCS-51单片机的工作方式单片机的工作方式第第2章章 MCS-51单片机结构与原理单片机结构与原理本章讨论本章讨论MCS-51单
2、片机的结构和工作原单片机的结构和工作原理,理,内容主要有内容主要有MCS-51单片机结构、引脚单片机结构、引脚信号、存储器配置、输入信号、存储器配置、输入/输出端口、时钟与输出端口、时钟与CPU时序,以及单片机的工作方式等。时序,以及单片机的工作方式等。本章是单片机的基本内容本章是单片机的基本内容,为学习后面,为学习后面各个章节的基础,也是从事单片机应用开发各个章节的基础,也是从事单片机应用开发的基础。的基础。2.1 MCS-51单片机内部结构及单片机内部结构及CPU 主要内容主要内容2.1.1 MCS-51单片机的功能结构及特点单片机的功能结构及特点2.1.2 MCS-51单片机的内部原理结
3、构单片机的内部原理结构2.1.3 MCS-51单片机的单片机的CPU2.1.1 MCS-51单片机的功能结构及特点单片机的功能结构及特点 MCS-51单片机的内部功能结构如下页单片机的内部功能结构如下页图所示,图中是以增强型单片机的结构为图所示,图中是以增强型单片机的结构为对象。对象。从图中可以看到,从图中可以看到,MCS-51单片机单片机在一在一块芯片中集成了微型计算机所具有的所有块芯片中集成了微型计算机所具有的所有部件部件,从功能的角度来看,主要包括,从功能的角度来看,主要包括9个个部分。部分。图图2.1 MCS-51(增强型增强型)单片机功能结构图单片机功能结构图时钟信号源时钟信号源外部
4、事件信号外部事件信号BUS时钟电路时钟电路8KB FlashROM256B RAM128B SFR16位位3个个定时定时/计数器计数器64KB总线总线扩展控制器扩展控制器可编程可编程并行口并行口可编程全可编程全双工串行口双工串行口CPU中断控制器中断控制器外中断外中断8位位4个并行口个并行口串行通信串行通信总线控制总线控制BUS2.1.1 MCS-51单片机的功能结构及特点单片机的功能结构及特点 2.1.1 MCS-51单片机的功能结构及特点单片机的功能结构及特点 MCS-51单片机内部主要包括单片机内部主要包括9个部分:个部分:一个一个8位的微处理器位的微处理器CPU8KB的片内的片内程序存
5、储器程序存储器Flash ROM256B的片内的片内数据存储器数据存储器RAM、128B特殊功特殊功能寄存器能寄存器(SFR)3个个16位的位的定时器定时器/计数器计数器有一个管理有一个管理6个中断源的个中断源的中断控制器中断控制器4个个8位位并行并行I/O端端一个全双工的一个全双工的串行接口串行接口(UART)片内片内振荡电路和时钟发生器振荡电路和时钟发生器 可扩展可扩展64KB程序、程序、64KB数据存储器的数据存储器的三总三总线控制电路线控制电路2.1.2 MCS-51单片机的内部原理结构单片机的内部原理结构MCS-51单片机的内部原理结构如图单片机的内部原理结构如图2-2所示。所示。与
6、图与图2-1比较,比较,主要的区别是画出了主要的区别是画出了CPU的内部结构的内部结构,图中的中间部分除了,图中的中间部分除了“定时器、定时器、串行口串行口”大方框之外都属于大方框之外都属于CPU部件。部件。下面先介绍下面先介绍CPU部分,对于其它部件,部分,对于其它部件,将在本章和后面的章节讲解。将在本章和后面的章节讲解。图图2-2 MCS-51(增强型增强型)单片机原理结构图单片机原理结构图XTAL2 XTAL1P3.0P3.7P1.0P1.7RAM地址地址端口端口0驱动器驱动器端口端口2驱动器驱动器8KB FlashROM端口端口0锁存器锁存器端口端口2锁存器锁存器端口端口1驱动器驱动器
7、端口端口3驱动器驱动器端口端口1锁存器锁存器端口端口3锁存器锁存器暂存器暂存器1SPPSWB寄存器寄存器暂存器暂存器2ACC256BRAM128B SFR缓冲器缓冲器PC加加1PC程序地址寄存器程序地址寄存器DPTR定时器、串行口定时器、串行口中断部件及中断部件及特殊功能寄存器特殊功能寄存器地址总线地址总线数据总线数据总线P2.0P2.7Vcc GND指令寄存器指令寄存器指令译码器指令译码器指令控制器指令控制器P0.0P0.7PSENALEEA RST ALU2.1.3 MCS-51单片机的单片机的CPU MCS-51单片机内部有一个功能强大的单片机内部有一个功能强大的8位位CPU,它包含两个
8、基本部分,运算器和控,它包含两个基本部分,运算器和控制器。制器。一、运算器一、运算器运算器包括:运算器包括:算术和逻辑运算部件算术和逻辑运算部件ALU(Arithmetic Logic Unit)以及以及累加器累加器ACC、寄存器寄存器B、暂存器暂存器1、暂存器暂存器2、程序状态字寄存器、程序状态字寄存器PSW、布尔处布尔处理器理器等。等。2.1.3 MCS-51单片机的单片机的CPU1、算术逻辑运算部件、算术逻辑运算部件ALUALU可以对可以对4位(半字节)、位(半字节)、8位(一字位(一字节)和节)和16位(双字节)数据进行操作。位(双字节)数据进行操作。这些操作可以是:这些操作可以是:算
9、术运算:算术运算:加、减、乘、除、加加、减、乘、除、加1、减、减1、BCD码数的十进制调整及比较等;码数的十进制调整及比较等;逻辑运算:逻辑运算:与、或、异或、求补及循环与、或、异或、求补及循环移位等。移位等。2.1.3 MCS-51单片机的单片机的CPU2、累加器、累加器ACCACC在在CPU结构中占有特殊的位置,所结构中占有特殊的位置,所以以ACC在指令中使用的非常多。在指令中使用的非常多。ACC既做源操作数又做目的操作数既做源操作数又做目的操作数,如,如在加、减、乘、除算术运算指令中,在与、在加、减、乘、除算术运算指令中,在与、或、异或、循环移位逻辑运算指令等。或、异或、循环移位逻辑运算
10、指令等。ACC也作为通用寄存器使用也作为通用寄存器使用,并且可以,并且可以按位操作,所以按位操作,所以ACC是一个用处最多、最忙是一个用处最多、最忙碌的寄存器。碌的寄存器。在指令中用助记符在指令中用助记符A来表示来表示。2.1.3 MCS-51单片机的单片机的CPU3、B寄存器寄存器B做专门应用:做专门应用:在乘、除运算时,用来存在乘、除运算时,用来存放一个操作数,并且存放运算后的部分结果。放一个操作数,并且存放运算后的部分结果。B做一般应用:做一般应用:在非乘、除运算中,在非乘、除运算中,B可可以作为通用寄存器使用以作为通用寄存器使用。B可以按位操作可以按位操作2.1.3 MCS-51单片机
11、的单片机的CPU4、程序状态字、程序状态字PSW功能:功能:用于设定用于设定CPU的状态和指示指的状态和指示指令执行后的状态令执行后的状态。PSW相当于其它微处理器中的相当于其它微处理器中的标志寄标志寄存器存器。格式如下:。格式如下:PSW(D0H)D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1P图图2-3 程序状态字程序状态字PSW格式格式2.1.3 MCS-51单片机的单片机的CPUCY(PSW.7):):进位、借位标志进位、借位标志在做位操作在做位操作(布尔操作)(布尔操作)时时CY作作 为位累加器为位累加器。在指令中用。在指令中用C代替代替CYAC(PSW.6):
12、):半进位、半借位标志半进位、半借位标志,也称为辅助进位标志也称为辅助进位标志F0、F1(PSW.5、PSW.1):):用户标志用户标志位位,留给用户使用,留给用户使用D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1P2.1.3 MCS-51单片机的单片机的CPUOV(PSW.2):):溢出标志位溢出标志位有以下几种情况:有以下几种情况:加减运算:加减运算:OV1表示结果超出了表示结果超出了8位有符号位有符号数的有效范围(数的有效范围(128127),对无符号),对无符号数数OV没有意义。没有意义。无符号数乘法运算:无符号数乘法运算:OV1表明结果超出了表明结果超出了8位数
13、位数 无符号数除法运算:无符号数除法运算:OV1表明除数为表明除数为02.1.3 MCS-51单片机的单片机的CPUP(PSW.0):):累加器累加器A的奇偶标志位的奇偶标志位P表示累加器表示累加器A中中1的个数的奇偶性的个数的奇偶性P1,A中有奇数个中有奇数个1P0,A中有偶数个中有偶数个12.1.3 MCS-51单片机的单片机的CPURS1、RS0(PSW.4 和和PSW.3):):工作工作寄存器组选择控制位。寄存器组选择控制位。工作寄存器工作寄存器:R0、R1、R7表表2-1 RS1、RS0的组合关系的组合关系RS1 RS0工作寄存器组工作寄存器组 片内片内RAM地址地址0 0第第0组组
14、00H07H0 1第第1组组08H0FH1 0第第2组组10H17H1 1第第3组组18H1FH2.1.3 MCS-51单片机的单片机的CPU5、布尔处理器、布尔处理器 布尔处理器以布尔处理器以PSW中的进位标志位中的进位标志位CY作作为位累加器为位累加器(用(用C表示)。表示)。功能:功能:专门用于处理位操作专门用于处理位操作。MCS-51单片机有丰富的位处理指令:单片机有丰富的位处理指令:如如置位、位清置位、位清0、位取反、判断位值(为、位取反、判断位值(为1或为或为0)转移,以及通过转移,以及通过C(指令中用(指令中用C代替代替CY)做)做位数据传送、位逻辑与、位逻辑或等位操作。位数据传
15、送、位逻辑与、位逻辑或等位操作。2.1.3 MCS-51单片机的单片机的CPU二、控制器二、控制器控制器控制器包括包括程序计数器程序计数器PC、指令寄存器、指令寄存器IR、指令译码器、指令译码器ID,以及,以及时钟控制时钟控制逻辑、堆逻辑、堆栈指针栈指针SP、地址指针、地址指针DPTR等。等。1、程序计数器、程序计数器PCPC是一个是一个具有自加具有自加1功能的功能的16位的计数器位的计数器PC的内容是将要执行的的内容是将要执行的下一条指令的地下一条指令的地址址改变改变PC的内容就改变了程序执行的顺序的内容就改变了程序执行的顺序2.1.3 MCS-51单片机的单片机的CPU2、指令寄存器、指令
16、寄存器IR和指令译码器和指令译码器IDIR:存放从存放从Flash ROM中读取的指令中读取的指令ID:进行译码,产生一定序列的控制信进行译码,产生一定序列的控制信号,完成指令所规定的操作。号,完成指令所规定的操作。3、堆栈、堆栈(1)堆栈的概念)堆栈的概念堆栈是在堆栈是在RAM中专门开辟的一个特殊用中专门开辟的一个特殊用途的存储区途的存储区。(2)堆栈的访问原则)堆栈的访问原则:“先进后出先进后出”、“后进先出后进先出”。即先进入堆栈的数据后移出。即先进入堆栈的数据后移出堆栈,即后进入堆栈的数据先移出堆栈。堆栈,即后进入堆栈的数据先移出堆栈。2.1.3 MCS-51单片机的单片机的CPU(3
17、)堆栈的结构)堆栈的结构堆栈的一端的地址是固定的,称为堆栈的一端的地址是固定的,称为栈底栈底;另一端的地址是动态变化的,称为另一端的地址是动态变化的,称为栈顶栈顶。(4)堆栈的操作方式)堆栈的操作方式堆栈有两种操作方式堆栈有两种操作方式:数据:数据进栈进栈和数据和数据出栈出栈。,这就必然,这就必然是按照是按照“先进后出先进后出”、“后进先出后进先出”的方的方式存取数据。式存取数据。2.1.3 MCS-51单片机的单片机的CPU(5)堆栈的应用)堆栈的应用主要是用来暂时存放数据,主要是用来暂时存放数据,有两种情况有两种情况使用堆栈:使用堆栈:一是一是CPU自动使用堆栈自动使用堆栈,当调用子程序,
18、当调用子程序或响应中断,处理中断服务程序时,或响应中断,处理中断服务程序时,CPU自动将自动将返回地址存放到堆栈返回地址存放到堆栈中;中;通过堆通过堆栈传递参数栈传递参数。二是程序员使用堆栈二是程序员使用堆栈,用堆栈暂时存放,用堆栈暂时存放数据。数据。2.1.3 MCS-51单片机的单片机的CPU4、堆栈指针、堆栈指针SP堆栈指针堆栈指针SP(Stack Pointer)中为栈顶中为栈顶的地址的地址,即,即SP指向栈顶指向栈顶。SP是访问堆栈的间址寄存器是访问堆栈的间址寄存器SP具有自动加具有自动加1、自动减、自动减1功能功能。当数据。当数据进栈时,进栈时,SP先自动加先自动加1,然后,然后C
19、PU将数据存将数据存入;入;当数据出栈时,当数据出栈时,CPU先将数据送出,先将数据送出,然后然后SP自动减自动减1。2.1.3 MCS-51单片机的单片机的CPU下图是数据进栈的情况下图是数据进栈的情况数据从栈顶进入数据从栈顶进入 开始状态开始状态 58进栈后的状态进栈后的状态A6,7B进栈后的状态进栈后的状态E7E7E7E6E6E6SPE5SPE5SPE5E1E4E2E4E4E4E3E3E3E2E258E236E136E136E121E021E021E058A67B2.1.3 MCS-51单片机的单片机的CPU由于进栈时由于进栈时SP的值增加,即的值增加,即堆栈向地堆栈向地址大的方向生长址
20、大的方向生长,并且,并且栈顶是有效数据栈顶是有效数据,这种堆栈是这种堆栈是满递增型堆栈满递增型堆栈。7B出栈后的状态出栈后的状态A6、58、36出栈后的状态出栈后的状态E7E7E6E6SPE5SPE5E37BE4E07BE4A6E3A6E358E258E236E136E121E021E07BA658362.1.3 MCS-51单片机的单片机的CPU5、数据指针、数据指针DPTRDPTR是唯一的是唯一的16位寄存器位寄存器。DPTR既可以作为一个既可以作为一个16位寄存器使用,位寄存器使用,也可以作为两个独立的也可以作为两个独立的8位寄存器使用位寄存器使用。其。其高字节寄存器用高字节寄存器用DP
21、H表示,低字节寄存器表示,低字节寄存器用用DPL表示。表示。DPTR的用途:的用途:(1)主要用于存放主要用于存放16位地位地址址,以便对,以便对64KB的片外的片外RAM和和64KB的程的程序存储空间作间接访问。序存储空间作间接访问。(2)其次用于存放其次用于存放数据数据,作为一般寄存器使用。,作为一般寄存器使用。2.2 MCS-51单片机引脚与总线结构单片机引脚与总线结构 主要内容主要内容2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能2.2.2 MCS-51单片机外部总线结构单片机外部总线结构2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 封装:封装:4
22、0DIP,44PLCC。常用常用40DIP40个引脚分个引脚分为为4类:类:l 电源引脚电源引脚l 晶振引脚晶振引脚l 控制信号控制信号l 输入输入/输出引输出引脚脚T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1Vss89C5189C5240393837363534333231302928272625242322211234567891011121314151617181920VccP0.0/AD0P0.
23、1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A82.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 一、电源引脚一、电源引脚 Vcc(40脚):接脚):接5V电源正端电源正端Vss(20脚):接脚):接5V电源地端电源地端二、晶振引脚二、晶振引脚XTAL1(19脚)脚)XTAL2(18脚)脚)晶晶振振 XTAL2XTAL1单片机单片机C1 C2 18 19 2.2.
24、1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 三、控制信号引脚三、控制信号引脚1、RST/VPD(9脚)脚)RST:复位信号输入端复位信号输入端,高电平有效高电平有效。单片机正常工作时:单片机正常工作时:RST保持两个机器保持两个机器周期的高电平就会使单片机复位;周期的高电平就会使单片机复位;上电时:上电时:RST上的高电平必须保持上的高电平必须保持10ms以上才能保证有效复位,由于振荡器需要以上才能保证有效复位,由于振荡器需要一定的起振时间。一定的起振时间。VPD:备用电源输入端备用电源输入端,以保持内部,以保持内部RAM中的数据不丢失。中的数据不丢失。当当Vcc的电压降低的电压
25、降低到低电平规定的值或掉电时到低电平规定的值或掉电时,接入电源。,接入电源。2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 2、ALE/PROG(30引脚)引脚)ALE:地址锁存信号地址锁存信号,每个机器周期输,每个机器周期输出两个正脉冲,下降沿或低电平用于控制出两个正脉冲,下降沿或低电平用于控制外接的地址锁存器,锁存从外接的地址锁存器,锁存从P0口输出的低口输出的低8位地址。位地址。可以将可以将ALE作为时钟信号使用作为时钟信号使用。PROG:片内程序存储器的编程脉冲输片内程序存储器的编程脉冲输入端入端,低电平有效。,低电平有效。2.2.1 MCS-51单片机引脚信号及功能
26、单片机引脚信号及功能 3、PSEN(29引脚)引脚)片外程序存储器读选通信号输出端片外程序存储器读选通信号输出端,每,每个机器周期输出两个负脉冲,低电平有效。个机器周期输出两个负脉冲,低电平有效。在访问片外数据存储器时,该信号不出现。在访问片外数据存储器时,该信号不出现。4、EA/Vpp(31引脚)引脚)EA:程序存储器选择输入端程序存储器选择输入端。低电平低电平时,使用片外程序存储器;高电平时,使时,使用片外程序存储器;高电平时,使用片内程序存储器用片内程序存储器。Vpp:片内程序存储器编程电压输入端。片内程序存储器编程电压输入端。2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及
27、功能 五、输入五、输入/输出引脚输出引脚1、P0口,口,P0.0P0.7(3239引脚)引脚)P0口是一个口是一个8位漏极开路的位漏极开路的I/O口。口。P0口作总线口:口作总线口:当当CPU以总线方式访问片外存储器以总线方式访问片外存储器时,时,P0口口分时地输出低分时地输出低8位地址、读入指令位地址、读入指令和输入和输入/输出数据输出数据。P0口作为一般口作为一般I/O口:口:此时此时P0口为准双向口口为准双向口(各位输入(各位输入前必须先输出前必须先输出1)。)。2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 2、P1口,口,P1.0P1.7(18引脚)引脚)P1口是一
28、个口是一个8位准双向位准双向I/O口口P1.0、P1.1的第二功能:的第二功能:对于增强型,对于增强型,第二功能的信号分别为第二功能的信号分别为T2和和T2EXT2(P1.0):):定时器定时器/计数器计数器2的计数脉的计数脉冲输入和时钟输出。冲输入和时钟输出。T2EX(P1.1):):定时器定时器/计数器计数器2的重的重 装、捕获和计数方向控制输入。装、捕获和计数方向控制输入。2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 3、P2口,口,P2.0P2.7(2128引脚)引脚)当当CPU以总线方式访问片外存储器时,以总线方式访问片外存储器时,P2口输出高口输出高8位地址位地
29、址。作为一般作为一般I/O口使用时,为准双向口口使用时,为准双向口。4、P3口,口,P3.0P3.7(1017引脚)引脚)P3口是一个口是一个8位位I/O口口,还是一个双功能口还是一个双功能口作为一般作为一般I/O口使用时,口使用时,为准双向口为准双向口。各引脚第二功能如下页表各引脚第二功能如下页表2-2所示。所示。2.2.1 MCS-51单片机引脚信号及功能单片机引脚信号及功能 表表2-2 P3口各引脚第二功能定义口各引脚第二功能定义引引 脚脚第第 二二 功功 能能P3.0RXD:串行口输入:串行口输入P3.1TXD:串行口输出:串行口输出P3.2INT0:外部中断:外部中断0请求输入请求输
30、入P3.3INT1:外部中断:外部中断1请求输入请求输入P3.4T0:定时器:定时器/计数器计数器0外部计数脉冲输入外部计数脉冲输入P3.5T1:定时器:定时器/计数器计数器1外部计数脉冲输入外部计数脉冲输入P3.6WR:外部数据存储器写控制信号输出:外部数据存储器写控制信号输出P3.7RD:外部数据存储器读控制信号输出:外部数据存储器读控制信号输出2.2.2 MCS-51单片机总线结构单片机总线结构总线的概念:总线的概念:总线即三总线总线即三总线,指数据总线指数据总线、地址总线、控制总线。地址总线、控制总线。一般说法为:一般说法为:多个部件信息的电气连接。多个部件信息的电气连接。MCS-51
31、单片机的总线:单片机的总线:内部具有产生总内部具有产生总线的结构。线的结构。如图如图2-6所示。所示。单片机总线的应用:单片机总线的应用:扩展数据存储器扩展数据存储器扩展程序存储器扩展程序存储器2.2.2 MCS-51单片机总线结构单片机总线结构图图2-6 MCS-51单片机总线结构单片机总线结构地址锁存器地址锁存器74LS573A15:A8A7:A0D7:D0数据总线数据总线(DB)I/O口口控制总线控制总线(CB)地址总线地址总线(AB)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6/WRP3.7/RDALEPSEN
32、EARSTP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.02.3 MCS-51单片机的存储器结构单片机的存储器结构主要内容主要内容2.3.1 程序存储器结构程序存储器结构2.3.2 片内数据存储器结构片内数据存储器结构2.3.3 片外数据存储器结构片外数据存储器结构 MCS-51单片机存储器概述单片机存储器概述1、单片机的哈佛结构存储器、单片机的哈佛结构存储器MCS-51单片机为哈佛结构:单片机为哈佛结构:程序存储器程序存储器ROM和数据存储器和数据存储器RAM分开编址分开编址PC机为偌依曼:机为偌依曼:ROM和和
33、RAM统一编址统一编址程序存储器:程序存储器:固化程序、常数和数据表固化程序、常数和数据表数据存储器:数据存储器:存放程序运行中产生的各种存放程序运行中产生的各种数据、用作堆栈等数据、用作堆栈等 2、单片机的存储器空间及分类、单片机的存储器空间及分类MCS-51单片机有单片机有4个存储空间:个存储空间:片内片内程序存储器、片内数据存储器,片外程序存程序存储器、片内数据存储器,片外程序存储器、片外数据存储器。储器、片外数据存储器。4个存储空间可以分成三类:个存储空间可以分成三类:片内数据片内数据存储空间(存储空间(256B的的RAM和和128B的特殊功能的特殊功能寄存器)、片外数据存储空间(寄存
34、器)、片外数据存储空间(64KB)、片)、片内和片外统一编址的程序存储空间内和片外统一编址的程序存储空间(64KB)不同类型的存储空间,有各自的寻址方式不同类型的存储空间,有各自的寻址方式和访问指令和访问指令。2.3.1 程序存储器结构程序存储器结构一、程序存储器结构一、程序存储器结构51基本型片内有基本型片内有4KB的的Flash ROM,地,地址为址为0000H0FFFH,片外最多可以扩展,片外最多可以扩展60KB,地址为,地址为1000HFFFFH。增强型片内有增强型片内有8KB的的Flash ROM,地址,地址为为0000H1FFFH,片外最多可以扩展,片外最多可以扩展56KB,地址为
35、,地址为2000HFFFFH,片内外是,片内外是统一编址的。统一编址的。程序存储器空间的配置如图程序存储器空间的配置如图2-7所示所示2.3.1 程序存储器结构程序存储器结构图图2-7 MCS-51单片机程序存储空间的配置单片机程序存储空间的配置片片 外外ROM片片 内内ROMEA=1片片 外外ROMEA=00000H0FFFH1000HFFFFH(a)片内有)片内有4KB的的ROM (b)片内有)片内有8KB的的ROM片片 外外ROM片片 内内ROMEA=1片片 外外ROMEA=00000H1FFFH2000HFFFFH2.3.1 程序存储器结构程序存储器结构单片机在执行指令时,单片机在执行
36、指令时,对于低地址部分,对于低地址部分,究竟是从究竟是从片内程序存储器片内程序存储器取指令取指令,还是从片,还是从片外程序存储器取指令?外程序存储器取指令?决定于程序存储器选择引脚决定于程序存储器选择引脚EA的电平:的电平:EA接低电平,读片外程序存储器接低电平,读片外程序存储器EA接高电平,接高电平,CPU从片内程序存储从片内程序存储器取指令。器取指令。当取指令的地址大于片内存储器的最大地当取指令的地址大于片内存储器的最大地址时,址时,CPU自动转到片外程序存储器取指令自动转到片外程序存储器取指令。2.3.1 程序存储器结构程序存储器结构二、程序存储器的专用区域二、程序存储器的专用区域用作复
37、位和中断入口用作复位和中断入口表表2-3 ROM中专用存储区域中专用存储区域存储单元存储单元应应 用用0000H0002H复位后引导程序地址复位后引导程序地址0003H000AH外中断外中断0000BH0012H定时器定时器0中断中断0013H001AH外中断外中断1001BH0022H定时器定时器1中断中断0023H002AH串行口中断串行口中断002BH0032H定时器定时器2中断(增强型机)中断(增强型机)2.3.1 程序存储器结构程序存储器结构中断向量:中断向量:即中断入口地址。即中断入口地址。如下表如下表注意区分:注意区分:中断入口地址、中断入口地址、中断服务程中断服务程序入口地址序
38、入口地址、中断服务程序。、中断服务程序。表表2-4 中断向量表中断向量表中中 断断 源源中断入口地址中断入口地址外中断外中断00003H定时器定时器0中断中断000BH外中断外中断10013H定时器定时器1中断中断001BH串行口中断串行口中断0023H定时器定时器2中断(增强型机)中断(增强型机)002BH2.3.1 程序存储器结构程序存储器结构C语言编程所考虑的问题语言编程所考虑的问题如果用如果用C语言编写程序,不需要考虑语言编写程序,不需要考虑以上这些问题,即以上这些问题,即不用考虑引导程序问不用考虑引导程序问题题,中断入口与跳转问题中断入口与跳转问题,这些问题均,这些问题均由编译系统安
39、排好。由编译系统安排好。main()函数起到引导程序的作用函数起到引导程序的作用。对于中断处理,只要按照格式编写中对于中断处理,只要按照格式编写中断处理函数即可断处理函数即可(见第(见第4章)。章)。2.3.2 片内数据存储器结构片内数据存储器结构片内数据存储器按照寻址方式,可以分片内数据存储器按照寻址方式,可以分为三个部分为三个部分:低:低128字节数据区,高字节数据区,高128字节字节数据区,特殊功能寄存器区。如下图所示。数据区,特殊功能寄存器区。如下图所示。低低128B RAMdata区区特殊功能特殊功能寄存器寄存器80HFFH00H7FH(a)89C51片内片内RAM低低128BRAM
40、data区区高高128BRAMidata区区特殊功能特殊功能寄存器寄存器00H7FH80HFFH80HFFH(b)增强型单片机片内)增强型单片机片内RAM2.3.2 片内数据存储器结构片内数据存储器结构一、低一、低128字节字节RAM地址范围:地址范围:00H7FH,128字节字节应用特点:应用特点:有多种用途、且使用最频繁有多种用途、且使用最频繁功能作用:功能作用:分为三个区域,分为三个区域,即工作寄存即工作寄存器区、位寻找区、通用数据区。器区、位寻找区、通用数据区。寻址方式:寻址方式:直接、间接、位寻址直接、间接、位寻址低低128字节字节RAM的配置如图的配置如图2-9所示。所示。7F30
41、堆栈和堆栈和数据缓存数据缓存通通用用数数据据区区2F20位地址为位地址为00H7FH(128位位)位位寻寻址址区区1F18R0、R1R7(第(第3组)组)工工1710R0、R1R7(第(第2组)组)作作寄寄0F08R0、R1R7(第(第1组)组)存存器器0700R0、R1R7(第(第0组)组)区区图图2-9 低低128字节字节RAM区区2.3.2 片内数据存储器结构片内数据存储器结构1、工作寄存器区、工作寄存器区范围:范围:地址从地址从00H到到1FH,共,共32字节。字节。分分4个组:个组:第第0组、第组、第1组、第组、第2组、第组、第3组组工作寄存器名:工作寄存器名:R0、R1R7。不同的
42、组对应的不同的组对应的8个寄存器的地址不同,个寄存器的地址不同,如表如表2-1所示。所示。工作寄存器组的选择:工作寄存器组的选择:决定于程序状态字决定于程序状态字PSW的的RS1和和RS0位位。见表。见表2-1。C语言下选寄存器组:语言下选寄存器组:在定义函数时,通在定义函数时,通过过使用关键字使用关键字“using”来选择来选择(如如using m)。2.3.2 片内数据存储器结构片内数据存储器结构2、位寻址区、位寻址区范围:范围:字节地址从字节地址从20H到到2FH,16字节。字节。位地址:位地址:00H到到7FH,128位位。用途:用途:既可以做位操作,也可以字节操既可以做位操作,也可以
43、字节操作。作。C语言编程:语言编程:用关键字用关键字“bit”定义的位变定义的位变量量在该区域;在该区域;用关键字用关键字“bdata”将一般变量将一般变量定义在该区域定义在该区域,并且定义的变量还可以进行,并且定义的变量还可以进行位寻址。位寻址。2.3.2 片内数据存储器结构片内数据存储器结构3、通用数据区、通用数据区范围:范围:地址从地址从30H到到7FH,共,共80字节。字节。用途:用途:用于堆栈、存放数据、存放程序运用于堆栈、存放数据、存放程序运行时的中间结果等行时的中间结果等。4、寻址方式、寻址方式直接、间接、位寻址方式访问直接、间接、位寻址方式访问直接、间接范围:直接、间接范围:字
44、节地址从字节地址从00H到到7FH位寻址范围:位寻址范围:字节地址从字节地址从20H到到2FH,16字节;位地址字节;位地址00H到到7FH、128位位2.3.2 片内数据存储器结构片内数据存储器结构二、高二、高128字节字节RAM地址范围:地址范围:80HFFH,128字节字节用途:用途:与低与低128字节中的字节中的30H到到7FH完全完全一样,一样,用于堆栈、存放程序运行时的数据和用于堆栈、存放程序运行时的数据和中间结果等中间结果等。寻址方式:寻址方式:间接访问间接访问。C语言编程:语言编程:使用关键字使用关键字“idata”定义变量定义变量 2.3.2 片内数据存储器结构片内数据存储器
45、结构三、特殊功能寄存器(三、特殊功能寄存器(SFR)也称为也称为专用寄存器专用寄存器,是单片机中最重要,是单片机中最重要的部分。的部分。地址范围:地址范围:80HFFH,128字节字节功能作用:功能作用:控制单片机各个部件的运行控制单片机各个部件的运行反映各部件的运行状态反映各部件的运行状态存放数据或地址存放数据或地址寻址方式:寻址方式:直接访问直接访问2.3.2 片内数据存储器结构片内数据存储器结构1、具体特殊功能寄存器具体特殊功能寄存器SFR的数量:的数量:基本型只有基本型只有21个,增强型有个,增强型有27个;分别有个;分别有11个、个、12个可以按位操作个可以按位操作。(1)与)与CP
46、U相关的相关的(7个)个)PWS*:程序状态寄存器:程序状态寄存器A*:累加器:累加器B*:辅助运算寄存器:辅助运算寄存器SP:堆栈指针:堆栈指针PCON:电源控制寄存器:电源控制寄存器DPL、DPH:数据指针的低字节、高字节:数据指针的低字节、高字节2.3.2 片内数据存储器结构片内数据存储器结构(2)与定时器相关的)与定时器相关的(12个)个)TMOD:模式寄存器:模式寄存器TCON*:控制寄存器:控制寄存器TL0、TH0:T0低低8位、高位、高8位计数器位计数器TL1、TH1:T1低低8位、高位、高8位计数器位计数器T2MOD:T2模式寄存器模式寄存器T2CON*:T2控制寄存器控制寄存
47、器TL2、TH2:T2低低8位、高位、高8位计数器位计数器RCAP2L、RCAP2H:T2捕获寄存器捕获寄存器2.3.2 片内数据存储器结构片内数据存储器结构(3)与中断相关的)与中断相关的(2个)个)IE*:中断允许(控制)寄存器:中断允许(控制)寄存器IP*:中断优先级寄存器:中断优先级寄存器(4)与串行口相关的)与串行口相关的(2个)个)SCON*:串行口控制寄存器:串行口控制寄存器SBUF:串行口数据缓冲寄存器,:串行口数据缓冲寄存器,2个个(5)与)与I/O口相关的口相关的(4个)个)P0*、P1*、P2*、P3*4个并行口映射寄存器个并行口映射寄存器2.3.2 片内数据存储器结构片
48、内数据存储器结构2、一些最重要的寄存器、一些最重要的寄存器在表在表2-5中有格式的特殊功能寄存器最重中有格式的特殊功能寄存器最重要,它们是(要,它们是(9个):个):PSW*、IE*、IP*、TCON*、TMODPCON、SCON*、T2CON*、T2MOD应用单片机,主要就是掌握这应用单片机,主要就是掌握这9个有格式个有格式的特殊功能寄存器,对基本型仅有的特殊功能寄存器,对基本型仅有7个。个。2.3.2 片内数据存储器结构片内数据存储器结构3、特殊功能寄存器在、特殊功能寄存器在C语言中的表示语言中的表示这些特殊功能寄存器及各位位名在汇编这些特殊功能寄存器及各位位名在汇编语言中能够识别,但在语
49、言中能够识别,但在C语言中并不识别。语言中并不识别。为了在为了在C语言中使用,必须先做定义语言中使用,必须先做定义,它,它们多数在们多数在“reg51.h”、“reg52.h”等头文件等头文件做了定义。做了定义。但有一些未做定义,如但有一些未做定义,如4个并行口个并行口P0P3各位,累加器各位,累加器A,寄存器,寄存器B等,在使用时需等,在使用时需要用户定义。要用户定义。2.3.3 片外数据存储器结构片外数据存储器结构地址范围:地址范围:0000HFFFFH容量:容量:共共64KB访问指令:访问指令:“MOVX”(片内用(片内用MOV)使用使用“MOVX”指令指令对片外对片外RAM进行读进行读
50、/写操作时,写操作时,会自动产生读会自动产生读/写控制信号写控制信号RD和和WR,作用于片外,作用于片外RAM实现读实现读/写操作。写操作。2.3.3 片外数据存储器结构片外数据存储器结构片外片外RAM的用途:的用途:(1)没有特别的用途)没有特别的用途,不像片内,不像片内RAM,不划分区域。不划分区域。(2)片外)片外RAM做通用做通用RAM使用使用,主要,主要存放大量采集的或接收的数据、运算的中间存放大量采集的或接收的数据、运算的中间数据、最后结果、用作堆栈等。数据、最后结果、用作堆栈等。C语言编程:语言编程:使用关键字使用关键字“xdata”或或“pdata”将变量、数组、堆栈定义到片外
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。