《MC51单片机的硬件结构.ppt》由会员分享,可在线阅读,更多相关《MC51单片机的硬件结构.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 由该任务引出:由该任务引出:1.单片机如何运行程序?单片机如何运行程序?2.单片机的软件及数据如何存放?单片机的软件及数据如何存放?3.单片机程序运行的结果如何送给发光二极管?单片机程序运行的结果如何送给发光二极管?4.怎样保证怎样保证CPU工作工作 ?5.发光二极管为何按一定频率闪烁?发光二极管为何按一定频率闪烁? 2.1 MCS-51MCS-51系列单片机概述系列单片机概述 2.1 MCS - 51系列单片机的基本结构系列单片机的基本结构单片机和其他微机一样,也拥有一个中央处理单片机和其他微机一样,也拥有一个中央处理器(器(CPU)。)。(单片机通过(单片机通过I/O口与外设打交道,单片
2、机的程口与外设打交道,单片机的程序与数据保存在存储器中。)序与数据保存在存储器中。) 它通过单片机的内部总线,将单片机内部的各个部分:它通过单片机的内部总线,将单片机内部的各个部分:程序存储器程序存储器(ROM)、数据存储器、数据存储器(RAM)、定时、定时/计数器、并行计数器、并行接口、串行接口和中断系统等联系在一起接口、串行接口和中断系统等联系在一起 。内部总线有三种内部总线有三种 数据总线:专门用来传送数据信息数据总线:专门用来传送数据信息 。地址总线:专门用来传送地址信息,选中各操作单元。地址总线:专门用来传送地址信息,选中各操作单元。 控制总线:专门用来传送控制总线:专门用来传送CP
3、U各种控制命令,以便各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。统一指挥协调工作。完成程序所要执行的各种功能。 CPU执行程序一般包括两个主要过程执行程序一般包括两个主要过程 第一,就是从程序存储器中取出指令,指令的地址由第一,就是从程序存储器中取出指令,指令的地址由PC指针提供。指针提供。 第二,就是执指过程,取出的指令代码首先被送到第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从而实现指令的各种功能。种电信号,从而实现指令的各种功能。 执行执行 取指令
4、取指令 分析分析 2.1 MCS - 51 MCS - 51系列单片机的基本结构系列单片机的基本结构 单片机是一个大规模集成电路芯片,其上集成有CPU、存储器、I/O口(串行口、并行口)、其它辅助电路(如中断系统,定时/计数器,振荡电路及时钟电路等)。 其基本结构框图如下: 缓冲器B寄存器SPPSWOSCALEPCONSCONTMODTCONTH0TL0TH1TL1TXDSBUFRXDSBUFIEIP中断、串行口和定时器程序地址寄存器PC增1PCDPTRP1锁存器P1驱动器 P3锁存器P3驱动器 P0驱动器RAM地址寄存器128BRAM4kBROMP0锁存器定时控制指令译码器指令寄存器 ACC
5、 PSENALEEARESETTMP1TMP2VCCVSSP0.0P0.7P2.0P2.7P1.0P1.7P3.0P3.7XTAL1XTAL2ALU 由定时和控制部件构成的控制器,包括定时控制逻辑、指令寄存器、指令译码器、数据地址指针DPTR、程序计数器PC、堆栈指针SP、RAM地址寄存器以及16位地址缓冲器等。运算器(ALU、专用寄存器) MCS - 51系列单片机的基本结构图系列单片机的基本结构图 CPURAMROM中断系统中断系统串行口串行口并行口并行口定时计数器定时计数器振荡电路振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T1 MCS - 51
6、系列单片机的基本结构图系列单片机的基本结构图 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1CPURAMROM中断系统中断系统串行口串行口并行口并行口定时计数器定时计数器振荡电路振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T11、RAM被称为随机被称为随机读写存储器。读写存储器。2、用于存放数据、用于存放数据 。3、具有易失性:芯、具有易失性:芯片掉电后,其内的片掉电后,其内的信息消失。信息消失。 MCS - 51系列单片机的基本结构图系列单片机的基本结构图 T0 T1CPURAMROM中断系统中断系统串行口串行口并行口并行口定
7、时计数器定时计数器振荡电路振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T11、 ROM被称为只被称为只读存储器。读存储器。2、用于存放程序。、用于存放程序。3、具有非易失性:、具有非易失性:掉电后其内的信息掉电后其内的信息依然存在。依然存在。 运算器运算器 最终结果最终结果 数数 中间结果中间结果/ 据据 最后结果最后结果 原始数据原始数据 与程序与程序 最后最后 结果结果 程程 序序计算机系统的硬件组成框图计算机系统的硬件组成框图存储器存储器控制器控制器输出设备输出设备输入设备输入设备 DB CPU AB CB 存储器存储器 I/O口口w 微机的结构
8、框图微机的结构框图 80C51单片机的内部结构单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3ALU2.2 中央处理器中央处理器CPUCPU 80C51单片机的内部结构单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3ALU算术逻辑运算部件算术逻辑运算部件主要用来完成数据的算术和逻主要用来完成数据的算术和逻辑运算。辑运算。ALU有有2个
9、输入端和个输入端和2个输出端,其中一个输出端,其中一端接至累加器,接收由累加器送来的一个操作数;端接至累加器,接收由累加器送来的一个操作数;另一端接收另一端接收TMP的第二个操作数。参加运算的操的第二个操作数。参加运算的操作数在作数在ALU中进行规定的操作运算,运算结束后,中进行规定的操作运算,运算结束后,一方面将结果送至累加器,同时将操作结果的特一方面将结果送至累加器,同时将操作结果的特征状态送标志寄存器。征状态送标志寄存器。 89C51单片机的内部结构单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSE
10、N RST ALE EAP0P1P2P3ALU1、16位寄存器位寄存器2、存放下一条将要执行的指令地、存放下一条将要执行的指令地址址.程序中的指令是按照顺序存放程序中的指令是按照顺序存放在存储器中的某个连续区域在存储器中的某个连续区域.每条每条指令都有自己的地址指令都有自己的地址,CPU根据根据PC中的指令地址从存储器中取出将中的指令地址从存储器中取出将要执行的指令要执行的指令.3、具有、具有自动加自动加1 1功能功能,从而指向下从而指向下一条将要执行的指令地址一条将要执行的指令地址.4、PCPC的值可以修改,的值可以修改,一般程序是一般程序是按顺序执行指令的按顺序执行指令的.若改变了的若改变
11、了的PC的值的值,则程序将不再按顺序执行。则程序将不再按顺序执行。 80C51单片机的内部结构单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3IRIR:用来存放当前正在执行的指令:用来存放当前正在执行的指令代码代码 。IDID:用来对指令代码进行分析、译用来对指令代码进行分析、译码,根据指令译码的结果,输出相码,根据指令译码的结果,输出相应的控制信号。应的控制信号。 PLAPLA:产生出各种操作电位、不同产生出各种操作电位、不同节拍的信号、时序脉冲等执行此条节拍的
12、信号、时序脉冲等执行此条命令所需的全部控制信号命令所需的全部控制信号 。 80C51单片机的内部结构单片机的内部结构 X1X2 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器位寄存器2、累加器是一个特殊的寄存器,它、累加器是一个特殊的寄存器,它的字长和微处理器的字长相同,累的字长和微处理器的字长相同,累加器具有输入输出和移位功能,加器具有输入输出和移位功能,微处理器采用累加器结构可以简化微处理器采用累加器结构可以简化某些逻辑运算。某些逻
13、辑运算。3、由于所有运算的数据都要通过累、由于所有运算的数据都要通过累加器,故累加器在微处理器中占有加器,故累加器在微处理器中占有很重要的位置。很重要的位置。ALU 80C51单片机的内部结构单片机的内部结构 X1X2 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3ALU 1、8位寄存器位寄存器2、在进行乘除法运算时,存、在进行乘除法运算时,存放参与运算的一个操作数放参与运算的一个操作数3、除此之外,作为一般工作、除此之外,作为一般工作寄存器使用寄存
14、器使用 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 1、PSW称为程序状态字寄存器,是一个称为程序状态字寄存器,是一个8位寄存器。位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALUATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。、程序状态字寄存器。8位寄存器。位寄存器。2、D7
15、 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALU Cy(PSW.7)进位标志位。当运算结果产生进位时, Cy =1;当运算结果没有产生进位时, Cy =0。ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。、程序状态字寄存器。8位寄存器。位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALUAC(PSW.6)辅助进位(或称半进位)标志。 当运算结果的D3
16、向D4产生进位时, AC =1;当运算结果的D3向D4没有产生进位时, AC =0。ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。、程序状态字寄存器。8位寄存器。位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALUOV(PSW.2)溢出标志位。 当运算结果产生溢出时, OV =1;当运算结果没有产生溢出时, OV =0。ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断
17、串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。、程序状态字寄存器。8位寄存器。位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALUP(PSW.0)奇偶标志位。当A中1的个数为奇数时, P =1;当A中1的个数为偶数时, P =0。 80C51单片机的内部结构单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、SP称为堆栈指针,称为堆
18、栈指针,8位寄存器位寄存器2、 SP用来存放堆栈栈顶的地址。用来存放堆栈栈顶的地址。先加(先加(SP+1SP+1)后压)后压( (数据数据) ),先弹(数据)后减(,先弹(数据)后减(SP-1SP-1)。)。 89H 80H 70H 50H栈底栈底SPSP入栈过程入栈过程PUSH ACC出栈过程出栈过程POP ACCSP89HSP 89HAA 89H 80H 70H 50H栈底栈底 80C51单片机的内部结构单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3
19、1、8位寄存器位寄存器2、 SP用来存放堆栈栈顶的地址。用来存放堆栈栈顶的地址。1、堆栈是在内、堆栈是在内RAM区专门开辟出来区专门开辟出来的按照的按照“先进后出先进后出”原则进行数据存原则进行数据存取的一块连续的存储区域。取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,数据时,二者重叠,SP指向最下端指向最下端(栈底),向堆栈推入数据后,栈顶(栈底),向堆栈推入数据后,栈顶向上生长,向上生长,SP也向上生长。也向上生长。3、堆栈栈顶:最后推入堆栈的数据、堆栈栈顶:最后推入堆栈的数据所在的存储单元所在的存储单元4、SP用来指示堆栈所处的
20、位置用来指示堆栈所处的位置, 在在进行操作之前进行操作之前, 先用指令给先用指令给SP赋值赋值, 以规定栈区在以规定栈区在RAM区的起始地址区的起始地址(栈底层)。当数据推入栈区后(栈底层)。当数据推入栈区后, SP的值也自动随之变化。的值也自动随之变化。63H64H65H66H67H栈底栈底 80C51单片机的内部结构单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器位寄存器2、 SP用来存放堆栈栈顶的地址。用来存放堆栈栈顶的地址。1、堆栈是
21、在内、堆栈是在内RAM区专门开辟出来区专门开辟出来的按照的按照“先进后出先进后出”原则进行数据存原则进行数据存取的一块连续的存储区域。取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,数据时,二者重叠,SP指向最下端指向最下端(栈底),向堆栈推入数据后,栈顶(栈底),向堆栈推入数据后,栈顶向上生长,向上生长,SP也向上生长。也向上生长。3、堆栈栈顶:最后推入堆栈的数据、堆栈栈顶:最后推入堆栈的数据所在的存储单元所在的存储单元4、SP用来指示堆栈所处的位置用来指示堆栈所处的位置, 在在进行操作之前进行操作之前, 先用指令给先用指令给SP赋值
22、赋值, 以规定栈区在以规定栈区在RAM区的起始地址区的起始地址(栈底层)。当数据推入栈区后(栈底层)。当数据推入栈区后, SP的值也自动随之变化。的值也自动随之变化。63H64H65H66H67H栈底栈底12H46H73HSP=63HSP=64HSP=66HSP=65H 80C51单片机的内部结构单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器位寄存器2、 SP用来存放堆栈栈顶的地址。用来存放堆栈栈顶的地址。1、堆栈是在内、堆栈是在内RAM区
23、专门开辟出来区专门开辟出来的按照的按照“先进后出先进后出”原则进行数据存原则进行数据存取的一块连续的存储区域。取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,数据时,二者重叠,SP指向最下端指向最下端(栈底),向堆栈推入数据后,栈顶(栈底),向堆栈推入数据后,栈顶向上生长,向上生长,SP也向上生长。也向上生长。3、堆栈栈顶:最后推入堆栈的数据、堆栈栈顶:最后推入堆栈的数据所在的存储单元所在的存储单元4、SP用来指示堆栈所处的位置用来指示堆栈所处的位置, 在在进行操作之前进行操作之前, 先用指令给先用指令给SP赋值赋值, 以规定栈区在以规
24、定栈区在RAM区的起始地址区的起始地址(栈底层)。当数据推入栈区后(栈底层)。当数据推入栈区后, SP的值也自动随之变化。的值也自动随之变化。63H64H65H66H67H栈底栈底12HSP=64HSP=66HSP=65H73H73H46H46H 80C51单片机的内部结构单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器位寄存器2、 SP用来存放堆栈栈顶的地址。用来存放堆栈栈顶的地址。1、堆栈是在内、堆栈是在内RAM区专门开辟出来区专门开辟出
25、来的按照的按照“先进后出先进后出”原则进行数据存原则进行数据存取的一块连续的存储区域。取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,数据时,二者重叠,SP指向最下端指向最下端(栈底),向堆栈推入数据后,栈顶(栈底),向堆栈推入数据后,栈顶向上生长,向上生长,SP也向上生长。也向上生长。3、堆栈栈顶:最后推入堆栈的数据、堆栈栈顶:最后推入堆栈的数据所在的存储单元所在的存储单元4、SP用来指示堆栈所处的位置用来指示堆栈所处的位置, 在在进行操作之前进行操作之前, 先用指令给先用指令给SP赋值赋值, 以规定栈区在以规定栈区在RAM区的起始地
26、址区的起始地址(栈底层)。当数据推入栈区后(栈底层)。当数据推入栈区后, SP的值也自动随之变化。的值也自动随之变化。63H64H65H66H67H栈底栈底SP=64HSP=66HSP=65H73H73H46H46H12H 80C51单片机的内部结构单片机的内部结构 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P31、数据指针、数据指针DPTR是一个是一个 16 位的专用寄存位的专用寄存器器, 其高位字节寄存器用其高位字节寄存器用DPH表示表示,低位字
27、节低位字节寄存器用寄存器用DPL表示。表示。2、既可作为一个、既可作为一个 16 位寄存器位寄存器DPTR来处理来处理, 也可作为两个独立的也可作为两个独立的 8 位寄存器位寄存器DPH和和DPL来处理。来处理。 3、 DPTR 主要用来存放主要用来存放 16位地址,当对位地址,当对 64 KB外部数据存储器空间寻址时外部数据存储器空间寻址时, 作为间作为间址寄存器用。在访问程序存储器时址寄存器用。在访问程序存储器时, 用作基用作基址寄存器。址寄存器。DPTR0003H 34H ATMPPSWBSPDPTR0003HRAMPCROM定时定时中断中断串口串口ALU读写控制读写控制输输入入输输出出
28、电电路路地地址址译译码码器器RAM芯片芯片单单片片机机DBCBAB0003HDPTR0003HWR 34H 80C51单片机的内部结构单片机的内部结构 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时定时中断中断串口串口IRPLAID振振荡荡X1X2 PSEN RST ALE EAP0P1P2P3 80C51内有的内有的4K的的ROM; 不够用时可以外扩不够用时可以外扩ROM; 内内ROM+外外ROM 64K 从前面的任务中,我们还看到要控制灯闪烁,必须编制从前面的任务中,我们还看到要控制灯闪烁,必须编制程序,还必须将控制灯的相关数据预先存储,那么
29、,在单片程序,还必须将控制灯的相关数据预先存储,那么,在单片机中的程序和数据是怎样保存的?机中的程序和数据是怎样保存的? 原来,在单片机内部有程序存储器和数据存储器,如果原来,在单片机内部有程序存储器和数据存储器,如果内部程序存储器和数据存储器的容量不够的话,还可以在单内部程序存储器和数据存储器的容量不够的话,还可以在单片机外部为它扩展,最大我们可以将程序存储器空间总容量片机外部为它扩展,最大我们可以将程序存储器空间总容量扩大到扩大到64K,将数据存储器在片外再单独扩展,将数据存储器在片外再单独扩展64K,这样,这样,以以89S51为例,数据存储器的总容量可达为例,数据存储器的总容量可达64K
30、(片外)(片外)128字节(片内)。字节(片内)。 MCS-51单片机的存储器组织结构,采用典型的哈佛结构,单片机的存储器组织结构,采用典型的哈佛结构,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,包括片内数据存储器与片外数据存储器都拥有自己独立的寻包括片内数据存储器与片外数据存储器都拥有自己独立的寻址系统。址系统。 2.3 存储器存储器 H00000 00 08 80 0H HRAM内内部部0 00 0F FF FH H能寄存器特殊功0 0F FF FF FF FH H)(外部外部K64RAM 数据存储器数据存储器H00000 0
31、0 07 7F FH H0 0F FF FF FH HH0000 程序存储器程序存储器1EA内部内部ROM= =0 0F FF FF FF FH H1000H1000H外外部部ROM0 0F FF FF FH HH00000EA外部外部ROM= =程序存储器程序存储器2.3.2 2.3.2 内部数据存储器内部数据存储器2.2.3 2.2.3 特殊功能寄存器特殊功能寄存器2.3 存储器存储器 2.3.1 用途:用途: 存放程序及程序运行时所需的常数。存放程序及程序运行时所需的常数。寻址范围:寻址范围:00000000H FFFFH H FFFFH 容量容量6464KBKB,即地址长度:即地址长度
32、:1616位位 1EA = ,寻址内部寻址内部ROM;说明说明:当当PC值超过片内值超过片内ROM容量时会自动转向容量时会自动转向 外部存储器外部存储器空间。空间。0EA= ,寻址外部寻址外部ROM。 EA说明说明:8031单片机单片机必须接低电平。必须接低电平。程序存储器的分类程序存储器的分类 (1 1)Mask ROM Mask ROM 型:掩膜型:掩膜ROMROM,如,如8051ROM8051ROM(2 2)OTPROMOTPROM型:一次可编程型:一次可编程ROMROM(3 3)EPROMEPROM型:可擦除可编程型:可擦除可编程ROMROM,如,如8751ROM8751ROM(4 4
33、)E E2 2PROMPROM型:电可擦除可编程型:电可擦除可编程ROMROM(5 5)Flash ROMFlash ROM型:闪速只读存储器,如型:闪速只读存储器,如ATMELATMEL公公司的司的AT89AT89系列系列(89C51)(89C51)MCS - 51系列单片机的分类系列单片机的分类 常用的MCS51系列单片机有2种类型的产品:8051/8751/89C51和8031。它们的结构基本相同,其主要差别反映在存储器的配置上的不同:8051内内设有设有4KB的的掩膜ROM;8751内设有4KB的EPROM;89C51内设有内设有4KB的的Flash ROM ;8031内没有内没有RO
34、M。 MCS - 51 MCS - 51 系列单片机配置一览表系列单片机配置一览表3 3)程序存储器中)程序存储器中6 6个具有特殊含义的单元个具有特殊含义的单元 0000H 系统复位,系统复位,PC指向此处;指向此处; 0003H 外部中断外部中断0入口入口 000BH T0溢出中断入口溢出中断入口 0013H 外中断外中断1入口入口 001BH T1溢出中断入口溢出中断入口 0023H 串口中断入口串口中断入口用途:用途:存放程序执行的中间结果和过程数据的存放程序执行的中间结果和过程数据的 。物理上分为两大区域:物理上分为两大区域: 00H 7FH即即128B用户用户RAM区。区。 80H
35、 FFH即特殊功能寄存器区。即特殊功能寄存器区。组组通通用用寄寄存存器器区区第第0组组通通用用寄寄存存器器区区第第1组组通通用用寄寄存存器器区区第第2组组通通用用寄寄存存器器区区第第3)(位位地地址址位位寻寻址址区区FH7H00区区用用户户RAMH00H08/H07H10/FH0H18/H17H20/FH1H30/FH2FH7R0、R1、R2、R3、R4、R5、R6、R7即可位寻址,又可字节寻址即可位寻址,又可字节寻址数据缓冲区、堆栈区、工作数据缓冲区、堆栈区、工作单元单元7FH 真正真正RAM区区00HMCS-51 单片机片内RAM的配置图FFH SFR区区80H MCS-51内有内有256
36、B的的RAM单元,其地址范围为单元,其地址范围为00HFFH,分,分为两大部分为两大部分: 低低 128 字节(字节(00H7FH)为真正的)为真正的RAM区区; 高高 128 字节(字节(80HFFH)为特殊功能寄存器区)为特殊功能寄存器区SFR。 7FH 真正真正RAM区区00HMCS-51 单片机片内RAM的配置图FFH SFR区区80H 89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 7FH 普通普通RAM区区30H2FH 位寻址区位寻址区20H
37、1FH 工作寄存器区工作寄存器区00H7FH 真正真正RAM区区00HMCS-51 单片机片内RAM的配置图FFH SFR区区80H 89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 7FH 普通普通RAM区区30H2FH 位寻址区位寻址区20H1FH 工作寄存器区工作寄存器区00H07H 0组组00H0FH 1组组08H17H 2组组10H1FH 3组组18H1、工作寄存器区、工作寄存器区 是指是指00H1FH区区, 共分共分4个组个组, 每组有每组有8
38、个单个单元元, 共共32个内部个内部RAM单元。单元。2、每次只能有、每次只能有1组作为工作寄组作为工作寄存器使用存器使用, 其它各组可以作为一其它各组可以作为一般的数据缓冲区使用。般的数据缓冲区使用。 3、作为工作寄存器使用的、作为工作寄存器使用的8个个单元,又称为单元,又称为R0R74、程序状态字、程序状态字PSW中的中的PSW.3(RS0)和)和PSW.4(RS1)两位)两位来选择哪一组作为工作寄存器来选择哪一组作为工作寄存器使用。使用。CPU通过软件修改通过软件修改PSW中中RS0和和RS1两位的状态两位的状态, 就可就可任选一个工作寄存器工作。任选一个工作寄存器工作。 RS1、 RS
39、0与片内工作寄存器组的对应关系与片内工作寄存器组的对应关系 RS1RS0寄存器组片内PAM地址通用寄存器名称000组00H07HR0R7011组08H0FHR0R7102组10H17HR0R7113组18H1FHR0R7工作寄存器和工作寄存器和RAM地址对照表地址对照表 7FH 真正真正RAM区区00HMCS-51 单片机片内RAM的配置下图 所示:FFH SFR区区80H7FH 普通普通RAM区区30H2FH 位寻址区位寻址区20H1FH 工作寄存器区工作寄存器区00H20H21H22H23H24H25H26H27H2FH1、位寻址区是指、位寻址区是指 20H2FH单元,共单元,共16个单元
40、。个单元。2、位寻址区的每、位寻址区的每1位都可位都可当作软件触发器当作软件触发器, 由程序直由程序直接进行位处理。接进行位处理。3、 位寻址区的位寻址区的 16个单元个单元(共计(共计128位)的每位)的每1位都位都有一个有一个8位表示的位地址位表示的位地址, 位地址范围为位地址范围为00H1FH。 如表所示如表所示。4、 同样同样, 位寻址的位寻址的RAM单单元也可以按字节操作作为元也可以按字节操作作为一般的数据缓冲一般的数据缓冲 区。区。 内部内部RAM中位地址表中位地址表 7FH 真正真正RAM区区00HMCS-51 单片机片内RAM的配置图FFH SFR区区80H 89C51内有25
41、6B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 1、高、高128B的的RAM单元中单元中有有21个单元可用,称为个单元可用,称为SFR。这。这21个个SFR分散在分散在高高128B的地址空间内,分的地址空间内,分别是别是A,B,PSW,SP,DPH,DPL,P0,P1,P2,P3,IP,IE,TCON,TMOD,TH0,TL0,TH1,TL1,SCON,SBUF,PCON。2、有些可以按位寻址。、有些可以按位寻址。3、特殊功能寄存器名称、特殊功能寄存器名称、 标识符、标识
42、符、 地址见表地址见表 特殊功能寄存器名称、特殊功能寄存器名称、 标识符、标识符、 地址一览表地址一览表 寄存器寄存器 位地址位地址/ /位定义位定义 地址地址 F7F7 F6F6 F5F5 F4F4 F3F3 F2F2 F1F1 F0F0 B B F0HF0H E7E7 E6E6 E5E5 E4E4 E3E3 E2E2 E1E1 E0E0 ACCACC E0E0 D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0 PSWPSW CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV / / P P D0HD0H BFBF BEBE BDBD BCBC
43、BBBB BABA B9B9 B8B8 IPIP B8HB8H B7B7 B6B6 B5B5 B4B4 B3B3 B2B2 B1B1 B0B0 P3P3 P3.7P3.7 P3.6P3.6 P3.5P3.5 P3.P3.4 4 P3.3P3.3 P3.2P3.2 P3.1P3.1 P3.0P3.0 B0HB0H IEIE A8HA8H A7A7 A6A6 A5A5 A4A4 A3A3 A2A2 A1A1 A0A0 P2P2 P2.7P2.7 P2.6P2.6 P2.5P2.5 P2.4P2.4 P2.3P2.3 P2.2P2.2 P2.1P2.1 P2.0P2.0 A0HA0H SBUFSBU
44、F 9999H H 位序位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志位标志CYACF0RS1RS0OV-PCY 进位进位/借位标志;位累加器。借位标志;位累加器。AC 辅助进辅助进/借位标志;用于十进制调整。借位标志;用于十进制调整。F0 用户定义标志位;软件置位用户定义标志位;软件置位/清零。清零。OV 溢出标志;溢出标志; 硬件置位硬件置位/清零。清零。P 奇偶标志;奇偶标志;A中中1的个数为奇数的个数为奇数 P = 1;否则否则 P = 0。 数据指针为数据指针为16位寄存器,编程时,既可以按位寄存器,编程时,既可以按16位寄存位寄存器来使用
45、,也可以按两个器来使用,也可以按两个8位寄存器来使用,即高位字节位寄存器来使用,即高位字节寄存器寄存器DPH和低位字节和低位字节DPL。 DPTR主要是用来保存主要是用来保存16位地址,当对位地址,当对64kB外部数据存外部数据存储器储器寻址时,可作为间址寄存器使用,此时,使用如下两寻址时,可作为间址寄存器使用,此时,使用如下两条指令:条指令: MOVX A, DPTR MOVX DPTR, A 在访问程序存储器时,在访问程序存储器时,DPTR可用来作基址寄存器,可用来作基址寄存器,采用基址采用基址+变址寻址方式访问程序存储器,这条指令常用变址寻址方式访问程序存储器,这条指令常用于读取程序存储
46、器内的表格数据。于读取程序存储器内的表格数据。 MOVC A, A+DPTR指明栈顶元指明栈顶元素的地址,素的地址,8位,可软件位,可软件设置初值,设置初值,复位时复位时SP = 07H。 I/O口寄存器口寄存器P0、P1、P2和和P3分别是分别是MCS-51单片机的四单片机的四组组I/O口锁存器。口锁存器。 MCS-51单片机中有两个单片机中有两个16位的定时位的定时/计数器计数器T0和和T1,它,它们由四个们由四个8位寄存器组成的,两个位寄存器组成的,两个16位定时位定时/计数器却是完计数器却是完全独立的。我们可以单独对这四个寄存器进行寻址,但不全独立的。我们可以单独对这四个寄存器进行寻址
47、,但不能把能把T0和和T1当作当作16位寄存来使用。位寄存来使用。 TMOD寄存器是一个专用寄存器,用于控制两个定时寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,计数器的工作方式,TMOD可以用字节传送指令设置其内可以用字节传送指令设置其内容,但不能位寻址容,但不能位寻址 。 从刚才的任务中,我们看到发光二极管随着程序的运从刚才的任务中,我们看到发光二极管随着程序的运行,有规律的闪动,那么,现在我们来看看单片机是怎样行,有规律的闪动,那么,现在我们来看看单片机是怎样将程序中运行的结果送给发光二极管的。将程序中运行的结果送给发光二极管的。 原来,原来,MCS-51单片机上有单片机上有
48、4组组8位位I/O口:口:P0、P1、P2和和P3口,共有口,共有4个个8位双向位双向I/O口,共口,共32口线。每位均有自口线。每位均有自己的锁存器己的锁存器(SFR),输出驱动器和输入缓冲器。,输出驱动器和输入缓冲器。他们在单片机中,主要承担了和单片机外部设备打交道的他们在单片机中,主要承担了和单片机外部设备打交道的任务,下面我们分别介绍这几个任务,下面我们分别介绍这几个I/O口:口: 多路开关多路开关功能功能:用于控制选通I/O方式还是地址/数据输出方式1)方式控制方式控制:由内部控制信号产生输入锁存器输入锁存器两个输入缓冲器两个输入缓冲器(BUF1和BUF2)推拉式推拉式I/O驱动器驱
49、动器P0P0口位图内部结构口位图内部结构BUF2BUF1说明:说明:1 1、当控制信号为、当控制信号为0 0时,时,P0P0口做双口做双向向I/OI/O口,为漏极开路(三态口,为漏极开路(三态)2 2、控制信号为、控制信号为1 1时,时,P0P0口为地址口为地址/ /数据复用总线(用于口扩展数据复用总线(用于口扩展)Q QQ QD DC CVccVcc控制控制AD0AD0P0R1P0R1 P0R2P0R2D0D0P0WP0W图图1 1、P0P0口内部结构口内部结构读锁存器读锁存器读引脚读引脚锁存器锁存器内部总线内部总线写锁存器写锁存器地址地址/ /数据数据P0P0多路开关多路开关10一、一、P
50、0口作口作I/O口(写口(写Output):):CP 有效,有效,控制信号为控制信号为0时,时,V1管截止管截止,P0是对是对V2漏极开路输漏极开路输出,出,需要外接上拉电阻需要外接上拉电阻。D=1,V2截止,截止,P0.X1;D=0,V2导通,导通, P0.X0。二、二、P0口作口作I/O口(读口(读Input):):1、读引脚、读引脚(MOV C,P0.0)读引脚信号读引脚信号使使三态缓冲器三态缓冲器打开,数据输入打开,数据输入(注:注:P0口做口做I/O输入时,必须先向电路中的锁存器写入输入时,必须先向电路中的锁存器写入“1”,使使FET截止,否则截止,否则FET导通,导通,P0.X为为