MC51单片机的硬件结构汇编课件_第1页
MC51单片机的硬件结构汇编课件_第2页
MC51单片机的硬件结构汇编课件_第3页
MC51单片机的硬件结构汇编课件_第4页
MC51单片机的硬件结构汇编课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MC51单片机的硬件结构MC51单片机的硬件结构 硬件电路与工作原理 硬件电路 硬件电路与工作原理 硬件电路由该任务引出:1.单片机如何运行程序?2.单片机的软件及数据如何存放?3.单片机程序运行的结果如何送给发光二极管?4.怎样保证CPU工作 ?5.发光二极管为何按一定频率闪烁?由该任务引出:相关知识 2.1 MCS-51系列单片机概述 2.1 MCS - 51系列单片机的基本结构1.单片机如何运行程序?单片机和其他微机一样,也拥有一个中央处理器(CPU)。(单片机通过I/O口与外设打交道,单片机的程序与数据保存在存储器中。) 相关知识 2.1 MCS-51系列单片机概述 2.1 M 它通过

2、单片机的内部总线,将单片机内部的各个部分:程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等联系在一起 。内部总线有三种 数据总线:专门用来传送数据信息 。地址总线:专门用来传送地址信息,选中各操作单元。 控制总线:专门用来传送CPU各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。 它通过单片机的内部总线,将单片机内部的各个部分CPU执行程序一般包括两个主要过程 第一,就是从程序存储器中取出指令,指令的地址由PC指针提供。 第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从

3、而实现指令的各种功能。 执行 取指令 分析 CPU执行程序一般包括两个主要过程 第一,就是从程序存储器中 2.1 MCS - 51系列单片机的基本结构 单片机是一个大规模集成电路芯片,其上集成有CPU、存储器、I/O口(串行口、并行口)、其它辅助电路(如中断系统,定时/计数器,振荡电路及时钟电路等)。 其基本结构框图如下: 2.1 MCS - 51系列单片机的基本结构 ALU 由定时和控制部件构成的控制器,包括定时控制逻辑、指令寄存器、指令译码器、数据地址指针DPTR、程序计数器PC、堆栈指针SP、RAM地址寄存器以及16位地址缓冲器等。运算器(ALU、专用寄存器)ALU 由定时和控制部件构成

4、的控制器,包括定时控制逻辑、指令 MCS - 51系列单片机的基本结构图 CPURAMROM中断系统串行口并行口定时计数器振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T1计算机微机 CPURAMROM中断系统串行口并行口定时 MCS - 51系列单片机的基本结构图 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1返回CPURAMROM中断系统串行口并行口定时计数器振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T11、RAM被称为随机读写存储器。2、用于存放数据 。3、具有易失性:芯片掉电后,

5、其内的信息消失。 X1 X2 MCS - 51系列单片机的基本结构图 T0 T1CPURAMROM中断系统串行口并行口定时计数器振荡电路 X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1T0 T11、 ROM被称为只读存储器。2、用于存放程序。3、具有非易失性:掉电后其内的信息依然存在。 返回 T0 T1CPURAMROM运算器 最终结果 数 中间结果/ 据 最后结果 原始数据 与程序 最后 结果 程 序计算机系统的硬件组成框图存储器控制器输出设备输入设备单片机微机返回运算器 DB CPU AB CB 存储器 I/O口 微机的结构框图单片机计算机返回 80C51单片机的内

6、部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3ALU2.2 中央处理器CPU ATMPPSWBSPDPTRRAMPCROMP1P2P3P0 80C51单片机的内部结构 返回ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3ALU算术逻辑运算部件主要用来完成数据的算术和逻辑运算。ALU有2个输入端和2个输出端,其中一端接至累加器,接收由累加器送来的一个操作数;另一端接收TMP的第二个操作数。参加

7、运算的操作数在ALU中进行规定的操作运算,运算结束后,一方面将结果送至累加器,同时将操作结果的特征状态送标志寄存器。 返回ATMPPSWBSPDPTRRAMPCROMP1P2P3 89C51单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3ALU1、16位寄存器2、存放下一条将要执行的指令地址.程序中的指令是按照顺序存放在存储器中的某个连续区域.每条指令都有自己的地址,CPU根据PC中的指令地址从存储器中取出将要执行的指令.3、具有自动加1功能,从而指向下一条将要执行的指令地址.4

