单片机的硬件结构和原理.ppt_第1页
单片机的硬件结构和原理.ppt_第2页
单片机的硬件结构和原理.ppt_第3页
单片机的硬件结构和原理.ppt_第4页
单片机的硬件结构和原理.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 单片机的硬件结构和原理,2.1 MCS -51单片机硬件结构 2.2 中央处理器CPU 2.3 存储器的结构 2.4 单片机工作的基本时序 2.5 并行输入/输出接口 2.6 单片机的引脚及其功能 2.7 单片机的工作方式,2.1 MCS - 51单片机硬件结构,2.1.1 MCS - 51系列单片机的分类,表 2.1 MCS - 51 系列单片机配置一览表,2.1.2 MCS - 51单片机的内部结构,图 2.1 MCS - 51单片机结构框图,2.2 中央处理器CPU,2.2.1 运算器,算术逻辑单元ALU 2. 累加器ACC(Accumulator) 3. 寄存器B 4. 程序状

2、态字PSW(Programe State Word),D7 D6 D5 D4 D3 D2 D1 D0,PSW,表 2.2 RS1、 RS0与片内工作寄存器组的对应关系,1. 指令寄存器和指令译码器 指令寄存器中存放指令代码。CPU执行指令时, 由程序存储器中读取的指令代码送入指令存储器, 经译码器译码后由定时与控制电路发出相应的控制信号, 完成指令所指定的操作。,2.2.2 控制器,2. 程序计数器PC(Program Counter) PC用于存放CPU下一条要执行的指令地址, 是一个 16 位的专用寄存器, 可寻址范围是0000H0FFFFH共 64 KB。 程序中的每条指令存放在ROM区

3、的某一单元, 并都有自己的存放地址。 CPU 要执行哪条指令时, 就把该条指令所在的单元的地址送上地址总线。 在顺序执行程序中, 当PC的内容被送到地址总线后, 会自动加 1, 即(PC) (PC)+1, 又指向CPU 下一条要执行的指令地址。,3. 堆栈指针SP(Stack Pointer) 堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式, 主要用于子程序调用及返回和中断处理断点的保护及返回, 它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回, 进入栈区的“断点”数据应遵循“先进后出”的原则。SP用来指示堆栈所处的位置, 在进行操作之前

4、, 先用指令给SP赋值, 以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后, SP的值也自动随之变化。压入压栈数据前,先修改SP值,即SP+1 SP,再把数据放入此地址中。MCS - 51 系统复位后, SP初始化为07H。,4. 数据指针寄存器DPTR 数据指针DPTR是一个 16 位的专用寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理, 也可作为两个独立的 8 位寄存器DPH和DPL来处理。 DPTR 主要用来存放 16 位地址, 当对 64 KB外部数据存储器空间寻址时, 作为间址寄存器用。在访问程序存储器时, 用

5、作基址寄存器。,2.3 存储器的结构,存储器是存放程序和数据的部件,通用计算机将程序和数据往往存放在同一个存储器当中,进行统一的编址。在MCS-51单片机中,将数据和程序进行了分开存放,也就是在51单片机中拥有两种存储器(数据存储器和程序存储器) 其中程序存储器分为内部程序存储器(片内)和外部程序存储器(片外),但是由于其编址是统一的,所以一般对程序存储器是不分内外的。数据存储器也分为内部数据存储器(片内)和外部数据存储器(片外),但是其编址方式不同,片内采用8位地址,片外采用16位地址。所以,用户在使用时要注意。,图 2.3 MCS - 51 单片机的存储器结构,2.3.1程序存储器( RO

6、M ),程序存储器是用来存放编好的程序和表格常数的。 目前市场上推行的89C51等单片机片内都有4KB的闪存(Flash Memory)。刚才讲到,程序存储器分为片内和片外,但是编址统一,即都是16位地址。 编址由外部引脚 来决定,当 =1时,内部地址为0000H0FFFH,外部地址为1000HFFFFH。当 =0时,内部ROM就不起作用了,此时,外部ROM的地址变成0000HFFFFH。,2.3.2 数据存储器(RAM),数据存储器分成内部数据存储器和外部数据存储器。主要用于数据的存放。 1.内部数据存储器: MCS-51 单片机片内RAM的配置如图 2.3(b)所示。从图中可以看出,片内R

