收藏 分享(赏)

mcs-51单片机课件.ppt

上传人:tkhy51908 文档编号:7973096 上传时间:2019-06-01 格式:PPT 页数:47 大小:865.50KB
下载 相关 举报
mcs-51单片机课件.ppt_第1页
第1页 / 共47页
mcs-51单片机课件.ppt_第2页
第2页 / 共47页
mcs-51单片机课件.ppt_第3页
第3页 / 共47页
mcs-51单片机课件.ppt_第4页
第4页 / 共47页
mcs-51单片机课件.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第2章 MCS-51单片机,2.1 概述 2.2 单片机内部结构 2.3 单片机的引脚及功能 2.4 单片机的存储器结构 2.5 单片机的复位电路 2.6 单片机的时钟与时序,2.1 概述,由于MCS-51系列单片机及其兼容的单片机占主流地位,同时该系列单片机进入市场早,参考资料丰富,因此,在单片机应用中占有重要位置。理解MCS-51系列单片机的内部结构、工作原理、应用实例后,将容易理解和使用其他系列,如Nec、Motorola、MicroChip单片机系统。8051CPU是整个MCS-51系列单片机芯片的基础和核心。MCS-51的典型产品是8051、8031、8751。8051是ROM型单片

2、机,内部有4KBROM;8031无片内ROM,8751片内有4KBEPROM。除此以外,它们的内部结构及引脚完全相同。本章将以MCS-51系列的8051为典型例子,详细介绍单片机的结构、性能、存储器结构及工作原理等内容。通过对这些内容的掌握,可以起到举一反三、触类旁通的作用。,2.2 单片机内部结构,MCS-51系列单片机为8位单片机,从其制造工艺上可分为HMOS和C-HMOS型两种。从其功能结构上可分为Intel805187518031和80528032和804487448344三档。Intel805187518031,它们的结构基本相同,其主要差别反映在内部程序存储器有所不同。本节将对MC

3、S-51单片机的结构作一介绍。 2.2.1 MCS-51单片机的内部结构,图2.1 MCS-51单片机内部结构图,1. MCS-51的结构和性能MCS-51单片机是在一块大规模集成电路上集成了CPU、ROM、RAM、定时器计数器和4*8位并行IO,一个串行IO线等一台微型机的基本部件。其内部的部件和特性如下: (1)一个8位微处理器; (2)振荡器和时钟电路; (3)4KB的程序存储器(ROM或EPROM); (4)可寻址外部程序存储器和数据存储器,各64KB; (5)两个16位定时器计数器; (6)32位可编程并行IO口; (7)一个可编程全双工串行IO口; (8)二十多个特殊功能寄存器;

4、(9)5个中断源,两个优先级嵌套中断结构。,2. 微处理器8051微处理器的组成如表2-1所示。 微处理器是单片机的核心部件,它由运算器和控制器组成,下面分别叙述其功能。,(1)运算器运算器ALU是进行算术或逻辑运算的部件,可以对半字节(4位)、单字节等数据进行操作,例如可实现加、减、乘、除四则运算和与、或、异或、求补、取反等逻辑运算,操作结果一般送回累加器ACC,其状态信息送至状态寄存器PSW。 (2)控制器控制器是8051微处理的核心部分,也是最复杂的部分。下面介绍程序计数器和指令寄存器的功能。 程序计数器:程序计数器PC为16位,用来存放将要执行的指令地址。每当该指令取出后,PC的内容就

5、自动加1。PC内容的低8位经P0口输出,高8位经P2口输出。 指令寄存器:指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码器译出后由定时与控制电路发出相应的控制信号完成指令功能。,2.3 单片机的引脚及功能,2.3.1 P0P3口功能及特点MCS-51单片机有4个8位双向并行IO口,P1口,P2口和P3口为准双向口(在用作输入线时,口锁存器必须先写入“1”,故称准双向口),P0口为双向三态数据线口,下面分别介绍这些口的特性和功能。,P0口为双向三态口,可以作为输入输出口。但在实际应用中通常作为地址数据总线口,即为低8位地址数据总线分时复用。低8位地

6、址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。,P1口每一位都能作为可编程的输入或输出线。,P2口每一位也都可作为输入或输出线用。当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线,对8031单片机采说,P2口一般只作为地址总线使用,而不作为IO线直接与外设相连。,P3口为双功能口,作为第一功能使用时,其功能与P1口相同。当作第二功能使用时,每一位功能如表2一1所示。,表2-1 P3口的第二功能,2.3.2 /EA、/PSEN、ALE、RST的功能及特点 RSTVpo(9)复位或其他电源复用引脚,当振荡器运行时,在此引脚上出现两个机器周期