8、、PC的值可以修改,一般程序是按顺序执行指令的.若改变了的PC的值,则程序将不再按顺序执行。 返回ATMPPSWBSPDPTRRAMPCROMP1P2P3P0 80C51单片机的内部结构 ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3IR:用来存放当前正在执行的指令代码 。ID:用来对指令代码进行分析、译码,根据指令译码的结果,输出相应的控制信号。 PLA:产生出各种操作电位、不同节拍的信号、时序脉冲等执行此条命令所需的全部控制信号 。返回ATMPPSWBSPDPTRRAMPCROMP1P2P3

9、P0 80C51单片机的内部结构 X1X2 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器2、累加器是一个特殊的寄存器,它的字长和微处理器的字长相同,累加器具有输入输出和移位功能,微处理器采用累加器结构可以简化某些逻辑运算。3、由于所有运算的数据都要通过累加器,故累加器在微处理器中占有很重要的位置。ALU返回X1 PSEN RST ALE EAATMPPSWB 80C51单片机的内部结构 X1X2 PSEN RST ALE EAATMPPSWBSPDP

10、TRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3ALU 1、8位寄存器2、在进行乘除法运算时,存放参与运算的一个操作数3、除此之外,作为一般工作寄存器使用 返回X1 PSEN RST ALE EAATMPPSWBATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3 1、PSW称为程序状态字寄存器,是一个8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALU返回ATMP

11、PSWBSPDPTRRAMPCROMP1P2P3P0ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALU返回 Cy(PSW.7)进位标志位。当运算结果产生进位时, Cy =1;当运算结果没有产生进位时, Cy =0。ATMPPSWBSPDPTRRAMPCROMP1P2P3P0ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡

12、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向D4产生进位时, AC =1;当运算结果的D3向D4没有产生进位时, AC =0。返回ATMPPSWBSPDPTRRAMPCROMP1P2P3P0ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3 1、程序状态字寄存器。8位寄存器。2、D7

13、D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - PALUOV(PSW.2)溢出标志位。 当运算结果产生溢出时, OV =1;当运算结果没有产生溢出时, OV =0。返回ATMPPSWBSPDPTRRAMPCROMP1P2P3P0ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口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的个数为奇数

14、时, P =1;当A中1的个数为偶数时, P =0。返回ATMPPSWBSPDPTRRAMPCROMP1P2P3P0 80C51单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、SP称为堆栈指针,8位寄存器2、 SP用来存放堆栈栈顶的地址。返回X1ATMPPSWBSPDPTRRAMPCROMP1P2P3先加(SP+1)后压(数据),先弹(数据)后减(SP-1)。 89H 80H 70H 50H栈底SPSP入栈过程PUSH ACC出栈过程POP ACCSP89HSP 89

15、HAA 89H 80H 70H 50H栈底先加(SP+1)后压(数据),先弹(数据)后减(SP-1)。 80C51单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器2、 SP用来存放堆栈栈顶的地址。返回1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储单元4

16、、SP用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。63H64H65H66H67H栈底演示X1ATMPPSWBSPDPTRRAMPCROMP1P2P3 80C51单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器2、 SP用来存放堆栈栈顶的地址。返回1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和

17、栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储单元4、SP用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。63H64H65H66H67H栈底12H46H73HSP=63HSP=64HSP=66HSP=65H入栈X1ATMPPSWBSPDPTRRAMPCROMP1P2P3 80C51单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID

18、振荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器2、 SP用来存放堆栈栈顶的地址。返回1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储单元4、SP用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。63H64H65H66H67H栈底12HSP=64HSP=66HSP

19、=65H出栈73H73H46H46HX1ATMPPSWBSPDPTRRAMPCROMP1P2P3 80C51单片机的内部结构 X1X2ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、8位寄存器2、 SP用来存放堆栈栈顶的地址。返回1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储单元4、SP