7、AM有 256个字节, 地址范围为00HFFH, 分为两大部分: 低 128 字节(00H7FH)为真正的RAM区,其中包括工作寄存器区、位寻址区和数据缓冲区;高 128 字节(80HFFH)为特殊功能寄存器区SFR。 ,(1)工作寄存器 MCS-51有32个工作寄存器,分为4个区,每个区有8个寄存器R0,R1,R2,R3,R4,R5,R6和R7。由程序状态标志寄存器PSW中的RS1、RS0的值来决定当前的工作区: 当: RS1、RS0 为00时,0区为工作区 RS1、RS0 为01时,1区为工作区 RS1、RS0 为10时,2区为工作区 RS1、RS0 为11时,3区为工作区,这32个工作寄

8、存器的名称、区号和地址分别如下: 00H07H为0区,分别对应R0 R7 08H0FH为1区,分别对应R0 R7 10H17H为2区,分别对应R0 R7 18H1FH为3区,分别对应R0 R7,这些工作寄存器既可以用R0 R7这些名称来表示,也可以用它们的地址来表示。注:其中的R0、R1寄存器除了作工作寄存器之外还常作间址寻址的地址指针,(2)位寻址区,内部数据存储器中的20H2FH为位寻址区,在位寻址区我们可以进行:位操作和布尔运算。,位操作:一个字节地址当中的八位,每一位都可以单独取出来操作。,布尔运算:就是数字电路中所谓的逻辑运算。,(3)数据缓冲区,用于存放一些原始数据和运算结果,一般

9、作为堆栈使用,地址范围为30H7FH的区域。值得注意的地方是: 作堆栈使用的时候遵守“后进先出”或“先进后出”的数据处理规则。(讲指令的时候作进一步研究),(4)特殊功能寄存器SFR(专用寄存器),内部数据存储器的高128BRAM的80HFFH空间中,离散地分布着21个特殊功能寄存器(SFR)。它们主要起到在数据传送过程中的桥梁作用或者存放控制字。这些特殊功能寄存器中的部分是组成CPU的重要部分。它们的符号、名称以及地址见下表:(部分作简要说明),SFR特殊功能寄存器地址表,这21个特殊功能寄存器中有11个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,可以直接按位来找到。(在表中可以看出

10、) 注意:SFR在复位以后的各种状态见书本第8页表格2-2。其中特别要注意的是PSW在复位后的各种状态。比如复位后PSW值为00H,说明其中的RS1、RSO为00,即复位后工作寄存器工作在0区,2. 外部数据存储器,外部数据存储器一般由静态RAM构成,其容量大小由用户根据需要而定, 最大可扩展到 64 KB RAM , 地址是 0000H0FFFFH。 CPU通过MOVX指令访问外部数据存储器, 用间接寻址方式, R0、R1和 DPTR都可作间接寄存器。注意, 外部RAM和扩展的I/O接口是统一编址的, 所有的外扩I/O 口都要占用 64 KB中的地址单元。 关于这个指令,我们将在第三章中进行

11、详细学习,现在只要知道,单片机访问内部RAM和外部RAM的指令是不一样的,作业:,MCS-51单片机含有哪些主要逻辑部件? 简述程序状态标志寄存器PSW中各位的含义。 MCS-51单片机的工作寄存器分几个区?单片机复位后,工作寄存器工作在哪个区? MCS-51单片机有多少个特殊功能寄存器?其中哪些具有位寻址功能? 简述程序存储器和数据存储器的功能。,2.4时钟电路及时序,时钟是单片机能协调工作的时间基准。单片机所有指令的执行,都需要时钟信号的支持。 分类:一、内部方式时钟电路;二、外部方式时钟电路。,一、内部方式时钟电路(时钟信号在片内产生),内部方式时钟电路由内部振荡器产生的振荡信号接至内部

12、时钟电路,由内部时钟电路进行二分频,产生二分频信号,来构成单片机的时钟。并且向CPU提供P1和P2两相时钟信号。 实现方式:内部振荡器由内部反相放大器通过单片机的两个引脚XTAL1和XTAL2与外接晶振以及电容C1和C2构成并联谐振电路,产生晶体振荡信号(未进行二分频的信号)。,内部时钟电路,说明: (1)图中的晶振频率为212MHz,电容的容量一般选择在30pF。 (2)印制电路的时候应使晶体和电容尽可能与单片机靠近,以保证稳定可靠。,二、外部方式时钟电路(时钟信号在片外产生),振荡信号由外部振荡器产生振荡信号,通过电平转换接至MCS-51单片机的XTAL2引脚。由XTAL2直接与内部方式时