7、的高电平将单片机复位。Vcc掉电期间,此引脚上可接备用电源,由Vpo向内部RAM提供备用电源,以保持内部RAM的数据。ALEPROG(30)正常操作时ALE为允地址锁存信号,将低8位地址锁存到地址锁存器。ALE端以不变的频率(振荡频率的16)周期地发出正脉冲信号。因此,它可用作对外输出的时钟脉冲,或用作定时目的。当访问外部程序存储器时,ALE两次有效;但每当访问外部数据存储器时,ALE一次有效。ALE端可以驱动8个LSTTL电路。,PSEN(29)此输出是外部程序存储器的读选通信号。在外部程序存储器取指令(或常数)期间,每个机器周期,PSEN两次有效。同样,PSEN可以驱动8个LSTTL电路。

8、EAVpp(31)此端为内部程序存储器或外部程序存储器选择端。当EA为高电平时,访问内部程序存储器(PC值小于4K)。当EA为低电平时,则访问外部程序存储器,不管片内有无内部程序存储器。,2.4 单片机的存储器结构,多数单片机系统,包括MCS-51系列单片机的存储组织方式与通用微机系统不同,程序存储器地址空间和数据存储器地址空间相互独立,而通用微机系统的程序存储器和数据存储器往往共用同一存储区,统一编址。 MCS-51系列单片机的存储器由三部分组成, 1.程序存储器 片内程序存储器0000H-0FFFH,共4KB; 外部程序存储器0000H-FFFFH,共64KB。 2.片内的数据存储器 内部

9、RAM存储器00H-7FH,共128字节;特殊功能寄存器80H-FFH。,3.外部数据存储器(0000H-FFFFH,共64KB),2.4.1 程序存储器这种存储器是ROM型的存储器,专门用来存放编制好的固定程序或存放写在程序中的固定的数据,一旦写入就不能轻易改变。 8051具有4KB的ROM,8751具有4KB的EPROM,在一定条件下可以改写,而在8031片内则无程序存储器,需外部扩展EPROM。对于MCS51单片机,64KB程序存储器的地址空间是统一的。对于片内有ROM的单片机占用0000H0FFFH地址空间,而外部程序存储器的空间为1000HFFFFH。对于8031单片机,只有外部程序

10、存储器,地址从0000HFFFFH。,MCS-51系列单片机保留给系统使用的程序存储器地址空间如下: 系统复位 0000H 外部中断0(INT0非)服务程序入口地址 0003H 定时器0溢出中断服务程序入口地址 000BH 外部中断1(INT1非)服务程序入口地址 0013H 定时器1溢出中断服务程序入口地址 001BH 串行口中断服务程序入口地址 0023H复位后,程序计数器PC为0000H,即从程序存储器的0000H单元读出第一条指令。因此,可在0000H单元内放置一条转移指令,如LJMP (表示主程序入口地址)。由于系统给每一中断服务程序预留了8个字节,因此对于51系列单片机来说,用户主

11、程序最好放在002BH单元后。,2.4.2 数据存储器 数据存储器分为两个部分 片内数据存储器 片外数据存储器 1.片内数据存储器片内存储器由内部RAM和特殊功能寄存储器组成。对于51系列单片机来说,内部RAM容量为128B(00H-7FH),而特殊功能寄存储器也分配了字节地址,离散地分布在80H-0FFH空间内。片内数据存储器按功能可分三个区域: 工作寄存器区;位寻址区;缓冲器区(堆栈区)。,(1)工作寄存器区其中00H1FH(031)共32个单元是四个通用工作寄存器区,每一区有8个工作寄存器R0R7。R0的物理地址可以是00H,也可以是08H、10H或18H;同理,R1的物理地址可以是01

12、H,也可以是09H、11H或19H。任何时候只能选择四个工作寄存器区中的一个区作为当前工作寄存器区,寄存器和RAM地址对应关系如表23(P14)所列。当前程序使用的工作寄存器区,是由程序状态字PSW的第3、4位(RS1,RS0)指示的。PSW的状态和工作寄存器区对应关系见表24。,图24 工作寄存器区选择CPU通过修改PSW中的RS1,RS0两位的状态,就能任选个工作寄存器区。这个特性使MCS51具有快速现场保护功能。如果用户程序不需要四个工作寄存器区,则不用的工作寄存器区单元可作一般的RAM使用。,(2)位寻址区内部RAM的20H2FH为位寻址区,这16个单元的每一位都有一个8位地址,位地址