20、用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。63H64H65H66H67H栈底SP=64HSP=66HSP=65H73H73H46H46H12HX1ATMPPSWBSPDPTRRAMPCROMP1P2P3 80C51单片机的内部结构 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P31、数据指针DPTR是一个 16 位的专用寄存器, 其高位字节寄存器用DPH表示,

21、低位字节寄存器用DPL表示。2、既可作为一个 16 位寄存器DPTR来处理, 也可作为两个独立的 8 位寄存器DPH和DPL来处理。 3、 DPTR 主要用来存放 16位地址,当对 64 KB外部数据存储器空间寻址时, 作为间址寄存器用。在访问程序存储器时, 用作基址寄存器。返回演示 PSEN RST ALE EAATMPPSWBSPDPTR0003H 34H ATMPPSWBSPDPTR0003HRAMPCROM定时中断串口返回ALU读写控制输入输出电路地址译码器RAM芯片单片机DBCBAB0003HDPTR0003HWR 34HDPTR 34H ATMPPSWBSPDPTRRAMP 80C

22、51单片机的内部结构 PSEN RST ALE EAATMPPSWBSPDPTRRAMPCROMP1P2P3P0定时中断串口IRPLAID振荡X1X2 PSEN RST ALE EAP0P1P2P3 80C51内有的4K的ROM; 不够用时可以外扩ROM; 内ROM+外ROM 64K返回 PSEN RST ALE EAATMPPSWBSP2.单片机的软件及数据如何存放? 从前面的任务中,我们还看到要控制灯闪烁,必须编制程序,还必须将控制灯的相关数据预先存储,那么,在单片机中的程序和数据是怎样保存的? 原来,在单片机内部有程序存储器和数据存储器,如果内部程序存储器和数据存储器的容量不够的话,还可

23、以在单片机外部为它扩展,最大我们可以将程序存储器空间总容量扩大到64K,将数据存储器在片外再单独扩展64K,这样,以89S51为例,数据存储器的总容量可达64K(片外)128字节(片内)。 MCS-51单片机的存储器组织结构,采用典型的哈佛结构,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,包括片内数据存储器与片外数据存储器都拥有自己独立的寻址系统。 2.3 存储器 2.单片机的软件及数据如何存放? 从前面的任务)(外部K64RAM 数据存储器MCS-51单片机存储器组织结构 程序存储器1EA内部ROM=外部ROM0EA外部ROM=返回)(外部K64RAM 数据存储器MCS-51单片机

24、存储器2.3.1 程序存储器2.3.2 内部数据存储器2.2.3 特殊功能寄存器2.3 存储器 返回2.3.1 程序存储器2.3.2 内部数据存储器2.2.3.1 程序存储器用途: 存放程序及程序运行时所需的常数。寻址范围:0000H FFFFH 容量64KB,即地址长度:16位 ,寻址内部ROM;说明:当PC值超过片内ROM容量时会自动转向 外部存储器空间。 ,寻址外部ROM。 说明:8031单片机必须接低电平。1)返回2.3.1 程序存储器用途: 存放程序及程序运行时所需的常2)程序存储器的分类 (1)Mask ROM 型:掩膜ROM,如8051ROM(2)OTPROM型:一次可编程ROM

25、(3)EPROM型:可擦除可编程ROM,如8751ROM(4)E2PROM型:电可擦除可编程ROM(5)Flash ROM型:闪速只读存储器,如ATMEL公司的AT89系列(89C51)返回2)程序存储器的分类 (1)Mask ROM 型:掩膜ROMMCS - 51系列单片机的分类 常用的MCS51系列单片机有2种类型的产品:8051/8751/89C51和8031。它们的结构基本相同,其主要差别反映在存储器的配置上的不同:8051内设有4KB的掩膜ROM;8751内设有4KB的EPROM;89C51内设有4KB的Flash ROM ;8031内没有ROM。 MCS - 51 系列单片机配置一

