MC51单片机的硬件结构汇编课件.ppt

上传人:小飞机 文档编号:1286413 上传时间:2022-11-04 格式:PPT 页数:95 大小:1.60MB
返回 下载 相关 举报
MC51单片机的硬件结构汇编课件.ppt_第1页
第1页 / 共95页
MC51单片机的硬件结构汇编课件.ppt_第2页
第2页 / 共95页
MC51单片机的硬件结构汇编课件.ppt_第3页
第3页 / 共95页
MC51单片机的硬件结构汇编课件.ppt_第4页
第4页 / 共95页
MC51单片机的硬件结构汇编课件.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《MC51单片机的硬件结构汇编课件.ppt》由会员分享,可在线阅读,更多相关《MC51单片机的硬件结构汇编课件.ppt(95页珍藏版)》请在三一办公上搜索。

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系列单片机的基本结构图,CPU,RAM,ROM,中断系统,串行口,并行口,定时计数器,振荡电路,X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1,T0 T1,计算机,微机,CPURAMROM中断系统串行口并行口定时,MCS - 51系列单片机的基本结构图,X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1,返回,CPU,RAM,ROM,中断系统,串行口,并行口,定时计数器,振荡电路,X1 X2 P0 P1 P2 P3 TXD RXD INT0 INT1,T0 T1,1、RAM被称为随机

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

6、,DB CPU AB CB 存储器 I/O口 微机的结构框图,单片机,计算机,返回,80C51单片机的内部结构,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,ALU,2.2 中央处理器CPU,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,80C51单片机的内部结构,返回,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE E

7、A,P0P1P2P3,ALU,算术逻辑运算部件主要用来完成数据的算术和逻辑运算。ALU有2个输入端和2个输出端,其中一端接至累加器,接收由累加器送来的一个操作数;另一端接收TMP的第二个操作数。参加运算的操作数在ALU中进行规定的操作运算,运算结束后,一方面将结果送至累加器,同时将操作结果的特征状态送标志寄存器。,返回ATMPPSWBSPDPTRRAMPCROMP1P2P3,89C51单片机的内部结构,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,AL

8、U,1、16位寄存器2、存放下一条将要执行的指令地址.程序中的指令是按照顺序存放在存储器中的某个连续区域.每条指令都有自己的地址,CPU根据PC中的指令地址从存储器中取出将要执行的指令.3、具有自动加1功能,从而指向下一条将要执行的指令地址.4、PC的值可以修改,一般程序是按顺序执行指令的.若改变了的PC的值,则程序将不再按顺序执行。,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,80C51单片机的内部结构,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE

9、EA,P0P1P2P3,IR:用来存放当前正在执行的指令代码 。ID:用来对指令代码进行分析、译码,根据指令译码的结果,输出相应的控制信号。 PLA:产生出各种操作电位、不同节拍的信号、时序脉冲等执行此条命令所需的全部控制信号 。,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,80C51单片机的内部结构,X1X2,PSEN RST ALE EA,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、8位寄存器2、累加器是一个特殊的寄存

10、器,它的字长和微处理器的字长相同,累加器具有输入输出和移位功能,微处理器采用累加器结构可以简化某些逻辑运算。3、由于所有运算的数据都要通过累加器,故累加器在微处理器中占有很重要的位置。,ALU,返回,X1 PSEN RST ALE EAATMPPSWB,80C51单片机的内部结构,X1X2,PSEN RST ALE EA,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,ALU,1、8位寄存器2、在进行乘除法运算时,存放参与运算的一个操作数3、除此之外,作

11、为一般工作寄存器使用,返回,X1 PSEN RST ALE EAATMPPSWB,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、PSW称为程序状态字寄存器,是一个8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - P,ALU,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口

12、,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、程序状态字寄存器。8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - P,ALU,返回,Cy(PSW.7)进位标志位。当运算结果产生进位时, Cy =1;当运算结果没有产生进位时, Cy =0。,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、

13、程序状态字寄存器。8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - P,ALU,AC(PSW.6)辅助进位(或称半进位)标志。 当运算结果的D3向D4产生进位时, AC =1;当运算结果的D3向D4没有产生进位时, AC =0。,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、程序状态字寄存器。8位寄存器。2、D7 D6 D5

14、 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - P,ALU,OV(PSW.2)溢出标志位。 当运算结果产生溢出时, OV =1;当运算结果没有产生溢出时, OV =0。,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、程序状态字寄存器。8位寄存器。2、D7 D6 D5 D4 D3 D2 D1 D0 Cy Ac F0 RS1 RS0 Ov - P,ALU,P