13、范围为00H7FH。该区域可按字节读写,也可按位读写,位地址从20H单元开始,共有16字节8位,即128个位地址。如果系统需要位操作,最好保留20H-2FH单元的部分或全部,作为位存储区,以支持位处理操作。位寻址区的每一位都可以直接进行位操作。通常把各种程序状态标志位控制变量,设在位寻址区内,同时,位寻址区的RAM单元也可以作一般的数据缓冲器使用。RAM寻址区位地址映象如表25(P15)所示。,(3)缓冲器区内部RAM的30H7FH的地址区,可作为数据缓冲器使用,存放数据,由于该区有丰富的操作指令,使用十分方便。在实际应用程序中,常需在RAM区设置堆栈,MCS51的堆栈般设在30H7FH的范围

14、内。栈顶的位置由SP指示。复位后,堆栈指针SP指向07H单元。因此,一般要修改,可将SP设在2FH之上。 2.外部数据存储器在51系列中,允许用户扩展外部数据存储器,用户可以通过P0、P2口最多连接64KB外部数存储器。,2.4.3 特殊功能寄存器MCS51单片机内的并行IO口锁存器,定时器计数器、串行口数据缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现,它们分散地分布在80HFFH的地址空间,特殊功能寄存器地址空间映象如表26(P16)所示。MCS51单片机除了片内RAM20H2FH的16个单元的128位具有位地址空间00H7FH以外,凡是字节地址能被8整除的特殊功能寄存器

15、都具有位地址,它们分散地分布在80HFFH的位地址空间内。这些特殊功能寄存器,大部分将在后面有关章节详述,这里就ACC,B、PSW、SP、DPTR、I/O端口寄存器作介绍。,1累加器ACC累加器是一个最常用的专用寄存器,大部分单操作数指令的操作数取自累加器,很多双操作数指令的个操作数取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器A或A、B寄存器中。指令系统中用A作为累加器的助记符。例如:ADD A,30H;在指令中,累加器ACC常简写为“A”该指令的含义是以累加器A的内容作为被加数,加数存放在内部RAM的30H单元中,被加后的结果,即“和”存放在累加器A中。 2寄存器B,寄存器

16、B用在乘法和除法指令中,乘法指令的两个操作数分别存放在A和B中,而运算后乘积的低8位存放在A中、高8位存放在B中。例如:MUL AB;该指令的功能为A与B的积存放在BA中除法指令中,被除数存放在A中,除数存放在B中,运算结果,商数存放在A中,余数存放在B中。在其他指令中,B寄存器可作一般的寄存器使用。 3 程序状态字PSW程序状态字是一个8位寄存器,有时也称为“标志寄存器”,由一些标志位组成,它用于存放指令运行的状态。其包含的状态信息及含义如表27所示。,表27 程序状态寄存器的标志位 各位的功能如下: (1)CY进位标志:当执行算术运算时,最高位向前进位或借位时,CY被置位。在执行逻辑运算时

17、,可以被硬件或软件置位或清零。在布尔处理机中,它被认为是位累加器。 (2)AC辅助进位标志。进行加法或减法运算时,当低四位向高四位进位或借位时,AC被置位,否则就被清零。AC被用于十进制调整,详见DA A指令。 (3)F0标志。是用户定义的一个状态标志,可以用软件来使它置位或清零,也可以用软件测试F0以控制程序的流向。,(4)RSl,RS0寄存器区选择控制位。可以用软件来置位或清零,以确定工作寄存器区,RS1,RS0与工作寄存器区的关系如表24所示。 (5)OV溢出标志。当执行算术运算ADD或SUBB指令时,对带符号数作加、减运算时,OV1,表示加、减运算的结果超出8位带符号数的范围(+127

18、128)。OV标志常用C6和C7的关系来表示。OVC6C7;当进行加、减运算时,C6表示D6位向D7位有进位或借位,C7表示D7位向进位位Cy有进位或借位。在MCS51单片机中,无符号数乘法指令MUL和除法指令DIV的执行结果也会影响溢出标志。,(6)奇偶标志。表示累加器A中1的位数的奇偶数。若1的位数为奇数,则P置位,若1的位数为偶数,则清零。该标志在每个指令周期由硬件来置位或清0。此标志位对串行通信中的数据传输有重要意义。在串行通信中常用奇偶校验检验。 (7)PSW.1:保留位,也可作为用户标志位。在计算机中,对于没有定义的位或字节,必须注意是否存在物理存储单元与之对应。当存在物理存储单元