13、钟电路相连,此时, XTAL1引脚接地。,外部振荡器,三、时序,CPU的控制实质上是一个复杂的同步控制过程,所有操作都需要在时钟信号的控制下进行。这些控制信号在时间上的相互关系就是CPU的时序。,时序可分为两类:一类是控制单片机内部各部分协调工作的时序控制信号;一类是单片机对外部接口电路、外部RAM和ROM的时序控制信号。,A、接下去了解几个基本概念,1、振荡周期:为单片机提供定时信号的振荡源的周期,也就是晶体振荡器直接产生的振荡信号的周期。,2、时钟周期(S):对振荡信号频率进行2分频以后的信号。又称状态周期。是振荡周期的2倍。一个时钟周期分为P1和P2两个节拍。P1节拍完成算术逻辑操作,P

14、2节拍完成内部寄存器间数据的传递。,3、机器周期:如果把一条指令的执行过程分成几个基本操作,则完成一个基本操作所需的时间称为机器周期。MCS-51单片机完成一个机器周期由6个(S1-S6)时钟周期组成。因此,可以得出一个机器周期等于12个振荡周期,这样,如果我们给单片机配一个12MHz晶振(振荡周期为1/12微妙)的话,每个机器周期时间就是1微妙。,4、指令周期:指令周期是执行一条指令所需的全部时间,在MCS-51单片机中,一般指令周期都为1-4个机器周期。,举例:已知晶振频率分别为6MHz、12MHz,试分别计算 它们的机器周期和指令周期。,解:当晶振频率为6MHz时, 机器周期=时钟周期X

15、6=振荡周期X2X6=(1/6s)X12=2 s 指令周期=1-4个机器周期=2-8s 当晶振频率为12MHz时 机器周期=时钟周期X6=振荡周期X2X6=(1/12s)X12=1s 指令周期=1-4个机器周期=1-4s,B、几种典型的取指/执行时序,每一条指令的执行都包括从程序存储器取指令和执行指令两个阶段。 用户通过观察OSC(XTAL2)和地址锁存信号引脚ALE端的信号变化可以分析出CPU取指令的时序。 看图2-7可以知道,对从ALE出来的信号分析,每个机器周期有两次ALE有效。信号的宽度为一个S状态。每次ALE有效时CPU就进行一次取指操作,也就是在一个机器周期内完成两次取指操作。,接