26、览表MCS - 51系列单片机的分类 3)程序存储器中6个具有特殊含义的单元 0000H 系统复位,PC指向此处; 0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入口 001BH T1溢出中断入口 0023H 串口中断入口返回3)程序存储器中6个具有特殊含义的单元 2.3.2 数据存储器用途:存放程序执行的中间结果和过程数据的 。物理上分为两大区域: 00H 7FH即128B用户RAM区。 80H FFH即特殊功能寄存器区。R0、R1、R2、R3、R4、R5、R6、R7即可位寻址,又可字节寻址数据缓冲区、堆栈区、工作单元返回2.3.2 数据存储器用途:存放程序执

27、行的中间结果和过程数据7FH 真正RAM区00HMCS-51 单片机片内RAM的配置图FFH SFR区80H MCS-51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 返回7FHMCS-51 单片机片内RAM的配置图FFH 7FH 真正RAM区00HMCS-51 单片机片内RAM的配置图FFH SFR区80H返回 89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(8

28、0HFFH)为特殊功能寄存器区SFR。 7FH 普通RAM区30H2FH 位寻址区20H1FH 工作寄存器区00H7FHMCS-51 单片机片内RAM的配置图FFH返回 7FH 真正RAM区00HMCS-51 单片机片内RAM的配置图FFH SFR区80H 89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 7FH 普通RAM区30H2FH 位寻址区20H1FH 工作寄存器区00H返回07H 0组00H0FH 1组08H17H 2组10H1FH 3组18H1

29、、工作寄存器区 是指00H1FH区, 共分4个组, 每组有8个单元, 共32个内部RAM单元。2、每次只能有1组作为工作寄存器使用, 其它各组可以作为一般的数据缓冲区使用。 3、作为工作寄存器使用的8个单元,又称为R0R74、程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择哪一组作为工作寄存器使用。CPU通过软件修改PSW中RS0和RS1两位的状态, 就可任选一个工作寄存器工作。 7FHMCS-51 单片机片内RAM的配置图FFH RS1、 RS0与片内工作寄存器组的对应关系 RS1RS0寄存器组片内PAM地址通用寄存器名称000组00H07HR0R7011组08H0F

30、HR0R7102组10H17HR0R7113组18H1FHR0R7返回 RS1、 RS0与片内工作寄存器组的对应关系 RS1R工作寄存器和RAM地址对照表 返回工作寄存器和RAM地址对照表 返回7FH 真正RAM区00HMCS-51 单片机片内RAM的配置下图 所示:FFH SFR区80H7FH 普通RAM区30H2FH 位寻址区20H1FH 工作寄存器区00H20H21H22H23H24H25H26H27H2FH1、位寻址区是指 20H2FH单元,共16个单元。2、位寻址区的每1位都可当作软件触发器, 由程序直接进行位处理。3、 位寻址区的 16个单元(共计128位)的每1位都有一个8位表示

31、的位地址, 位地址范围为00H1FH。 如表所示。4、 同样, 位寻址的RAM单元也可以按字节操作作为一般的数据缓冲 区。返回7FHMCS-51 单片机片内RAM的配置下图 所示:FFH 内部RAM中位地址表 返回 内部RAM中位地址表 返回7FH 真正RAM区00HMCS-51 单片机片内RAM的配置图FFH SFR区80H返回 89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 1、高128B的RAM单元中有21个单元可用,称为SFR。这21个SFR分散

32、在高128B的地址空间内,分别是A,B,PSW,SP,DPH,DPL,P0,P1,P2,P3,IP,IE,TCON,TMOD,TH0,TL0,TH1,TL1,SCON,SBUF,PCON。2、有些可以按位寻址。3、特殊功能寄存器名称、 标识符、 地址见表 7FHMCS-51 单片机片内RAM的配置图FFH返回 特殊功能寄存器名称、 标识符、 地址一览表 返回特殊功能寄存器名称、 标识符、 地址一览表 返回返回返回2.3.3 特殊功能寄存器 寄存器 位地址/位定义 地址 F7 F6 F5 F4 F3 F2 F1 F0 B F0H E7 E6 E5 E4 E3 E2 E1 E0 ACC E0 D7