19、与之对应时,用户就可以读写,如PSW.1位;没有相应物理存储单元与之对应时,则不能使用,否则读操作结果不确定,而写入的数据将丢失。如特殊功能寄存器地址映像空间内80HFFH中,许多单元并没有相应的物理存储器。,4 堆栈指针SP在计算机内,需要一个“先进后出”(First In Last Out,简称FILO)存储区,存放子程序调用(包括中断响应)时程序计数器PC的当前值,以及需要保存的CPU内各寄存器的值,即保存现场,以便子程序或中断服务程序执行结束后能够返回主程序。这一存储区称为堆栈区。为了正确存取堆栈区内的数据,需要一个寄存器指示最后进入堆栈的数据所在存储单元的地址,堆栈指针SP寄存器就是

20、为此设计的。在MCS51系列单片机中,SP可以指向内部RAM中00H7FH的任一单元。在MCS51系列单片机内,堆栈向上生长,即将数据压入堆栈后,SP寄存器内容增大;数据从堆栈中弹出时,SP减小。,数据入栈的操作过程为:先将SP加1(即SPSP+1),然后将要入栈的数据存放在SP指向的存储单元中。数据从堆栈中弹出时,先将SP指针指定的存储单元内容传送到POP指令给定的寄存器或内部RAM单元中,然后SP减1(即SPSP-1)。可以看出,堆栈的底部是固定的,而堆栈的顶部随着数据入栈和出栈上下浮动。系统复位后,PSW的RS1、RS0位为00,即选择了工作寄存器区中的0区作为当前工作寄存器区,SP寄存

21、器的初值为07H;当有数据进入堆栈时,从08H单元开始存放是不允许的,原因是08H1FH工作寄存器区不宜占用;20H2FH是位地址区,也需要部分或全部保留。因此,必须通过数据传送指令重新设置SP的初值,将堆栈底部设定在30H7FH之间,如:MOV SP,#5FH;将堆栈设在60H单元之后,内部RAM 30H7FH单元既可作为堆栈区,同时也是用户数据存储区。其数量有限,必须充分利用。因此,将堆栈底部设在何处,必须认真考虑。随着入栈数据增多,SP超出7FH时,发生上溢,这将出现不可预料的后果。故此,在设置SP初值时,必须考虑堆栈最大深度。子程序或中断嵌套层数越多,所需堆栈深度越大。为了避免堆栈顶部

22、进入用户数据存储区,造成混乱,可将堆栈设在用户数据存储区之上,如在某一应用系统中,需要32个字节作为用户数据存储区(如30H4FH),则初始化时用MOV SP,#4FH指令,将堆栈底部设在50H,即堆栈深度为48个字节(50H7FH)。,5数据指针寄存器DPTR这是一个16位的专用寄存器,用来存放外部数据存储器的16位地址,当对64KB的外部数据存储器寻址时,可作间址寄存器,用下列两条指令来传送数据MOVXA,DPTRMOVXDPTR,A在访问程序存储器时,DPTR可用作基址寄存器,以读取存放在程序存储器内的表格常数:MOVCA,A+DPTRDPTR可用其高位字节寄存器DPH和低位字节寄存器D

23、PL表示,既可作一个16位寄存器用,也可作两个8位寄存器来用。 6I/O端口寄存器P0、P1、P2、P3口寄存器实际上就是P0口-P3口对应的I/O端口锁存器,用于锁存通过端口输出的数据。,在MCS-51中,特殊功能寄存器分别隶属于相应的单元电路。CPU单元包括的寄存器有ACC、B、PSW、DPTR和程序计数器PC。PC是一个16位的地址寄存器,用于存放当前指令码在程序存储器中的地址。PC不属于特殊功能寄存器,它没有物理地址。MCS-51系列单片机有些特别,CPU单元内的寄存器,如累加器A、寄存器B、堆栈指针SP、程序状态字PSW以及工作寄存器R7R0等具有字节地址。这样,在汇编语言指令中,对