15、(PSW.0)奇偶标志位。当A中1的个数为奇数时, P =1;当A中1的个数为偶数时, P =0。,返回,ATMPPSWBSPDPTRRAMPCROMP1P2P3P0,80C51单片机的内部结构,X1X2,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、SP称为堆栈指针,8位寄存器2、 SP用来存放堆栈栈顶的地址。,返回,X1ATMPPSWBSPDPTRRAMPCROMP1P2P3,先加(SP+1)后压(数据),先弹(数据)后减(SP-1)。,89H

16、,SP,SP,入栈过程PUSH ACC,出栈过程POP ACC,SP,89H,先加(SP+1)后压(数据),先弹(数据)后减(SP-1)。,80C51单片机的内部结构,X1X2,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、8位寄存器2、 SP用来存放堆栈栈顶的地址。,返回,1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入

17、数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储单元4、SP用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。,63H,64H,65H,66H,67H,栈底,演示,X1ATMPPSWBSPDPTRRAMPCROMP1P2P3,80C51单片机的内部结构,X1X2,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、8位寄存

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

19、1ATMPPSWBSPDPTRRAMPCROMP1P2P3,80C51单片机的内部结构,X1X2,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、8位寄存器2、 SP用来存放堆栈栈顶的地址。,返回,1、堆栈是在内RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一块连续的存储区域。 2、堆栈有栈顶和栈底,堆栈中没有数据时,二者重叠,SP指向最下端(栈底),向堆栈推入数据后,栈顶向上生长,SP也向上生长。3、堆栈栈顶:最后推入堆栈的数据所在的存储

20、单元4、SP用来指示堆栈所处的位置, 在进行操作之前, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。,63H,64H,65H,66H,67H,栈底,12H,SP=64H,SP=66H,SP=65H,出栈,73H,73H,46H,46H,X1ATMPPSWBSPDPTRRAMPCROMP1P2P3,80C51单片机的内部结构,X1X2,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、8位寄

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

22、ATMPPSWBSPDPTRRAMPCROMP1P2P3,80C51单片机的内部结构,PSEN RST ALE EA,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,1、数据指针DPTR是一个 16 位的专用寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。2、既可作为一个 16 位寄存器DPTR来处理, 也可作为两个独立的 8 位寄存器DPH和DPL来处理。 3、 DPTR 主要用来存放 16位地址,当对 64 KB外部数据存储器空间

23、寻址时, 作为间址寄存器用。在访问程序存储器时, 用作基址寄存器。,返回,演示,PSEN RST ALE EAATMPPSWBSP,DPTR0003H,34H A,TMP,PSW,B,SP,DPTR0003H,RAM,PC,ROM,定时,中断,串口,返回,ALU,读写控制,输入输出电路,地址译码器,RAM芯片,单片机,DB,CB,AB,0003H,DPTR0003H,WR,34H,DPTR 34H ATMPPSWBSPDPTRRAMP,80C51单片机的内部结构,PSEN RST ALE EA,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串

24、口,IR,PLA,ID,振荡,X1X2,PSEN RST ALE EA,P0P1P2P3,80C51内有的4K的ROM; 不够用时可以外扩ROM; 内ROM+外ROM 64K,返回,PSEN RST ALE EAATMPPSWBSP,2.单片机的软件及数据如何存放?,从前面的任务中,我们还看到要控制灯闪烁,必须编制程序,还必须将控制灯的相关数据预先存储,那么,在单片机中的程序和数据是怎样保存的? 原来,在单片机内部有程序存储器和数据存储器,如果内部程序存储器和数据存储器的容量不够的话,还可以在单片机外部为它扩展,最大我们可以将程序存储器空间总容量扩大到64K,将数据存储器在片外再单独扩展64K

25、,这样,以89S51为例,数据存储器的总容量可达64K(片外)128字节(片内)。,MCS-51单片机的存储器组织结构,采用典型的哈佛结构,即程序存储器和数据存储器完全独立,拥有各自的寻址系统,包括片内数据存储器与片外数据存储器都拥有自己独立的寻址系统。,2.3 存储器,2.单片机的软件及数据如何存放? 从前面的任务,MCS-51单片机存储器组织结构,返回,)(外部K64RAM 数据存储器MCS-51单片机存储器,2.3.1 程序存储器2.3.2 内部数据存储器2.2.3 特殊功能寄存器,2.3 存储器,返回,2.3.1 程序存储器2.3.2 内部数据存储器2.,2.3.1 程序存储器,用途:

26、 存放程序及程序运行时所需的常数。,寻址范围:0000H FFFFH 容量64KB,即地址长度:16位,,寻址内部ROM;,说明:当PC值超过片内ROM容量时会自动转向 外部存储器空间。,,寻址外部ROM。,1),返回,2.3.1 程序存储器用途: 存放程序及程序运行时所需的常,2)程序存储器的分类,(1)Mask ROM 型:掩膜ROM,如8051ROM(2)OTPROM型:一次可编程ROM(3)EPROM型:可擦除可编程ROM,如8751ROM(4)E2PROM型:电可擦除可编程ROM(5)Flash ROM型:闪速只读存储器,如ATMEL公司的AT89系列(89C51),返回,2)程序存