33、 D6 D5 D4 D3 D2 D1 D0 PSW CY AC F0 RS1 RS0 OV / P D0H BF BE BD BC BB BA B9 B8 IP B8H B7 B6 B5 B4 B3 B2 B1 B0 P3 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 B0H IE A8H A7 A6 A5 A4 A3 A2 A1 A0 P2 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A0H SBUF 99H 返回2.3.3 特殊功能寄存器 寄存器 位地址/位定义 地址 F返回返回1)累加器ACC(Accumulator)

34、2)寄存器B3)程序状态字(Program Status Word)位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV-PCY 进位/借位标志;位累加器。AC 辅助进/借位标志;用于十进制调整。F0 用户定义标志位;软件置位/清零。OV 溢出标志; 硬件置位/清零。P 奇偶标志;A中1的个数为奇数 P = 1;否则 P = 0。返回1)累加器ACC(Accumulator)2)寄存器B3)程4)数据指针(DPTR) 数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH

35、和低位字节DPL。 DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令:MOVXA,DPTRMOVXDPTR,A 在访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。MOVCA,A+DPTR返回4)数据指针(DPTR) 数据指针为16位寄存5)堆栈指针SP(Stack Pointer)指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H。返回5)堆栈指针SP(Stack Pointer)指明栈顶元素的6)I/O口专用寄存器(P0、P1、P2、P3

36、) I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的四组I/O口锁存器。 7)定时/计数器(TL0、TH0、TL1和TH1) MCS-51单片机中有两个16位的定时/计数器T0和T1,它们由四个8位寄存器组成的,两个16位定时/计数器却是完全独立的。我们可以单独对这四个寄存器进行寻址,但不能把T0和T1当作16位寄存来使用。8)定时/计数器方式选择寄存器(TMOD) TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址 。返回6)I/O口专用寄存器(P0、P1、P2、P3) 3.单片机程序运行的结果如何送给发光二极管

37、? 从刚才的任务中,我们看到发光二极管随着程序的运行,有规律的闪动,那么,现在我们来看看单片机是怎样将程序中运行的结果送给发光二极管的。 原来,MCS-51单片机上有4组8位I/O口:P0、P1、P2和P3口,共有4个8位双向I/O口,共32口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。他们在单片机中,主要承担了和单片机外部设备打交道的任务,下面我们分别介绍这几个I/O口: 2.4 并行输入/输出口3.单片机程序运行的结果如何送给发光二极管? 多路开关功能:用于控制选通I/O方式还是地址/数据输出方式方式控制:由内部控制信号产生输入锁存器两个输入缓冲器(BUF1和BUF2)推拉