16、下去分析几条具有代表性的指令的时序来了 解指令执行过程。,图2.7 MCS - 51 单片机取指/执行时序,(1)单字节单周期指令:指令长度为一个字节,指令执行时间为一个机器周期。(比如:INCA),从图(a)中可以看出单字节单周期指令在机器周期的S1状态时(第一次ALE有效时)执行取指操作,读取操作码,即读取INC。在S4状态时(第二次ALE有效)还要读取一个操作码,单由于是单字节指令,所以第二次读取的操作码被丢掉,且程序计数PC不加1。在S6P2结束时完成此指令的全部操作。,(2)双字节单周期指令:指令长度为两个字节,指令执行时间为一个机器周期。(比如:ADDA,#data),双字节单周期

17、指令与单字节单周期指令区别是在一个机器周期内,双字节单周期指令在一个周期内的两次读取操作均有效。二者相同之处为均在一个周期内完成指令的全部操作。 第一次是读指令操作码(ADD),第二次是读指令的第二个字节(就是这里的#data)。同样,到第一个机器周期的S6状态时指令执行完毕。 注意:A为操作目标,所以不用在这里操作,(3)单字节双周期指令:指指令的长度为一个字节,指令的执行时间为两个机器周期。(比如:INCDPTR),单字节双周期指令与单字节单周期指令的区别是执行时间增加了一个机器周期。而第一个机器周期的S4状态和第二个机器周期的S1、S2状态的读取操作均被丢掉,且程序计数器均不增量(主要是

18、由于只有一个字节操作码)。在第二个机器周期的S6P2状态完成指令的全部操作。,(4)访问外部数据存储器指令MOVX时序,MOVX是一条单字节双周期指令,它与一般的单字节双周期指令的时序有些不同,它在第一个机器周期的S1状态读取操作码。在S4状态读取的下一个操作码被丢掉,在S5状态开始送出片外数据存储器的地址后,进行读/写数据。此时,ALE无信号输出,因此在第二个机器周期的S1、S2状态不产生取指操作;在第二个机器周期的S6P2状态完成指令的全部操作。,2.5 并行输入/输出端口,MCS-51单片机有四个8位并行I/O端口P0、P1、P2和P3。每个端口都是8位准双向口,共占32只引脚。每一条I

19、/O线都能独立地用作输入或输出线(我们所讲的八位机,指的就是这些口的位数为八位)。每个端口都包括一个锁存器(特殊功能寄存器P0-P3)、一个输出驱动器和输入缓冲器。作为输出线时,数据可以锁存,作为输入线时,数据可以缓冲,但这四个通道的功能不完全相同。访问外部扩展存储器时(有16位地址线),P2口作16位地址中的高8位地址,而低8位地址由P0口提供,其中与片外扩展存储器通信的数据也由P0口提供。这样,P0口先送完低8位地址后再作数据输入输出通道(这叫做低8位地址和8位双向数据总线的分时复用)。,2.5.1 P0口,图 2.5 P0 口内部一位结构图,P0口有8位,分别是P0.0P0.7,每一位都

20、由一个锁存器、两个三态输入缓冲器、控制电路和驱动电路组成。,P0口具有两种功能,通I/O口,低8位地址总线和8位双向数据总线,1、通用I/O口,没有外扩存储器时,P0口作为I/O口使用,此时,CPU 执行传送或者更改位内容(P0口每一位都可以独立使用)的指令时,硬件自动使控制线C=0,开关MUX处于图示位置。此时,输出级的上拉场效应管V1处于截止状态,输出级变为漏极开路,因此,有些情况需要上拉电阻。,(1)作为输入口,当执行类似于“MOV A,P0”或“MOV C,P0.1”等这些“读引脚”指令时,“读引脚”脉冲把三态缓冲器2打开,端口引脚上的数据经过控制开通的三态缓冲器2读入到内部数据总线。

21、要注意的一点是,由于输出驱动V2并接在输出引脚上,如果V2导通它会把引脚上的高电平拉成低电平,从而产生误读。因此,在读端口引脚操作之前,应该先向端口锁存器写入1。使得锁存器反向输出端为0,这样V1和V2就全部截止了,不会产生误读。,(2)作为输出口,当CPU执行数据输出指令时,“写脉冲”脉冲加在D锁存器的CP上,这样,输出数据经过与内部数据总线相连的D锁存器,由反向输出端、输出级FET场效应管V2两级反向,使输出数据刚好出现在P0端口引脚上。,比如:指令“ANLP0,#DATA”、“ANLP0,A”等均属于“读运算写”指令。执行过程是:先读出P0口锁存器中的数据,然后运算,结果再锁存到锁存器,

22、并且输出到外部端口引脚(读锁存器中的数据时和读外部数据有点不同:Q端数据经过控制开通的三态缓冲器送入内部总线),从以上的分析,可以看出:当P0口作通用I/O口时,P0口是一个准双向口,也就是要使用时候要先对锁存器写,否则读数据就要读错。,、作为地址数据总线,当外接存储器时,它的位地址和位数据的传送由P0、P2口承担,其中P2口负责传送高位地址,P0口负责传送低位地址和位双向数据。P0口传送地址和数据信息采用分时复用技术。,从P0口输出地址或数据,从P0口输入数据,(1)从P0口输出地址或数据,控制线C=1(通过向外写指令自动生成),MUX与上触点连接,输出驱动V1和V2直接由连接地址数据线的反

23、相器进行推拉式控制,经该回路先输出地址量(或者,当然这里只有一位,是对一个位口来讲的)再输出数据(或者)。输出时,V1截止V2导通,引脚体现为低电平;输出为时, V2截止V1导通,引脚体现为高电平,()从P0口输入数据,P0口先送出低位地址再输入数据,送出地址和上一种情况一样,但读数据时打开输入缓冲器,引脚数据经过输入缓冲器直接进入内部数据总线。,P1、P2 和P3 口为准双向口, 在内部差别不大, 但使用功能有所不同。 P1口是用户专用 8 位准双向I/O口, 具有通用输入/输出功能, 每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时, 该位的锁存器必须写入“1”, 然后才能进入

24、输入操作。 与P0相比有两点不同:一、其输出驱动器带撒谎能够拉电阻替代了场效应管;二、无控制部分(主要是只做输入输出口) P2口是 8 位准双向I/O口。外接I/O设备时, 可作为扩展系统的地址总线, 输出高8位地址, 与P0 口一起组成 16 位地址总线。 平时作通用I/O口。,2.5.2P1、P2 和P3 口,P3口除了具有准双向口的功能外,各引脚还具有另外一种功能即第二功能。作为通用I/O口使用这里不再详细说明。具体讲第二功能:,2.5.3端口的负载能力和接口要求,1、端口负载能力,P0口,做通用I/O口使用时,需外加上拉电阻;作为输入使用时,必须对端口锁存器写1。作为数据/地址总线使用

25、,无须上拉电阻,且数据输入时无须进行写1。,P1-P3口,每一个输出可驱动4个LS型TTL负载,无须上拉电阻。作为输入时一定要先写1。,2、端口要求,端口只能提供几毫安的输出电流,当端口需驱动一个普通晶体管基极的时候,应该在端口和晶体管之间串联一个电阻,以限制高电平输出时的电流。,2.6 MCS-51单片机的引脚功能,图 2.6 MCS - 51单片机引脚及总线结构 (a) 管脚图; (b) 8031 引脚功能分类,MCS-51单片机有普通的HMOS芯片和CMOS低功耗芯片。前者采用双列直插(DIP)封装形式,后者既有DIP形式,也有方型封装。 管脚结构完全一样。图2.6所示为HMOS芯片,引

26、脚功能:,1、电源及时钟引脚 Vcc(40脚):接电源+5V Vss(20脚):接地 时钟引脚(18、19脚)外接晶体时与片内的反相器构成一个振荡器,它提供单片机的时钟控制信号。时钟引脚也可以外接晶体振荡器。,XTAL1(19脚):接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端。当采用外接晶体振荡器时,此引脚接地。 XTAL2(18脚):接外部晶体的另一端,在单片机内部接至反相放大器的输出端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。,2、控制引脚,RST(9脚):当系统进入死机状态后,只要使得该引脚处于两个机器周期的高电平,就能使单

27、片机程序复位。复位以后该引脚电平为小于等于0.5V。,ALE/PROG(30脚):当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位;不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡频率的1/6(见时序图)。PROG为其第二功能,是编程脉冲输入端,对8751单片机来讲的。,PSEN(29脚):此输出为单片机访问外部程序存储器的读选通信号。低电平有效,在从外部程序存储器取指令期间,每个机器周期PSEN两次有效。当访问外部数据存储器时,这两次有效的PSEN信号将不出现。,EA/Vpp(31脚):程序存储器使能端,当EA=0时,CPU执行外部程序存

28、储器的指令,且外部程序存储器的地址从0000H开始到FFFFH。当EA=1时,CPU先执行内部数据存储器的指令,地址从0000H到0FFFH,然后执行外部数据存储器的指令,地址为1000H到FFFFH。,2.7 MCS-51单片机的工作方式,MCS-51单片机有复位、程序执行、单步执行、掉电保护、低功耗以及EPROM编程和效验等6种工作方式。我们着重介绍三种。,一、复位方式:单片机的初始化操作,主要是为了把PC初始化为0000H,使单片机从0000H单元开始执行程序。(在程序死机的时候,只要按复位键就可以重新启动) 、单片机工作状态 复位以后,特殊功能寄存器的状态如下表:,复位不影响内部RAM

29、中的内容,但在复为期间对个别引脚有影响,例如,会使ALE和PSEN变为无效状态。只要REST引脚为高电平,单片机就不断复位,只有当此引脚变为低电平以后,才会退出复位,CPU从初始状态开始工作。,、复位电路,MCS-5单片机通常采用上电复位和按钮复位两种复位方式。,(1)上电复位:在上电的瞬间,对单片机进行了复位。 具体电路如图2.7(a)所示,上电瞬间,+5V电源对RC电路充电,在RST引脚出现正脉冲(由于单片机内部的等效内阻,所以R不接也没关系)。只要RST引脚保持10微妙以上高电平,就能使单片机可靠复位。一般C=10微法,R=8.2千欧。(过程简单分析),(2)按钮复位:按钮复位电路如图2

30、.7(b)所示。 按下按键S,可以简单看成是两个电阻串联,因R2的阻值大,因而RST端分压为高电平,系统复位,而S松开以后RST电压下降,到低电平,系统开始工作。,图 2.7 单片机复位电路 (a)上电复位电路;(b) 开关复位电路,二、程序执行方式:连续执行工作方式和单步执行工作方式,1、连续执行方式,单片机按照程序一步一步地完成程序所规定的任务,CPU自始自终在不停的工作。 程序的执行受PC指挥,初始,PC的值为0000H,也就是单片机从0000H开始执行程序。0000H中一般存放一条跳转指令,跳到程序的入口地址,再一条接一条地执行程序中的指令。,2、单步执行方式,单步执行方式是为用户调试程序而设立的一种工作方式。在单片机开发系统的控制板上,设有一个单步执行按键。每按一次单步执

温馨提示

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

评论

0/150

提交评论