27、储器的分类 (1)Mask ROM 型:掩膜ROM,MCS - 51系列单片机的分类,常用的MCS51系列单片机有2种类型的产品:8051/8751/89C51和8031。它们的结构基本相同,其主要差别反映在存储器的配置上的不同:8051内设有4KB的掩膜ROM;8751内设有4KB的EPROM;89C51内设有4KB的Flash ROM ;8031内没有ROM。 MCS - 51 系列单片机配置一览表,MCS - 51系列单片机的分类,3)程序存储器中6个具有特殊含义的单元,0000H 系统复位,PC指向此处; 0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入

28、口 001BH T1溢出中断入口 0023H 串口中断入口,返回,3)程序存储器中6个具有特殊含义的单元,2.3.2 数据存储器,用途:存放程序执行的中间结果和过程数据的 。,物理上分为两大区域: 00H 7FH即128B用户RAM区。 80H FFH即特殊功能寄存器区。,返回,2.3.2 数据存储器用途:存放程序执行的中间结果和过程数据,7FH 真正RAM区00H,MCS-51 单片机片内RAM的配置图,FFH SFR区80H,MCS-51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为

29、特殊功能寄存器区SFR。,返回,7FHMCS-51 单片机片内RAM的配置图FFH,7FH 真正RAM区00H,MCS-51 单片机片内RAM的配置图,FFH SFR区80H,返回,89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。,7FH 普通RAM区30H,2FH 位寻址区20H,1FH 工作寄存器区00H,7FHMCS-51 单片机片内RAM的配置图FFH返回,7FH 真正RAM区00H,MCS-51 单片机片内RAM的配置图,FFH SFR区80H,

30、89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。,7FH 普通RAM区30H,2FH 位寻址区20H,1FH 工作寄存器区00H,返回,07H 0组00H,0FH 1组08H,17H 2组10H,1FH 3组18H,1、工作寄存器区 是指00H1FH区, 共分4个组, 每组有8个单元, 共32个内部RAM单元。2、每次只能有1组作为工作寄存器使用, 其它各组可以作为一般的数据缓冲区使用。 3、作为工作寄存器使用的8个单元,又称为R0R74、程序状态字PSW

31、中的PSW.3(RS0)和PSW.4(RS1)两位来选择哪一组作为工作寄存器使用。CPU通过软件修改PSW中RS0和RS1两位的状态, 就可任选一个工作寄存器工作。,7FHMCS-51 单片机片内RAM的配置图FFH,RS1、 RS0与片内工作寄存器组的对应关系,返回,RS1、 RS0与片内工作寄存器组的对应关系 RS1R,工作寄存器和RAM地址对照表,返回,工作寄存器和RAM地址对照表 返回,7FH 真正RAM区00H,MCS-51 单片机片内RAM的配置下图 所示:,FFH SFR区80H,7FH 普通RAM区30H,2FH 位寻址区20H,1FH 工作寄存器区00H,20H,21H,22

32、H,23H,24H,25H,26H,27H,2FH,1、位寻址区是指 20H2FH单元,共16个单元。2、位寻址区的每1位都可当作软件触发器, 由程序直接进行位处理。3、 位寻址区的 16个单元(共计128位)的每1位都有一个8位表示的位地址, 位地址范围为00H1FH。 如表所示。4、 同样, 位寻址的RAM单元也可以按字节操作作为一般的数据缓冲 区。,返回,7FHMCS-51 单片机片内RAM的配置下图 所示:FFH,内部RAM中位地址表,返回,内部RAM中位地址表 返回,7FH 真正RAM区00H,MCS-51 单片机片内RAM的配置图,FFH SFR区80H,返回,89C51内有256

33、B的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、特殊功能寄存器名称、 标识符、 地址见表,7FHMCS-51 单片机片内RAM的配置图FFH返回,特殊功能寄存器名称、 标识符、 地址一览表

34、,返回,特殊功能寄存器名称、 标识符、 地址一览表 返回,返回,返回,2.3.3 特殊功能寄存器,返回,2.3.3 特殊功能寄存器 寄存器 位地址/位定义 地址 F,返回,返回,1)累加器ACC(Accumulator),2)寄存器B,3)程序状态字(Program Status Word),CY 进位/借位标志;位累加器。AC 辅助进/借位标志;用于十进制调整。F0 用户定义标志位;软件置位/清零。OV 溢出标志; 硬件置位/清零。P 奇偶标志;A中1的个数为奇数 P = 1;否则 P = 0。,返回,1)累加器ACC(Accumulator)2)寄存器B3)程,4)数据指针(DPTR),数

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