38、式I/O驱动器P0口位图内部结构BUF2BUF1说明:1、当控制信号为0时,P0口做双向I/O口,为漏极开路(三态)2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展)QQDCVcc控制AD0P0R1 P0R2D0P0W图1、P0口内部结构读锁存器读引脚锁存器内部总线写锁存器地址/数据P0多路开关10(1)P0和P2口多路开关输入锁存器两个输入缓冲器(BUF1和BUF2)推拉式一、P0口作I/O口(写Output):CP 有效,控制信号为0时,V1管截止,P0是对V2漏极开路输出,需要外接上拉电阻。D=1,V2截止,P0.X1;D=0,V2导通, P0.X0。一、P0口作I/O口(写O

39、utput):二、P0口作I/O口(读Input):1、读引脚(MOV C,P0.0)读引脚信号使三态缓冲器打开,数据输入(注:P0口做I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,否则FET导通,P0.X为0,无法读入高电平)。 二、P0口作I/O口(读Input):1、读引脚(MOV 2、读锁存器(ANL P0.0,C) 凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端引脚线上读入信号。 读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。 2、读锁存器(ANL P0.0,C)三、输出“地址/数据”,V1、V2

40、管交替导通,负载能力很强。1、P0口作为地址总线:控制信号为1地址信号为1,V1管导通,V2管截止,P0.X为高电平;地址信号为0,V1管截止,V2管导通, P0.X为低电平。三、输出“地址/数据”,V1、V2管交替导通,负载能力很强。2、P0口作数据总线:访问外部ROM时,P0口输出低8位地址后,将变为数据总线,以便取指令。期间, “控制信号”为“0” ,V1管截止,多路开关转向Q;CPU自动将向锁存器 写“1” ,使V2管截止,读引脚。2、P0口作数据总线:访问外部ROM时,P0口输出低8位地址P0口锁存器和缓冲器结构 P0口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地

41、址总线AB0-AB7的低八位、数据总线。 P0口锁存器和缓冲器结构 P0口除了作普通的I/O口,直接和 P2口内部结构2、当控制信号为1时P2口输出地址信息,此时单片机完成外部的取指操作或对外部数据存储器16位地址的读写操作。3、当P2口作为普通I/O口使用时用法和P1口类似。说明:1、P2可以作为通用的I/O,也可以作为高8位地址输出。 P2口内部结构2、当控制信号为1时说明:P2口锁存器和缓冲器结构 P2口除了作普通的I/O口,直接和外部设备打交道外;还用作片外总线的地址总线的高八位地址线AB8-AB15 注意:P0口在作输出入口使用时,由于它无内部上拉电阻,为了在口线上输出高电平并具有一

42、定的驱动能力,必须外接上拉电阻。作输入口使用时,为了防止口锁存器对输入口线的输入信号造成影响,必须先往口锁存器写1。同理,P2口作输入时,也必须先往口锁存器写1。 P2口锁存器和缓冲器结构 P2口除了作普通的I/O口,直接和P0.3地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.

43、5P2.4P2.3P2.2P2.1P2.0P3.2MCS-51片外总线结构示意图 MCS-51单片机片外总线 P0.4P0.3地址锁存器CBI/OA15A14A13A12A11A单片机 8031P2.0P2.1P2.2A8A9A10ALERD74LS373G6264A7A6A5A4A3A2A1A0O0O1O2O3O4O5O6O7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7OECEQ0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7WEWRP2.7P2.3P2.4A11A126264WE单片机 8031P2.0:.A8.ALERD74LS373GA7.A0P0.0

44、 :P0.7OECEQ0.Q7D0.D7A12P2.4WRD7.D0单片机 P2.0P2.1P2.2A8A9A10ALERD7P1口内部结构P1口内部结构如图2所示输出部分有内部上拉电阻R*约为20K。其他部分与P0端口使用相类似(读引脚时先写入1)。写数据读端口(2)P1口P1口内部结构P1口内部结构如图2所示写数据读端口(2)P1P1口锁存器和缓冲器结构 P1口只用作普通输入输出口注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响,P1口作输入时,也必须先往口锁存器写1。 P1口锁存器和缓冲器结构 P1口只用作普通输入输出口注意:和2.5.4 P3口内部结构说明:1、做普通端口使用

45、时,第二功能应为“1”。2、使用第二功能时,输出端口锁存器应为“1”。3、变异功能(第二功能)1输出I/O口1读I/O口11P3.0串行输入口(RXD) P3.1串行输出口(TXD)P3.2外中断0(INT0) P3.3外中断1(INT1) P3.4定时/计数器0的外部输入口(T0) P3.5定时/计数器1的外部输入口(T1) P3.6外部数据存储器写选通(WR) P3.7外部数据存储器读选通(RD) 2.5.4 P3口内部结构说明:2、使用第二功能时,输(3)P3口P3口锁存器和缓冲器结构 P3口除了作普通的I/O口(功能和P1口一样)直接和外部设备打交道外;还具有第二功能。(3)P3口P3

46、口锁存器和缓冲器结构 P3口除了作普通的I/2.5.5 P0P3端口功能总结使用中应注意的问题: P0P3口都是并行I/O口,但P0口和P2口还可用来构建数据总线和地址总线,所以电路中有一个MUX,进行转换。 而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无需转接开关MUX。只有P0口是一个真正的双向口,P1P3口都是准双向口。 原因:P0口作数据总线使用时,为保证数据正确传送,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;否则应处于隔离状态。为此,P0口的输出缓冲器应为三态门。P3口具有第二功能。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之

47、处。2.5.5 P0P3端口功能总结4.怎样保证CPU工作 ? 现在我们知道了单片机怎样取指、执指,即怎样运行程序了。那么怎样才能保证CPU有序的工作?这就必须提到单片机的两个非常重要的外围电路:单片机的时钟电路和复位电路。 Pin19: 时钟XTAL1脚,片内振荡电路的输入端。Pin18: 时钟XTAL2脚,片内振荡电路的输出端。时钟电路如下2.5 单片机的时序、引脚及其它4.怎样保证CPU工作 ? 现在我们知道了单片机【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体的频率若为12MHz,这其振荡周期就是1/12微秒。【状态周期】:单片机完成一个最基本的动作所需的时间周期。如扫描

48、一次定时器T0引脚状态所需要的时间。一个状态周期2个振荡周期。【机器周期】:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期6个状态周期。【指令周期】: 执行完某条指令所需要的时间周期,一般需要14个机器周期,如MUL AB指令是四机器周期指令。一个指令周期14个机器周期。【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体若外接晶振为12MHz时,则单片机的四个周期的具体值为: 时钟周期1/12MHz1/12s0.0833s 状态周期1/6s0.167s 机器周期1s 指令周期14s可用于计算指令、程序的执行时间,以及定时器的定

49、时时间若外接晶振为12MHz时,则单片机的四个周期的具体值为:一个机器周期P1 P2P1 P2单字节单周期指令例:INC A单周期单字节指令时序一个机器周期P1 P2P1 P2单字节单周期指令单周期单字节单字节单周期指令例:INC A双字节单周期指令例:ADD A,DATA单字节双周期指令例:INC DPTRCPU取指/执行时序单字节单周期指令双字节单周期指令单字节双周期指令例:INC 一个机器周期P1 P2P1 P2读操作码(丢弃)MOVX类指令(单字节双周期指令)无取指(无ALE)地址数据访问外部存储器双字节双周期指令 例:MOV Rn,direct读第二字节操作码当CPU对外部RAM读写

50、时,ALE不是周期信号无取指一个机器周期P1 P2P1 P2读操作码(丢弃)MOVX类指复位电路如下 单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态如下表: Pin9: RESET复位信号脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。当VCC接通电源时,即可实现单片机的上电复位 复位电路如下 单片机工作时,除了需要时钟支持外,还特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07HDPH00HTH000HDPL0

51、0HTL000HIPxxx00000BTH100HIE0 xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0 xxxxxxxB特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00H5.发光二极管为何按一定频率闪烁? 在前面的任务中,灯有规律的间隔1S闪烁,离不开时间的控制。那么,这个时间我们在前面的程序中是怎样得到的?原来,在MSC-51单片机中有两个定时器T0、T1,我们在前面也已经提到了,它在单片机中能够利用中断实现定时或计数功能。详细的用法,在单元五、六进行讲解。5.发光二极管为何按一定频率闪烁? 在

52、前面的任务中6.单片机的其他资源 通过本次任务的分析,我们基本上知道MCS-51单片机的结构,它由CPU、程序存储器、数据存储器、并行输入输出口、定时计数器、中断系统等构成,当然除了本次任务用到的以上资源外,51单片机还有一个串行通讯口。 单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、20脚)外,还有以下一些引脚。6.单片机的其他资源 通过本次任务的分析,我们基本外部程序存储器读选通信号地址锁存信号输出端1/6fosc外部程序存储器读选通信号地址锁存信号输出端1/6fosc程序运行工作方式MCS-51单片机的程序运行方式包括连续执行方式和单步执行方式两种。其中连续执行方式是程序最基本的执行方式,即从PC指针开始,连续不断地执行程序,直到遇到结束或暂停标志。在系统复位时,PC总是指向0000H地址单元,而实际的程序应允许从程序存储器的任意位置开始,可通过执行若干种指令使PC指向程序的实际起始地址。 程序运行工作方式MCS-51单片机的程序运行方式包括连续执行节电工作方式 MCS-51单片机的CHMOS器件具有两种降低功耗的工作方式:空闲方式和掉电方式。 MOS器件不具有这种功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论