1 / 47

本章要点: 单片机的内部结构 单片机引脚的电气性能及功用       辅助电路及 CPU 时序

第 2 章 MCS-51 单片机的硬件结构. 本章要点: 单片机的内部结构 单片机引脚的电气性能及功用       辅助电路及 CPU 时序. 2.1 MCS-51 单片机的逻辑结构及信号引脚 2.1.1 MCS-51 单片机内部结构 MCS-51 单片机的系统框图如图 2-1 所示。. 单片机的各功能部件由内部总线连接在一起,其中主要有 CPU 、存储器、定时器 / 计数器、 I/O 口等。图 2-2 是 MCS-51 系列单片机内部的逻辑结构框图。. 以 8051 为例,它包含下列部件: 1. 中央处理器( CPU )

reba
Download Presentation

本章要点: 单片机的内部结构 单片机引脚的电气性能及功用       辅助电路及 CPU 时序

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章MCS-51单片机的硬件结构 • 本章要点: • 单片机的内部结构 • 单片机引脚的电气性能及功用 •       辅助电路及CPU时序

  2. 2.1 MCS-51单片机的逻辑结构及信号引脚 2.1.1 MCS-51单片机内部结构 MCS-51单片机的系统框图如图2-1所示。 单片机的各功能部件由内部总线连接在一起,其中主要有CPU、存储器、定时器/计数器、I/O口等。图2-2是MCS-51系列单片机内部的逻辑结构框图。

  3. 以8051为例,它包含下列部件: 1.中央处理器(CPU) 中央处理器是单片机的核心,完成运算和控制功能。由运算器和控制器组成。运算器是计算机的运算部件,用于实现算术和逻辑运算。计算机的数据运算和处理都在这里进行。控制器是计算机的指挥控制部件,它控制计算机各部分自动、协调地工作。运算器和控制器是计算机的核心部分,常把它们合在一起称之为中央处理器,简称CPU。MCS-51的CPU能处理8位二进制数或代码。 2.内部数据存储器(内部RAM) 8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。

  4. 3.内部程序存储器(内部ROM) 8051共有4 KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。 4.定时/计数器 8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。 5.并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。 6.串行口 MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。

  5. 7.中断控制系统 MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源, 即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。 8.时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。

  6. 2.1.2 MCS-51的信号引脚 80C51是标准的40引脚双列直插式集成电路芯片,引脚排列参见图2-3。 1.I/O线 PO.0~PO.7 PO口8位双向I/O口线。 P1.0~P1.7 P1口8位双向I/O口线。 P2.0~P2.7 P2口8位双向I/O口线。 P3.0~P3.7 P3口8位双向I/O口线。而且,P3口线有第二功能,如表2-2所示,使用时首先按需要优先选用它的第二功能,剩下不用的口线才作为I/O口线使用。 2.ALE/PROG地址锁存控制信号 在系统扩展时,ALE用于控制把P0输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用,但是当访问外部数据存储器时会丢失一个脉冲。 在8751单片机EPROM编程期间,此引脚接编程脉冲( PROG功能)

  7. 口线 第二功能 信号名称 P3.0 RXD 串行数据接收 P3.1 TXD 串行数据发送 P3.2 /INT0 外部中断0申请 P3.3 /INT1 外部中断1申请 P3.4 T0 定时器/计数器0计数输入 P3.5 T1 定时器/计数器1计数输入 P3.6 /WR 外部RAM写选通 P3.7 /RD 外部RAM读选通

  8. 3.PSEN外部程序存储器读选通信号 CPU在访问外部程序存储器时信号在每个机器周期中两次有效(低电平),以实现外部ROM单元的读操作。但在此期间,当访问外部数据存储器时, PSEN信号不出现。 4.EA/VPP外部访问允许/编程电源输入端 当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当EA信号为高电平时,则对ROM的读操作从内部程序存储器(0000H~0FFFH)开始,并可自动延续至外部程序存储器。8031单片机内部无程序存储器,所以EA端应始终为低电平。 在8751单片机内部EPROM编程期间,此引脚接21V编程电压。

  9. 5.RST/VPD 复位信号 当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。此引脚还可以接上备用电源。在Vcc掉电期间,由VPD向内部RAM提供电压,以保持内部RAM的数据。 6.XTAL1和XTAL2 外接晶体引线端 当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。在单片机内部,XTAL1是反相放大器的输入端,该放大器构成片内振荡器;XTAL2接至反相放大器的输出端。采用外部时钟时,对于HMOS单片机,XTAL1引脚必须接地,XTAL2输入外部时钟脉冲;对于CHMOS单片机,XTAL1作为驱动端,XTAL2引脚应悬空。 7.Vss 地线。 8.Vcc +5v电源。

  10. 2.2 MCS-51单片机的内部存储器 MCS-51单片机有两个独立寻址的程序存储器和数据存储器,它们的结构如下: 8051单片机程序存储器包含片内外统一编址的64K字节的程序存储空间,即片内4KB的ROM和片外64KB的ROM组成连续的程序存储空间;数据存储器包含片内128B和片外64KB的数据存储空间,如图2-4所示。

  11. CPU访问不同存储器时使用的指令不同,片选信号不同CPU访问不同存储器时使用的指令不同,片选信号不同

  12. 2.2.1 内部数据存储器低128单元 80C51的内部共有256个数据存储器单元,通常把这256个单元按其动能划分为两部分:低128单元(单元地址00H~7FH)RAM和高128单元(单元地址80H~FFH)SFR。 其中低128单元是单片机中供用户使用的数据存储器单元,可分为3个区域: 1.寄存器区 地址00H~1FH,共32个单元,分为4组,各寄存器组地址分布如表2-5所示,每组有8个8位寄存器,各组都记作R7~R0。寄存器常用于存放操作数及中间结果等。 在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是那一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。

  13. 单元地址 MSB← 位地址 →LSB 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 77H 76H 75H 74H 73H 72H 71H 70H 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H 67H 66H 65H 64H 63H 62H 61H 60H 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H 57H 56H 55H 54H 53H 52H 51H 50H 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H 47H 46H 45H 44H 43H 42H 41H 40H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H 37H 36H 35H 34H 33H 32H 31H 30H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 1FH 1EH 1DH 1CH 1BH 1AH 19H 18H 17H 16H 15H 14H 13H 12H 11H 10H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H 07H 06H 05H 04H 03H 02H 01H 00H 2.位寻址区 内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,总计128位,位地址为00H~7FH,如表2-3。位寻址区是布尔处理器的一部分。

  14. 3.用户RAM区 供用户使用的一般RAM区,共有80个单元,其单元地址为30H~7FH。在一般应用中常把堆栈开辟在此区中。MCS—51单片机堆栈区不是固定的, 原则上可设在内部RAM的任意区域内, 但为了避开工作寄存器区和位寻址区, 一般设在30H以后的范围内。 2.2.2 内部数据存储器高128单元 内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。因这些寄存器的功能已作专门规定,故称为专用寄存器(SFR),也可称为特殊功能寄存器。 l.程序计数器PC PC是一个16位的计数器,其内容为将要执行的指令地址(所要执行的下一条指令的地址),实际上它是指令地址寄存器,寻址范围达64KB。PC有自动加1功能,以实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,它不属于专用寄存器,但在执行转移、调用、返回等指令时能自动改变其内容,以改变程序的执行顺序。

  15. 2.累加器Acc Acc是一个具有特殊用途的8位寄存器,主要用于存放操作数或运算的中间结果。8051指令系统中的多数指令的执行都要通过Acc,所以它的地位重要,任务繁忙。 3.B寄存器 B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B为乘数。乘法操作后,乘积的高8位存于B中,乘积的低8位存放于累加器A中。除法运算时B为除数。除法操作后,余数存于B中,商存放于累加器A中。此外,B寄存器也可作为一般数据寄存器使用。 4.程序状态字PSW 程序状态字是一个8位寄存器,用于寄存指令执行的状态信息。PSW各位定义如下:

  16. 除PSW.l位保留未用外,其余各位的定义及使用介绍如下:除PSW.l位保留未用外,其余各位的定义及使用介绍如下: ·CY或C—进位标志位。 累加器A的最高位有进位(加法)或借位(减法)时,CY=1,否则CY=0。在位操作中,作累加位使用,在位传送、位与、位或等操作中,都要使用进位标志位。可以记作C。 ·AC—辅助进位标志位。 在加减运算中,当有低4位向高4位进位或借位时,AC由硬件置位,否则AC位被清“0”。在BCD码运算时需要十进制调整时也要用到AC位状态进行判断。 ·FO—用户定义的标志位。 用户可根据需要用软件方法对该位进行置位或复位,以控制程序的流程。 ·RS1、RS0—寄存器组选择位。 用于设定当前通用寄存器区,由指令置位或清零。通用寄存器有4组,其对应关系如表2-3所示。

  17. RS1 RS0 寄存器组 片内RAM地址 0 0 组0 00H~07H 0 1 组1 08H~0FH 1 0 组2 10H~17H 1 1 组3 18H~1FH ·OV—溢出标志位。 当带符号数加减运算结果超出范围(-128~+127),即产生了溢出,此时OV=1,表示加减运算运算结果是错误的;否则,OV=0表示运算正确。 在乘法运算中,OV=1,表示乘积超过255,即乘积分别在B与A中;反之OV=0,表示乘积只在A中。 在除法运算中,OV=1,表示除数为0,除法不能进行;反之,OV=0,表示除数不为0,除法可正常进行。 ·P—奇偶标志位。 表明累加器A中1的个数的奇偶性,在每个指令周期由硬件根据A的内容对P位进行置位或复位。若1的个数为偶数,P=0;若1的个数为奇数,P=1。

  18. 5. 数据指针DPTR 数据指针为16位寄存器,可以作为16位寄存器,也以作为两个8位寄存器使用,即: DPH(DPTR高位字节) DPL(DPTR低位字节) 6.堆栈指针SP 堆钱是一种数据结构,是只允许在其一端进行数据写入和删除操作的线性表。数据写入堆栈称为插入运算(PUSH),即入栈。数据从堆栈中读出称之为删除运算(POP),即出栈。堆栈按照“后进先出”原则存取数据。它的功能是在程序中断、子程序调用时,保护主程序的断点和某些寄存器的内容。 堆栈指针SP是8位的寄存器,用来指示堆栈顶部在内部RAM中的位置。系统复位后,(SP)=07H,但是一般堆栈开辟在用户RAM区中,所以,程序设计时要注意把SP设置在30H单元后。

  19. 堆栈的操作有两种方式。一种是自动方式,即在调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。另一种是指令方式,其进栈指令为PUSH,出栈指令为POP。堆栈的操作有两种方式。一种是自动方式,即在调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。另一种是指令方式,其进栈指令为PUSH,出栈指令为POP。 8051单片机堆栈的操作原则如下: 入栈操作:SP指针先加1,后写入数据; 出栈操作,先将SP指针所指地址的内容读出,然后SP自动减1。 说明: 8051单片机的21个专用寄存器离散的分布在内部RAM的高128单元中,如表2-4所示。实际上SFR也只定义了21个专用寄存器,而其他的单元均无定义,访问它们无意义,访问专用寄存器只能用直接寻址方式。在21个可字节寻址的专用寄存器中,有11个寄存器可位寻址,在表2-4中以(*)标出。字节地址可被8整除的SFR具有位寻址功能。

  20. 符号 单元地址 名称 位地址 符号 地址 *ACC E0H 累加器 ACC.7~ACC.0 E7H~E0H *B F0H 乘法寄存器 B.7~B.0 F7H~F0H *PSW D0H 程序状态字 PSW.7~PSW.0 D7H~D0H SP 81H 堆栈指针 DPL 82H 数据指针(低八位) DPH 83H 数据指针(高八位) *IE A8H 中断允许控制器 IE.7~IE.0 AFH~A8H *IP B8H 中断优先控制器 IP.7~IP.0 BFH~B8H *P0 80H 通道0 P0.7~P0.0 87H~80H *P1 90H 通道1 P1.7~P1.0 97H~90H *P2 A0H 通道2 P2.7~P2.0 A7H~A0H *P3 B0H 通道3 P3.7~P3.0 B7H~B0H PCON 87H 电源控制及波特率选择 *SCON 98H 串行口控制 SCON.7~SCON.0 9FH~98H SBUF 99H 串行数据缓冲器 *TCON 88H 定时控制 TCON.7~TCON.0 8FH~88H TMOD 89H 定时器方式选择 TL0 8AH 定时器0低8位 TL1 8BH 定时器1低8位 TH0 8CH 定时器0高 8位 TH1 8DH 定时器1高8位

  21. 2.2.3 内部程序存储器 8051芯片内有4KB的ROM存储单元,其地址为0000H~OFFFH,即内部ROM。在程序存储器中有一组特殊的保留单元0000H~002AH,使用时应特别注意。 其中0000H~0002H是系统的启动单元。因为系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。使用时应当在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。 而0003H~002AH共40个单元被均匀地分为五段,每段8个单元,分别作为五个中断源的中断地址区。具体划分为: 0003H~000AH 外部中断0中断地址区 000BH~0012H 定时器/计数器0中断地址区 0013H~001AH 外部中断1中断地址区 001BH~0022H 定时器/计数器1中断地址区 0023H~002AH 串行中断地址区

  22. 中断响应后,按中断种类,自动转到各中断区的首地址去执行程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此一般也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址再转到中断服务程序的实际入口地址去。中断响应后,按中断种类,自动转到各中断区的首地址去执行程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此一般也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址再转到中断服务程序的实际入口地址去。

  23. 2.3 MCS-51单片机并行输入/输出口 MCS-51有4个并行双向口,共32根I/O线,每个I/O口包含一个锁存器,一个输出驱动器和一个输入缓冲器。 2.3.1 P0口 1.结构:P0口的字节地址为80H,位地址为80H~87H。P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用I/O接口。其1位的结构原理如图2―5所示。

  24. P0口由8个这样的电路组成:锁存器起输出锁存作用,8个锁存器构成了特殊功能寄存器P0;场效应管(FET)V1、V2组成输出驱动器,以增大带负载能力;三态门1是引脚输入缓冲器;三态门2是用于读锁存器端口;与门3、反相器4及模拟转换开关构成输出控制电路。 2.地址/数据分时复用功能:当P0口作为地址/数据分时复用总线时,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输入数据。在访问片外存储器需从P0输出地址或数据信号时,控制信号应为高电平1,使转换开关MUX把反向器4的输出端与V1接通,同时把与门3打开。

  25. 3.通用I/O接口功能:P0口作为通用I/O接口使用,CPU向端口输出数据时,对应的控制信号为0,转换开关把输出级与锁存器端接通,同时因与门3输出为0使V2截止,此时输出级是漏极开路电路。3.通用I/O接口功能:P0口作为通用I/O接口使用,CPU向端口输出数据时,对应的控制信号为0,转换开关把输出级与锁存器端接通,同时因与门3输出为0使V2截止,此时输出级是漏极开路电路。 当P0口作为通用I/O接口时,要注意两点:第一,在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出,必须外接上拉电阻。第二,P0口作为通用I/O使用时是准双向口。 4.端口操作 MCS—51单片机有不少指令可直接进行端口操作,例如: ANL P0, A ;(P0)←(P0)∧(A) ORL P0, #data ;(P0)←(P0)∨ data DEC P0 ;(P0)←(P0)-1

  26. 2.3.2 P1 口 P1口的字节地址为90H,位地址为90H~97H。P1的口线逻辑电路如图2-6所示。

  27. P1口为准双向口。它在结构上与P0口的区别在于输出驱动部分,其输出驱动部分由场效应管V1与内部上拉电阻组成。当其某位输出高电平时,可以提供拉电流负载,不必像P0口那样需要外接电阻。P1口为准双向口。它在结构上与P0口的区别在于输出驱动部分,其输出驱动部分由场效应管V1与内部上拉电阻组成。当其某位输出高电平时,可以提供拉电流负载,不必像P0口那样需要外接电阻。 从功能上来看P1只有一种功能(对MCS—51子系列),即通用输入输出I/O接口,具有输入、输出、端口操作3种工作方式,每1位口线能独立地用作输入或输出线。当P1口作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。 2.3.3 P2口 P2口的字节地址为0A0H,位地址为OAOH~OA7H。P2口的电路逻辑参见图2-7

  28. 因为在实际应用中P2口用于为系统提供高位地址,因此在口电路中有一个多路转接开关MUX。但单一的P2 MUX的一个输入端是单一的“地址”,这是因为P2口只作为地址线使用而不作为数据线使用。当P2口作为高位地址线使用时,多路转接开关应倒向“地址”端。P2口也是一个准双向口。 此外,P2口也可以作为通用I/O口使用,这时多路转接开关倒向锁存器Q端。 2.3.4 P3口 P3口的字节地址为0B0H,位地址为0B0H~0B7H。P3口电路逻辑参见图2-8。

  29. 它的输出驱动由与非门3、V1组成,比P0、P1、P2口结构多了一个缓冲器4。P3口除了可作为通用准双向I/O接口外,还具有第2功能。它的输出驱动由与非门3、V1组成,比P0、P1、P2口结构多了一个缓冲器4。P3口除了可作为通用准双向I/O接口外,还具有第2功能。 当P3口作为通用I/O接口时,第2功能输出线为高电平,使与非门3的输出取决于口锁存器的状态。在这种情况下,P3口仍是1个准双向口,它的工作方式、负载能力均与P1、P2口相同。 当P3口作为第2功能使用时,其锁存器Q端必须为高电平,否则V1管导通,引脚被箝位在低电平,无法输入或输出第2功能信号。当Q端为高电平时,P3口的口线状态就取决于第2功能输出线的状态。

  30. 2.4 MCS-51单片机时钟电路与复位电路 单片机的各项工作是在时钟脉冲的控制下工作的,而时钟脉冲信号的产生则由单片机内部或外部时钟电路产生。 2.4.1 时钟电路 在MCS—51芯片内部有一个高增益反相放大器,频率范围是1.2~12MHz。其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。即单片机的时钟电路。如图2-9

  31. C 8 0 51 空 X T A L 2 T T L X T A L 1 1 外 部 时 钟 信 号 V S S MCS-51单片机也可采用外部时钟,此时使用外部振荡器产生外部时钟脉冲信号,外部脉冲信号由XTAL2端直接送至内部时钟电路,XTAL1端接地。外部时钟电路如图2-10所示。 一般地,电容C1和C2取30pF左右。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。要特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。 对于CHMOS型的80C51单片机,因其内部时钟发生器的信号取自反相放大器的输入端,所以接外部时钟信号时应接至XTAL1端,而使XTAL2端悬空,如图2-10(b)所示。

  32. 2.4.2 时序定时单位 时序:CPU执行一条指令的各个微操作所对应的脉冲信号遵循的时间顺序。 1.节拍与状态 把振荡脉冲的周期定义为节拍(用“P”表示)。振荡脉冲经过二分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态(用“S”表示)。这样,一个状态就包含两个节拍,其前半周期对应的节拍叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。 一个状态周期(状态节拍)=2个振荡周期(节拍) 2.机器周期 规定一个机器周期的宽度为6个状态,依次表示为S1~S6。一个机器周期总共有12个节拍,分别记作S1P1,S1P2,……,S6P2。当振荡脉冲频率为12MHz时,一个机器周期为lμs,当振荡脉冲频率为6MHz时,一个机器周期为2μs。MCS-51在通常应用情况下,使用振荡频率为6MHz或12MHz。 一个机器周期=6个状态=12个节拍

  33. 3.指令周期 指令周期是最大的时序定时单位,执行一条指令所需要的时间称之为指令周期。MCS-51的指令周期根据指令的不同,可包含有1、2、3或4个机器周期。 一个指令周期=1~4个机器周期 例:若MCS-51单片机的振荡频率为6MHZ,则一个机器周期为多少微秒? (执行一条单机器周期指令需多少微秒?) 解:因振荡频率为6MHZ,则一个振荡周期为1/6×10-6S=1/6μS 一个机器周期=6倍状态周期=12倍振荡周期=12×1/6=2 μS 4.典型指令的取指和执行时序 单片机执行任何一条指令都有取指令和执行指令两个阶段。通常情况下,在每个机器周期内,CPU不管是否需要总要进行两次取指操作。MCS—51单片机的CPU取指令和执行指令的时序如图2-11所示。

  34. T 时钟脉冲 ALE 读操作码 读操作码(无效) 读下一条指令 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 S3 S1 S2 S4 S5 S6 (a)1字节1周期指令 读操作码 读第二字节 读下一条指令 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 S1 S2 S5 S3 S4 S6 (b)2字节1周期指令 读操作码 读操作码(无效) P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 (c)1字节2周期指令

  35. 由时序图可见,ALE引脚上出现的信号是周期性的,访问程序存储器时,地址锁存信号ALE两次有效,即在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE信号每出现一次,CPU就进行一次取指令操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。由时序图可见,ALE引脚上出现的信号是周期性的,访问程序存储器时,地址锁存信号ALE两次有效,即在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE信号每出现一次,CPU就进行一次取指令操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。 按照指令字节数和机器周期数,8051的指令可分为6类,分别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令。 图2-11(a)、(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。 图2-11(c)给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。

  36. 2.4.3 复位电路与复位状态 通过某种方式,使单片机内各寄存器的值变为初始状态的操作称为复位。MCS—51单片机在时钟电路工作以后,在RST/VPD端持续给出2个机器周期的高电平就可以完成复位操作(一般复位正脉冲宽度大于10ms)。复位有上电复位和外部复位两种方式。其电路如图2-12所示。

  37. 复位后,内部各专用寄存器状态如下(*表示无关位):复位后,内部各专用寄存器状态如下(*表示无关位): PC: 0000H TMOD: 00H ACC: 00H TCON: 00H B: 00H TH0: 00H PSW: 00H TL0: 00H SP: 07H TH1: 00H DPTR: 0000H TL1: 00H P0~P3: FFH SCON: 00H IP: ***00000B SBUF: 不定 IE: 0**00000B PCON: 0***0000 注意: • 1.复位后PC值为0000H,表明复位后程序从0000H开始执行; • 2.SP值为07H,表明堆栈底部在07H。一般需重新设置SP值; • 3.P0~P3口值为FFH。P0~P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。

  38. 本章小结 本章介绍MCS-51型单片机芯片的硬件结构及工作特性。MCS-51单片机是由一个8位CPU,一个片内振荡器和时钟电路,4KB的ROM程序存储器,128B的RAM数据存储器,21个特殊功能寄存器,两个16位的定时器/计数器,可寻址的64KB外部数据存储器和64KB外部程序存储器空间的控制电路,32条可编程的I/O口线(4个8位并行I/O端口P0,P1,P2,P3),一个可编程的全双工串行口,具有5个中断源、2个优先级的中断结构组成。片有40个外部引脚,电源、地、XTAL0/XTAL1、P0~P3口、ALE、PSEN、RESET、EA。

  39. 8051单片机内部有256B数据存储器,分为高低128B。低128B的片内RAM分为工作寄存器区、位寻址区、用户RAM区。高128个字节为特殊功能寄存器区。 MCS-51型单片机芯片有4个8位并行I/O端口,其结构特性基本相同。当扩展片外RAM和ROM时,P0口分时传送低8位地址和8位数据,P2口传送高8位地址,P3口一般作第二功能使用,通常只有P1口用作一般I/O引脚。 时钟电路和时序部分,节拍、状态、机器周期、指令周期是单片机的定时单位,要掌握它们的概念,了解时钟电路及复位条件、复位电路、复位后的单片机状态。

  40. 思考与练习 一、思考题 1.8051单片机芯片包含哪些主要逻辑功能部件?各有什么主要功能? 2.MCS—51单片机的/EA信号有何功能?在使用8031时/EA信号引脚应如何处理? 3.MCS—51单片机有哪些信号需要芯片引脚以第二功能的方式提供? 4.内部 RAM低 128单元划分为哪 3个主要部分?说明各部分的使用特点。 5.程序计数器(PC)作为不可寻址寄存器,它有哪些特点? 6.堆找有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对SP重新赋值? 7.P0~P3口在使用上有哪些分工和特点?试比较各口的特点? 8.MCS一5l单片机运行出错或程序进入死循环,如何摆脱困境? 9.什么是指令周期,机器周期和时钟周期?如何计算机器周期的确切时间?

  41. 二、习题 判断题(指出以下叙述是否正确) 1.用户构建单片机应用系统,只能使用芯片提供的信号引脚。( ×) 2.程序计数器(PC)不能为用户使用,因此它就没有地址。( √ ) 3.内部 RAM的位寻址区,只能供位寻址使用而不能供字节寻 址使用。( ×) 4.在程序执行过程中,由 PC提供数据存储器的读/写地址。( ×) 5.80C51共有21个专用寄存器,它们的位都是可用软件设置的,因此是可以进行位 寻址的。( ×) 6.对单片机的复位操作就是初始化操作。( √ )

  42. 填空题 1.MCS—51单片机引脚信号中,信号名称带上划线的表示该信号(0)或( 低电平)有效。 2.MCS—51单片机内部RAM的寄存器区共有(32)个单元,分为(4)组寄存器,每组(8)个单元,以(Rn)作为寄存器名称。 3.单片机系统复位后,(PSW)=00H,因此内部RAM寄存区的当前寄存器是第(0)组,8个寄存器的单元地址为(R0)~(R7)。 4.通过堆栈操作实现子程序调用,首先要把(PC)的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断点送回(PC)。 5.寻址程序状态字的F0位,可使用的地址和符号有(PSW.5)、(F0)、(D5)和(F7H.5)。 6.MCS—51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器)和芯片外跨接的(晶体振荡器)与(微调电容)。 7.在MCS—51中,位处理器的数据位存储空间是由(SFR)的可寻址位和内部RAM为寻址区的(128)个位。 8.MCS一51的4个I/O口中,P0是真正的双向口,而其它口则为准双向口,这一区别在口线电路结构中表现在( )的不同上。

  43. 三、选择题(在下列各题的4个选项中,只有一个是正确的,请选择)三、选择题(在下列各题的4个选项中,只有一个是正确的,请选择) 1.单片机芯片内提供了一定数量的工作寄存器,这样做的好处不应包括(A) (A)提高程序运行的可靠性 (B)提高程序运行速度 (C)为程序设计提供方便 (D)减少程序长度 2.内部RAM中的位寻址区定义的位是给( A) (A)位操作准备的 (B)移位操作准备的 (C)控制转移操作准备的 (D)以上都对 3.对程序计数器PC的操作(A) (A)是自动进行的 (B)是通过传送进行的 (C) 是通过加“1”指令进行的 (D)是通过减“1”指令进行的 4.以下运算中叶溢出标志 OV没有影响或不受 OV影响的运算是(A) (A)逻辑运算 (B)符号数加减法运算 (C)乘法运算 (D)除法运算 5.单片机程序存储器的寻址范围是由程序计数器 PC的位数决定的,MCS—51的 PC为16位用此其寻址范围是(B) (A)4 KB(B)64 KB(C)8 KB(D)128 KB 6、在算术运算中,与辅助进位位AC有关的是(D) (A)二进制数(B)八进制数 (C)十进制数 (D)十六进制数

  44. 7.以下有关PC和DPTR的结论中错误的是(C) (A)DPTR是可以访问的而PC不能访问 (B)它们都是 16位的寄存器 (C)它们都具有加“1”功能 (D)DPTR可以分为 2个 8位的寄存器使用,但 PC不能 8.PC的值(C) (A)当前指令前一条指令的地址(B) 当前正在执行指令的地址 (C)下一条指令的地址 (D) 控制器中指令寄存器的地址 9.假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为(D)  (A)36H (B)37H (C)38H (D)39H 10.在80C51中,可使用的堆栈最大深度为(C) (A)80个单元(B)32个单元(C)128个单元(D)8个单元 11.位处理器是单片机面向控制应用的重要体现,下列中不属于位处理器资源的是(D) (A)位累加器CY    (B) 通用寄存器的可寻址位 (C)专用寄存器的可寻址位 (D)位操作指令集 12.在MCS—51单片机的运算电路中,不能为 ALU提供数据的是(D) (A)累加器A(B)暂存器(C)寄存器B(D)状态寄存器PSW 13.在 MCS—51中(C) (A)具有独立的专用的地址线    (B)由P0口和P1口的口线作地址线 (C)由P0口和P2口的口线作地址线 (D) 由P1口和P2口的口线作地址线

More Related