36、07H。,返回,5)堆栈指针SP(Stack Pointer)指明栈顶元素的,6)I/O口专用寄存器(P0、P1、P2、P3),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可以用字节传送指

37、令设置其内容,但不能位寻址 。,返回,6)I/O口专用寄存器(P0、P1、P2、P3),3.单片机程序运行的结果如何送给发光二极管?,从刚才的任务中,我们看到发光二极管随着程序的运行,有规律的闪动,那么,现在我们来看看单片机是怎样将程序中运行的结果送给发光二极管的。 原来,MCS-51单片机上有4组8位I/O口:P0、P1、P2和P3口,共有4个8位双向I/O口,共32口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。他们在单片机中,主要承担了和单片机外部设备打交道的任务,下面我们分别介绍这几个I/O口:,2.4 并行输入/输出口,3.单片机程序运行的结果如何送给发光二极管?,多路

38、开关功能:用于控制选通I/O方式还是地址/数据输出方式方式控制:由内部控制信号产生,输入锁存器,两个输入缓冲器(BUF1和BUF2),推拉式I/O驱动器,P0口位图内部结构,说明:1、当控制信号为0时,P0口做双向I/O口,为漏极开路(三态)2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展),1,0,(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

39、口(写Output):,二、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),三、输出“地址/数据”

40、,V1、V2管交替导通,负载能力很强。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口,直接和,MCS-51片外总线结构示意图,MCS-51单片机片外总线,P0.4,P0.3地址锁存器CBI/OA15A14A13A12A11A,6264,WE,单片机 8031,P2.0,:,.,A8,.,ALE,RD,74LS373,G,A7.A0,P0.0 :P0.7,OE,CE,Q0.Q7,D0.D7,A12,P2.4,WR,D7.D0,单片机 P2.

43、0P2.1P2.2A8A9A10ALERD7,P1口内部结构,P1口内部结构如图2所示输出部分有内部上拉电阻R*约为20K。其他部分与P0端口使用相类似(读引脚时先写入1)。,写数据,读端口,(2)P1口,P1口内部结构P1口内部结构如图2所示写数据读端口(2)P1,P1口锁存器和缓冲器结构,P1口只用作普通输入输出口,注意:和P0、P2口一样,为防止口锁存器对输入口线造成影响,P1口作输入时,也必须先往口锁存器写1。,P1口锁存器和缓冲器结构 P1口只用作普通输入输出口注意:和,2.5.4 P3口内部结构,说明:1、做普通端口使用时,第二功能应为“1”。,2、使用第二功能时,输出端口锁存器应

44、为“1”。3、变异功能(第二功能),1,1,P3.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口锁存器和缓冲器结构 P3口除了作普通的I/,2.5.5 P0P3端口功能

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

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

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

48、体值为:,单周期单字节指令时序,一个机器周期P1 P2P1 P2单字节单周期指令单周期单字节,单字节单周期指令例:INC A,双字节单周期指令例:ADD A,DATA,单字节双周期指令例:INC DPTR,CPU取指/执行时序,单字节单周期指令双字节单周期指令单字节双周期指令例:INC,一个机器周期,P1 P2,P1 P2,读操作码(丢弃),MOVX类指令(单字节双周期指令),无取指(无ALE),地址,数据,访问外部存储器,双字节双周期指令 例:MOV Rn,direct,读第二字节操作码,当CPU对外部RAM读写时,ALE不是周期信号,无取指,一个机器周期P1 P2P1 P2读操作码(丢弃)

49、MOVX类指,复位电路如下,单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态如下表:,Pin9: RESET复位信号脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。,当VCC接通电源时,即可实现单片机的上电复位,复位电路如下 单片机工作时,除了需要时钟支持外,还,特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00H,5.发光二极管为何按一定频率闪烁?,在前面的任务中,灯有规律的间隔1S闪烁,离不开时间的控制。那么,这个时间我们在前面的程

50、序中是怎样得到的?原来,在MSC-51单片机中有两个定时器T0、T1,我们在前面也已经提到了,它在单片机中能够利用中断实现定时或计数功能。详细的用法,在单元五、六进行讲解。,5.发光二极管为何按一定频率闪烁? 在前面的任务中,6.单片机的其他资源,通过本次任务的分析,我们基本上知道MCS-51单片机的结构,它由CPU、程序存储器、数据存储器、并行输入输出口、定时计数器、中断系统等构成,当然除了本次任务用到的以上资源外,51单片机还有一个串行通讯口。,单片机的引脚除了我们前面介绍的4个并I/O口,两根时钟引脚(18、19脚),一根复位引脚(9脚),两根电源脚(40、20脚)外,还有以下一些引脚。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号