24、这些寄存器操作时,可以使用寄存器名,也可以直接引用这些寄存器相应的字节地址,例如:MOV A,#30H,将立即数30H传送到累加器A中,这条指令的目的操作数使用了寄存器寻址方式;MOV 0E0H,#30H;将立即数30H传送到直接地址0E0H中,这条指令的目的操作数使用了直接寻址方式。,由于0E0H单元就是累加器A的映像地址,因此这两条指令的功能相同,都是将立即数30H传送到累加器A中。定时/计数器单元包含的寄存器有TMOD、TCON、T0(16位,由TH0和TL0构成)、T1(16位,由TH1和TL1构成)。 并行I/O端口寄存器:P0P3。 中断单元电路内的寄存器:IE和IP。 串行通信单

25、元电路内的寄存器:SCON、SBUF和PCON。,2.5单片机的复位电路 2.5.1复位复位操作完成单片机的片内电路初始化,使单片机从一种确定的初态开始运行。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容。值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。说明:表中符号X为随机状态;A00H,表明累加器已被清零;特殊功能寄存器复位后的状态为确定值,如表28所示。,PSW00H,表明选

26、寄存器0组为当前工作寄存器组;SP07H,表明堆栈指针指向片内RAM07H字节单元。根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;P0-P3FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP00000B表明各个中断源处于低优先级;IE000000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平。若为高

27、电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。MCS-51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于RAM内部的数据则不变。,2.5.2 复位电路当MCS5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 上电复位 上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图25(A)所示。图中电容C1和电阻R1对电源+5V来说构成微分电路。上电后,保持RST一段高电平时间就能使单片机复位。,上电或开关复位要求电源接通后,单片机自动复位,并

28、且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如图25(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。,根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。图25(A)中:Cl1030uF,R11k,图25(B)中:C1uF,Rllk,R210k。图25(B)为开关复位电路。当按下复位接钮时,电源对外接电容充电,使RSTVpo端为高电平。复位按钮松开后,电容通过内部下拉电阻放电,逐渐使RSTVpo端恢复低电平。,2.6

29、 单片机的时钟与时序,2.6.1 时钟电路MCS-51单片机芯片内部有一个反向放大器构成的振荡电路,XTAL1为振荡电路的输入端,XTAL2为振荡电路的输出端。MCS-51的时钟可以由内部方式或外部方式产生。内部方式时钟电路如图26(a)所示,利用MCS-51内部的振荡电路,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,定时元件一般采用石英晶体和电容组成的并联谐振回路。晶体可以在1.212MHZ之间任选,电容可以在530pF之间选择,电容C01、C02的大小,可起频率微调作用。外部方式的时钟电路,如图26(b)和(c)所示。XTAL1接地;XTAL2接外部振荡器。对外

30、部,振荡信号无特殊要求,但需保证脉冲宽度,通常为频率低于12MHz的方波信号。,图26 单片机的时钟电路,2.6.2 CPU的时序CPU执行一条指令的时间称为指令周期,MCS51典型的指令周期为一个机器周期。一个机器周期由包含12个振荡周期的6个状态S1S6组成,每一个状态又分为两个时相P1和P2,所以个机器周期可依次表示为S1P1,S1P2S6P1,S6P2。一般算术逻辑操作发生在时相P1期间,而内部寄存器到寄存器的传送发生在时相P2期间。振荡周期:为单片机提供时钟信号的振荡源的周期。时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。 机器周期:通常将完成一个基本操作所需的时间称为机器周期

31、。指令周期:是指CPU执行一条指令所需要的时间,一个指令周期通常含有14个机器周期。,若MCS51单片机外接晶振为12MHz时,则单片机的四个周期的具体值为:振荡周期1/12MHz1/12s0.0833s时钟周期1/6s0.167s机器周期1s指令周期14sMCS51单片机的取指令和执行指令内部时钟信号不能从外部观察到,所以用XTAL2振荡信号作参考,低8位地址的锁存信号ALE在访问外部程序存储器的机器周期中两次有效(S1P2至S2P1和S4P2至S5P1产生);在访问外部数据存储器的机器周期内,ALE信号一次有效(S1P2至S2P1产生正脉冲)。,对于单周期指令,当指令操作码读入指令寄存器时,便从S1P2开始执行指令。如果是双字节指令,则在同一机器周期的S4读入第2字节。若为单字节指令,则在S4期间仍进行读,但所读入的字节操作码被忽略,且程序计数器也不加l。在S1P2结束时完成指令操作。大多数MCS51指令执行时间为一个或两个机器周期,乘法和除法是仅有的需两个以上机器周期的指令,它们需4个机器周期。对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个字节,但MOVX指令例外。MOVX指令是访问外部数据存储器的单字节双机器周期指令。在执行MOVX指令期间,少执行两次取指令码操作,而进行外部数据存储器的寻址被选通。,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报