第2章 51单片机结构与原理(1)_第1页
第2章 51单片机结构与原理(1)_第2页
第2章 51单片机结构与原理(1)_第3页
第2章 51单片机结构与原理(1)_第4页
第2章 51单片机结构与原理(1)_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、主要内容:主要内容:MCS-51内部结构、特点、工作方式、时序和最小应用系统。内部结构、特点、工作方式、时序和最小应用系统。为学生后续学习单片机应用系统设计、利用单片机解决工程为学生后续学习单片机应用系统设计、利用单片机解决工程实际问题打下坚实的基础。重点在于基本概念、组成原理、实际问题打下坚实的基础。重点在于基本概念、组成原理、特点,难点在于时序。特点,难点在于时序。 MCS-51系列系列单片机都是单片机都是以以Intel公司最早的典型产品公司最早的典型产品8051为为核心,增加核心,增加了一定的了一定的功能部件功能部件后构成的,因此,本章以后构成的,因此,本章以8051为主介绍为主介绍MC

2、S-51系列单片机系列单片机 。 2.1.1 MCS-51单片机的内部结构单片机的内部结构 MCS-51单片机的组成:单片机的组成: CPU(进行运算、控制进行运算、控制)、RAM(数据存数据存储器储器)、ROM(程序存储器)、程序存储器)、I/O口口(串口、并口)、内部总串口、并口)、内部总线线 和中断系统等。和中断系统等。组成框图如下:组成框图如下:8051的内部结构展开图的内部结构展开图1288RAMRAM地址寄存器地址寄存器P3口口P1口口P2口口P0口口锁存器锁存器锁存器锁存器锁存器锁存器锁存器锁存器中断控制中断控制定时定时/计数器计数器串行串行I/O口口SP寄存器寄存器B累加器累加

3、器A暂存器暂存器1 暂存器暂存器2程序状态程序状态字字PSW指令寄存器指令寄存器IR指令译码器指令译码器ID数据指针数据指针DPTR缓冲器缓冲器程序计数器程序计数器PCPC增增1程序地址寄存器程序地址寄存器AR定时与控制定时与控制4K8ROMALUCPU8051单片机包含以下功能部件:单片机包含以下功能部件: (1)8位位CPU。(2)布尔代数处理器,具有位寻址能力。)布尔代数处理器,具有位寻址能力。(3)128B内部内部RAM数据存储器,数据存储器,21个专用寄存器。个专用寄存器。(4)4KB内部掩膜内部掩膜ROM程序存储器。程序存储器。(5)2个个16位可编程定时器位可编程定时器/计数器。

4、计数器。(6)32个(个(48位)双向可独立寻址的位)双向可独立寻址的I/O口。口。(7)1个全双工个全双工UART(异步串行通信口)。(异步串行通信口)。(8)5个中断源、两级中断优先级的中断控制器。个中断源、两级中断优先级的中断控制器。(9)时钟电路,外接晶振和电容可产生)时钟电路,外接晶振和电容可产生1.2MHz12 MHz的时的时钟频率。钟频率。(10)外部程序)外部程序/数据存储器寻址空间均为数据存储器寻址空间均为64KB。(11)111条指令,大部分为单字节指令。条指令,大部分为单字节指令。(12)单一)单一+5V电源供电,双列直插电源供电,双列直插40引脚引脚DIP封装。封装。

5、(1)运算器)运算器组成组成:8位算术逻辑运算单元位算术逻辑运算单元ALU(Arithmetic Logic Unit)、)、8位位累加器累加器A(Accumulator)、)、8位位寄存器寄存器B、程序状态字寄存、程序状态字寄存器器PSW(Program Status Word)、)、8位位暂存寄存器暂存寄存器TMP1和和TMP2等。等。功能功能:完成算术运算和逻辑运算。完成算术运算和逻辑运算。1. 中央处理器(中央处理器(CPU)组成组成:运算器、控制器。:运算器、控制器。l运算器(运算器(ALU)的主要功能)的主要功能 lA)算术和逻辑运算算术和逻辑运算,可对半字节(一个字节是,可对半字

6、节(一个字节是8位,半个位,半个字节就是字节就是4位)和单字节数据进行操作。位)和单字节数据进行操作。B)加、减、乘、除、加)加、减、乘、除、加1、减、减1、比较等算术运算。、比较等算术运算。C)与、或、异或、求补、循环等逻辑运算。)与、或、异或、求补、循环等逻辑运算。D)位处理位处理功能(即布尔处理器)。功能(即布尔处理器)。由于由于ALU内部没有寄存器,参加运算的操作数,必须放在内部没有寄存器,参加运算的操作数,必须放在累加器累加器A中。累加器中。累加器A也用于存放运算结果。也用于存放运算结果。例如例如:执行指令:执行指令 ADD A,B 执行这条指令时,累加器执行这条指令时,累加器A中的

7、内容通过输入口中的内容通过输入口In_1输入输入ALU,寄存器,寄存器B通过内部数据总线经输入口通过内部数据总线经输入口In_2输入输入ALU,A+B的结果通过的结果通过ALU的输出口的输出口Out、内部数据总线,送回、内部数据总线,送回到累加器到累加器A。(2)控制器)控制器组成组成:程序计数器程序计数器PC(Program Counter)、指令寄存)、指令寄存器器IR(Instruction Register)、指令译码器)、指令译码器ID(Instruction Decoder)、堆栈指针)、堆栈指针SP、数据指针、数据指针DPTR、定时控制逻辑和振荡器、定时控制逻辑和振荡器OSC等电

8、路。等电路。功能功能:CPU根据根据PC中的地址将欲执行指令的指令码从存中的地址将欲执行指令的指令码从存储器中取出,存放在储器中取出,存放在IR中,中,ID对对IR中的指令码进行译中的指令码进行译码,定时控制逻辑在码,定时控制逻辑在OSC配合下对配合下对ID译码后的信号进译码后的信号进行分时,以产生执行本条指令所需的全部信号。行分时,以产生执行本条指令所需的全部信号。 l程序计数器程序计数器PC(Program Counter) PC是一个是一个16位的计数器,专门用于存放位的计数器,专门用于存放CPU将要执行将要执行的指令地址(即下一条指令的地址),寻址范围为的指令地址(即下一条指令的地址)

9、,寻址范围为64KB,PC有自动有自动 加加1功能,功能,不可寻址不可寻址,用户,用户无法无法对它进行对它进行读写读写,但,但是可以通过是可以通过 转移、调用、返回等指令改变其内容,以控制程转移、调用、返回等指令改变其内容,以控制程序执行的顺序。序执行的顺序。l PC的作用是用来的作用是用来存放将要执行的指令地址存放将要执行的指令地址,共,共16位,位,PC低低8位经位经P0口输出,高口输出,高8位经位经P2口输出。也就是说,程序口输出。也就是说,程序执行到什么地方,程序计数器执行到什么地方,程序计数器PC就指到哪里,它始终是跟就指到哪里,它始终是跟着程序的执行。用户程序是存放在内部的着程序的

10、执行。用户程序是存放在内部的ROM中的,要执中的,要执行程序就要从行程序就要从ROM中一个个字节的读出来,然后到中一个个字节的读出来,然后到CPU中中去执行,那么去执行,那么ROM具体执行到哪一条呢?这就需要程序计具体执行到哪一条呢?这就需要程序计数器数器PC来指示。来指示。l指令寄存器指令寄存器IRl 指令寄存器的作用就是用来指令寄存器的作用就是用来存放即将执行的指令代码存放即将执行的指令代码。在这里先简单的了解下在这里先简单的了解下CPU执行指令的过程,首先由程序存执行指令的过程,首先由程序存储器(储器(ROM)中读取指令代码送入到指令寄存器,经译码器)中读取指令代码送入到指令寄存器,经译

11、码器译码后再由定时与控制电路发出相应的控制信号,从而完成译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,在后面将指令的功能。关于指令在单片机内部的执行过程,在后面将会进行详细的讲解。会进行详细的讲解。l指令译码器指令译码器IDl 用于对送入指令寄存器中的指令进行译码,所谓译码就用于对送入指令寄存器中的指令进行译码,所谓译码就是是把指令转变成执行此指令所需要的电信号把指令转变成执行此指令所需要的电信号。当指令送入译。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信码器后,由译码器对该指令进行译码,根据译码器输出的信号,号,CPU控制

12、电路定时地产生执行该指令所需的各种控制信控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。号,使单片机正确的执行程序所需要的各种操作。 MCS-51的存储器可分为程序存储器和数据存储器的存储器可分为程序存储器和数据存储器,又有又有片内和片外之分。片内和片外之分。 MCS-51单片机按程序单片机按程序存储器可分为内部无存储器可分为内部无ROM型(如型(如8031)和内部有)和内部有ROM型(如型(如8051)两种,)两种,连接时连接时 引脚有区别。程序存引脚有区别。程序存储器结构如右图所示:储器结构如右图所示:EA(1)程序存储器)程序存储器 一般将只读存储

13、器(一般将只读存储器(ROM)用做程序存储器。可寻址空间)用做程序存储器。可寻址空间为为64KB,用于,用于存放存放用户用户程序、数据和表格程序、数据和表格等信息。等信息。 一般将随机存储器(一般将随机存储器(RAM)用做数据存储器。可寻址空间为)用做数据存储器。可寻址空间为64KB。MCS-51数据存储器可分为片内和片外两部分。数据存储器可分为片内和片外两部分。片外片外RAM: 最大范围:最大范围:0000HFFFFH,64KB;用指令;用指令MOVX访问访问。片内片内RAM: 最大范围:最大范围:00HFFH,256B;用指令;用指令MOV访问访问。又分。又分为两部分:低为两部分:低128

14、B(007FH)为真正的为真正的RAM区,高区,高128B(80FFH)为特殊功能寄存器)为特殊功能寄存器(SFR)区。如右图所示。)区。如右图所示。 内部内部RAM的的20H2FH单元为单元为位寻址区位寻址区,既可作,既可作为一般单元用字节为一般单元用字节寻址,也可对它们寻址,也可对它们的位进行寻址。的位进行寻址。位位地址为地址为00H7FH。 CPU能能直接寻址直接寻址这这些位(称些位(称MCS-51具具有有布尔处理布尔处理功能),功能),位地址分配如右表位地址分配如右表所示。所示。使用各类存储器,注意几点:使用各类存储器,注意几点:(1) 地址地址的的重叠重叠性性 程序存储器(程序存储器

15、(ROM)与数据存储器()与数据存储器(RAM)全部)全部64K字字节地址空间重叠节地址空间重叠)。(2) 程序存储器(程序存储器(ROM)与数据存储器()与数据存储器(RAM)在)在使用使用上是上是严格严格区分区分的的(用途不同用途不同) 。(3) 位地址空间位地址空间共有两个区域。共有两个区域。(4)片外数据存储区中,片外数据存储区中,RAM与与I/O端口统一编址端口统一编址。所有所有外围外围I/O端口的地址均占用端口的地址均占用RAM单元地址单元地址,使用与访,使用与访问外部数据存储器相同的传送指令。问外部数据存储器相同的传送指令。 下图为各类存储器在存储器空间的位置的总结。下图为各类存

16、储器在存储器空间的位置的总结。 MCS-51有有21个特殊个特殊功能寄存器功能寄存器(也称为专用(也称为专用寄存器),包括算术运算寄存器),包括算术运算寄存器、指针寄存器、寄存器、指针寄存器、I/O口锁存器、定时器口锁存器、定时器/计数器、计数器、串行口、中断、状态、控串行口、中断、状态、控制寄存器等,它们被制寄存器等,它们被离散离散地分布在地分布在内部内部RAM的的80HFFH地址单元中地址单元中 ,共占据了共占据了128个存储单元,个存储单元,构成了构成了SFR存储块。其字存储块。其字节地址可被节地址可被8整除的整除的SFR可可位寻址。位寻址。SFR反映了反映了MCS-51单片机的运行状态

17、。特单片机的运行状态。特殊功能寄存器分布如右表殊功能寄存器分布如右表所示。所示。211个个(128个个+83个)个)寻址位寻址位。位地址范围。位地址范围为:为:00HFFH。 内部内部RAM的可寻址位的可寻址位128个个(字节地址字节地址20H2FH)特殊功能寄存器特殊功能寄存器SFR为为83个个可寻址位。可寻址位。(1)累加器累加器A (Accumulator) 累加器累加器A是是8位寄存器,又记做位寄存器,又记做ACC,是一个最常用的专用寄,是一个最常用的专用寄存器。在算术存器。在算术/逻辑运算中用于存放操作数或结果。逻辑运算中用于存放操作数或结果。 不能从名字上理解,它是一个寄存器,而不

18、是一个做加法的东不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,中的缘故吧。它的名字特殊,身份也特殊,所有的身份也特殊,所有的运算类指令运算类指令都都离不开它。自身带有全零离不开它。自身带有全零标志标志Z,若,若A0则则Z1;若;若A0则则Z0。该标志常用作程序。该标志常用作程序分支转移的判断条件。分支转移的判断条件。 (2)寄存器)寄存器B 寄存器寄存器B 是是8位寄存器,是专门为乘除法指令设计的,也作通位寄

19、存器,是专门为乘除法指令设计的,也作通用寄存器用。在做乘、除法时放乘数或除数用寄存器用。在做乘、除法时放乘数或除数(乘积高乘积高8位或除法位或除法余数余数),不做乘除法时,随你怎么用。,不做乘除法时,随你怎么用。 (3)工作寄存器)工作寄存器 内部内部RAM的工作寄存器区的工作寄存器区00H1FH共共32个字节被均匀地个字节被均匀地分成四个组(区),每个组(区)有分成四个组(区),每个组(区)有8个寄存器,分别用个寄存器,分别用R0R7表示,称为工作寄存器或通用寄存器,其中,表示,称为工作寄存器或通用寄存器,其中,R0、R1还经常用还经常用于于间接寻址间接寻址的地址指针。在程序中通过程序状态字

20、寄存器的地址指针。在程序中通过程序状态字寄存器(PSW)第)第3、4位设置工作寄存器区。位设置工作寄存器区。表2-5 工作寄存器组选择控制表其中:其中: Cy:进借位标志;:进借位标志; AC:辅助进借位标志;:辅助进借位标志; F0 :用户标志;:用户标志; RS1、RS0:工作寄存器组(区)选择(如下表所示);:工作寄存器组(区)选择(如下表所示); OV:溢出标志位,有溢出时置:溢出标志位,有溢出时置1; P:奇偶标志位。:奇偶标志位。A中有奇数个中有奇数个1时置时置1。(4 4)程序状态字)程序状态字PSWPSW (Program Status WordProgram Status W

21、ord) 程序状态字程序状态字PSW是是8位寄存器,用于存放程序运行的状态位寄存器,用于存放程序运行的状态信息,信息,PSW中各位状态通常是在中各位状态通常是在指令执行指令执行的的过程中自动形成过程中自动形成的,的,但也可以由用户根据需要采用但也可以由用户根据需要采用传送指令加以改变传送指令加以改变。其定义格式。其定义格式如下表所示。如下表所示。lCY:进位标志。:进位标志。8051中的运算器是一种中的运算器是一种8位的运算器,我们知位的运算器,我们知道,道,8位运算器只能表示到位运算器只能表示到0-255,如果做加法的话,两数相加,如果做加法的话,两数相加可能会超过可能会超过255,这样最高

22、位就会丢失,造成运算的错误,怎么,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,办?最高位就进到这里来。这样就没事了。有进、借位,CY1;无进、借位,;无进、借位,CY0 例:例:78H+97H(01111000+10010111)lAC:辅助进、借位:辅助进、借位(高半字节与低半字节间的进、借位高半字节与低半字节间的进、借位)。 例:例:57H+3AH(01010111+00111010)lF0:用户标志位,由用户(编程人员)决定什么时候用,什么:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。时候不用。 lRS1、RS0:工作寄存器组

23、选择位。这个我们已知了。:工作寄存器组选择位。这个我们已知了。lOV:溢出标志位。运算结果按补码运算理解。有溢出,:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,;无溢出,OV0。什么是溢出我们后面的章节会讲。什么是溢出我们后面的章节会讲到。到。lP:奇偶校验位:它用来表示:奇偶校验位:它用来表示ALU运算结果中二进制数位运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则的个数的奇偶性。若为奇数,则P=1,否则为,否则为0。 运算运算结果有结果有奇数个奇数个1,P1;运算结果有;运算结果有偶数个偶数个1,P0。例:某运算结果是例:某运算结果是78H(01111000),显然

24、),显然1的个数为偶数,的个数为偶数,所以所以P=0。(5 5)数据指针)数据指针DPTRDPTR(Data PointerData Pointer) 数据指针数据指针DPTR是是16位的专用寄存器,既可作为位的专用寄存器,既可作为16位寄存器位寄存器使用,也可作为两个独立的使用,也可作为两个独立的8位寄存器位寄存器DPH (高(高8位)位) 、DPL (低(低8位)使用。位)使用。 DPTR主要用作主要用作16位间址寄存器,访问程序存位间址寄存器,访问程序存储器和片外数据存储器储器和片外数据存储器。(6 6)堆栈指针)堆栈指针SPSP(Stack PointerStack Pointer)

25、堆栈是一种数据结构,是内部堆栈是一种数据结构,是内部RAM的一段区域。堆栈存取的一段区域。堆栈存取数据的原则是数据的原则是“后进先出后进先出”。堆栈指针。堆栈指针SP是一个是一个8位寄存器,用位寄存器,用于指示堆栈的栈顶,它决定了堆栈在内部于指示堆栈的栈顶,它决定了堆栈在内部RAM中的物理位置。中的物理位置。 MCS-51单片机的堆栈地址向大的方向变化(与微机堆栈地单片机的堆栈地址向大的方向变化(与微机堆栈地址向小的方向变化相反)址向小的方向变化相反)。系统复位后,。系统复位后,SP初值为初值为07H,实际,实际应用中通常根据需要在主程序开始处对堆栈指针应用中通常根据需要在主程序开始处对堆栈指

26、针SP进行初始化,进行初始化,一般设置一般设置SP为为60H。 设立堆栈的目的是用于数据的暂存,设立堆栈的目的是用于数据的暂存,中断、子程序调用中断、子程序调用时时断点和现场的保护与恢复。断点和现场的保护与恢复。(7)I/O口专用寄存器(口专用寄存器(P0, P1, P2, P3) 8051片内有片内有4个个8位并行位并行I/O接口接口P0, P1, P2和和P3,在,在SFR中相应中相应有有4个个I/O口寄存器口寄存器P0, P1, P2和和P3。(8)定时器)定时器/计数器(计数器(TL0, TH0, TL1和和TH1) MCS-51单片机中有两个单片机中有两个16位的定时器位的定时器/计

27、数器计数器T0和和T1,它们,它们由由4个个8位寄存器(位寄存器(TL0, TH0, TL1和和TH1)组成,)组成,2个个16位定时位定时器器/计数器是完全独立的。可以单独对这计数器是完全独立的。可以单独对这4个寄存器进行寻址,但个寄存器进行寻址,但不能把不能把T0和和T1当做当做16位寄存器来使用位寄存器来使用。(9)串行数据缓冲器()串行数据缓冲器(SBUF) 串行数据缓冲器串行数据缓冲器SBUF用于存放需要发送和接收的数据,它由用于存放需要发送和接收的数据,它由两个独立的寄存器两个独立的寄存器组成(发送缓冲器和接收缓冲器),要发送组成(发送缓冲器和接收缓冲器),要发送和接收的操作其实都

28、是对串行数据缓冲器和接收的操作其实都是对串行数据缓冲器SBUF进行的。进行的。(10)其他控制寄存器)其他控制寄存器 除上述外,还有除上述外,还有IP, IE, TCON, SCON和和PCON等几个寄存器,等几个寄存器,主要用于中断、定时和串行口的控制,主要用于中断、定时和串行口的控制, I/O接口是接口是MCS-51单片机对外部实现控制和信息交换单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。负载能力。 8051内部有内部有4个个8位位并行接口并行接口P0, P1, P2, P3,有,有1个个全全双

29、工的可编程双工的可编程串行串行I/O接口接口。 5定时器定时器/计数器计数器 8051内部有两个内部有两个16位位可编程序的定时器可编程序的定时器/计数器,均为计数器,均为二进制加二进制加1计数器,分别命名为计数器,分别命名为T0和和T1。 T0和和T1均有定时器和计数器两种工作模式。在均有定时器和计数器两种工作模式。在定时器定时器模式模式下,下,T0和和T1的计数脉冲可以由单片机晶振脉冲经的计数脉冲可以由单片机晶振脉冲经12分频后提供;在分频后提供;在计数器模式计数器模式下,下,T0和和T1的计数脉冲可以的计数脉冲可以从从P3.4和和P3.5引脚上输入。对引脚上输入。对T0和和T1的的控制控

30、制由定时由定时器器方式方式选择寄存器选择寄存器TMOD和定时器控制寄存器和定时器控制寄存器TCON完成。完成。 中断:中断:指指CPU暂停原程序执行,转而为外部设备服务(执行暂停原程序执行,转而为外部设备服务(执行 中断服务程序),并在服务完后返回到原程序执行的过程。中断服务程序),并在服务完后返回到原程序执行的过程。 中断系统:中断系统:指能够处理上述中断过程所需要的硬件电路。指能够处理上述中断过程所需要的硬件电路。 中断源:中断源:指能产生中断请求信号的源泉。指能产生中断请求信号的源泉。 8051可处理可处理5个中断源个中断源(2个外部,个外部,3个内部)发出的中断个内部)发出的中断请求,

31、并可对其进行优先权处理。外部中断的请求信号可以请求,并可对其进行优先权处理。外部中断的请求信号可以从从P3.2, P3.3(即(即 和和 )引脚上输入,有电平或边沿)引脚上输入,有电平或边沿两种触发方式;内部中断源有两种触发方式;内部中断源有3个,个,2个定时器个定时器/计数器中断源计数器中断源和和1个串行口中断源。个串行口中断源。 8051的中断系统主要由的中断系统主要由中断允许控制器中断允许控制器IE和和中断优先级中断优先级控制器控制器IP等电路组成。等电路组成。0INT1INT MCS-51系列单片系列单片机中,各类单片机都是机中,各类单片机都是相互兼容的,只是引脚相互兼容的,只是引脚功

32、能略有差异。功能略有差异。8051单单片机有片机有40个引脚,分为个引脚,分为端口线、电源线和控制端口线、电源线和控制线线三类。三类。l1电源线电源线lVSS(GND):接地引脚。:接地引脚。lVCC:正电源引脚。接:正电源引脚。接5V电源。电源。l2端口线端口线lP0P3口:口:48=32条。条。lP0口为口为8位双向三态位双向三态I/O口,口, P1P3口为口为8位准双向位准双向 I/O口口l双向口:可使引脚悬浮作高阻输入。双向口:可使引脚悬浮作高阻输入。l准双向口:其引脚具有内部上拉电阻,准双向口:其引脚具有内部上拉电阻,l准双向准双向口由于有内部上拉电阻,没有高阻抗输入状口由于有内部上

33、拉电阻,没有高阻抗输入状态,作为输出口时,不需要在片外接上拉电阻。态,作为输出口时,不需要在片外接上拉电阻。l“读引脚读引脚”输入时,必须先向锁存器写输入时,必须先向锁存器写1。l(1)P0口(口( P0.0P0.7 )l 8位双向三态位双向三态I/O口,可作为外部口,可作为外部扩展时的数据总扩展时的数据总线线/低低8位地址总线位地址总线的分时的分时复用复用口。又可作为通用口。又可作为通用I/O口,每个引脚可驱动口,每个引脚可驱动8个个TTL(逻辑门电路逻辑门电路 )负载。负载。l 对对EPROM型芯片(如型芯片(如8751)进行)进行编程和校验时编程和校验时,P0口用于口用于输入输入/输出数

34、据输出数据。l(2)P1口(口(P1.0P1.7) 8位准双向位准双向I/O口,内部具有上拉电阻,可作为口,内部具有上拉电阻,可作为通用通用I/O口。每个引脚可驱动口。每个引脚可驱动4个个TTL负载。负载。l(3)P2口(口(P2.0P2.7) 8位准双向位准双向I/O口,内部具有上拉电阻,可作为口,内部具有上拉电阻,可作为外部外部扩展时的高扩展时的高8位地址总线位地址总线。又可作为通用。又可作为通用I/O口,口,每个引脚可驱动每个引脚可驱动4个个TTL负载。负载。 对对EPROM型芯片(如型芯片(如8751)进行)进行编程和校验时编程和校验时,用来用来接收高接收高8位地址位地址。 (4)P3

35、口(口( P3.0P3.7 ) 8位准双向位准双向I/O口,内部具有上拉电阻。它是双口,内部具有上拉电阻。它是双功能复用口,作为通用功能复用口,作为通用I/O口时,功能与口时,功能与P1口相同,口相同,常用第二功能常用第二功能。每个引脚可驱动。每个引脚可驱动4个个TTL负载。作为负载。作为第二功能使用时,各位的作用如下表所示。第二功能使用时,各位的作用如下表所示。 3控制线控制线 (1)RST/VPD RST/VPD引脚是引脚是复位信号复位信号/备用电源备用电源线引脚。当线引脚。当8051通电通电时,在时,在RST引脚上出现引脚上出现24个晶振周期以上的高电平,系统即个晶振周期以上的高电平,系

36、统即初始复位。初始复位。 (2)ALE/ 地址锁存地址锁存允许允许/编程编程引脚。当访问外部程序存储器时,引脚。当访问外部程序存储器时,ALE的输出用于锁存地址的低位字节,以便的输出用于锁存地址的低位字节,以便P0口实现地址口实现地址/数据复用。当不访问外部程序存储器时,数据复用。当不访问外部程序存储器时,ALE端端将输出一个将输出一个1/6晶振频率的正脉冲晶振频率的正脉冲信号。信号。 ALE/ 是复用引脚,其第二功能是对是复用引脚,其第二功能是对EPROM型芯型芯片(如片(如8751)进行编程和校验时,此引脚输入编程脉冲。)进行编程和校验时,此引脚输入编程脉冲。PROGPROG(3) /VP

37、P 允许访问片外程序存储器允许访问片外程序存储器/编程电源引脚。对于片内无程序存编程电源引脚。对于片内无程序存储器的储器的MCS-51单片机(如单片机(如8031),该引脚必须),该引脚必须接地接地。片内有。片内有程序存储器的程序存储器的MCS-51单片机(如单片机(如8051),), 必须必须接高电平接高电平。 /VPP是复用引脚,其第二功能是片内是复用引脚,其第二功能是片内EPROM编程编程/校验时校验时的电源线,在编程时,的电源线,在编程时,VPP脚需加上脚需加上21V的编程电压的编程电压。 (4)XTAL1和和XTAL2 XTAL1脚为片内振荡电路的输入端,脚为片内振荡电路的输入端,X

38、TAL2脚为片内振荡电脚为片内振荡电路的输出端。路的输出端。8051的时钟有两种方式,一种是的时钟有两种方式,一种是片内时钟振荡片内时钟振荡方式方式,但需在,但需在XTAL1和和XTAL2脚外接石英晶体(频率为脚外接石英晶体(频率为1.212MHz)和振荡电容,振荡电容的值一般取)和振荡电容,振荡电容的值一般取1030pF,典型,典型值为值为30pF;另外一种是;另外一种是外部时钟方式外部时钟方式,即将,即将XTAL1接地,外接地,外部时钟信号从部时钟信号从XTAL2脚输入,如下图所示。脚输入,如下图所示。 EAEA PSEN(5) 片外片外ROM选通线选通线。在。在执行执行访问片外访问片外R

39、OM的指令的指令MOVC时时,8051自动在自动在 引脚引脚产生产生一个一个负脉冲负脉冲,用于,用于对片外对片外ROM的的选通选通。其他情况下,该引脚均为高电平封锁状态。其他情况下,该引脚均为高电平封锁状态。 PSEN MCS-51系列单片机的工作方式可分为:复位方式、程系列单片机的工作方式可分为:复位方式、程序执行方式、掉电保护方式、节电工作方式和序执行方式、掉电保护方式、节电工作方式和EPROM编程编程/校验方式。校验方式。 2.2.1 复位方式复位方式 系统开始运行和重新启动靠复位电路来实现,这种工系统开始运行和重新启动靠复位电路来实现,这种工作方式为复位方式。作方式为复位方式。 单片机

40、在开机时都需要单片机在开机时都需要复位复位,以便,以便CPU及其他功能部及其他功能部件都处于一种件都处于一种确定的初始状态确定的初始状态,并从这个状态开始工作。,并从这个状态开始工作。 MCS-51单片机在单片机在RST引脚引脚产生产生两个机器周期两个机器周期(即(即24晶振周期)以上的晶振周期)以上的高电平高电平即可实现复位。即可实现复位。 复位电路有两种:复位电路有两种:上电自动复位上电自动复位和上电和上电/按键手按键手动复位动复位,如下图所示,如下图所示。 复位复位后,后,8051的各特殊功能寄存器的的各特殊功能寄存器的初始状态初始状态如下表所示。如下表所示。 程序执行方式是单片机基本工

41、作方式,可分为程序执行方式是单片机基本工作方式,可分为连续执行连续执行工作方式和工作方式和单步执行单步执行工作方式。工作方式。 1连续执行工作方式连续执行工作方式 这是所有单片机都需要的一种方式。单片机复位后,这是所有单片机都需要的一种方式。单片机复位后,PC值为值为0000H,因此单片机复位后立即转到,因此单片机复位后立即转到0000H处执行程序。处执行程序。单片机按照程序事先编排的任务,自动连续地执行下去。单片机按照程序事先编排的任务,自动连续地执行下去。 单片机执行程序的过程,实际上就是执行所编制指令序单片机执行程序的过程,实际上就是执行所编制指令序列的过程。即逐条执行指令的过程。计算机

42、每执行一条指令列的过程。即逐条执行指令的过程。计算机每执行一条指令都可分为三个阶段进行。即都可分为三个阶段进行。即取指令取指令-分析指令分析指令-执行指令执行指令。l 取指令取指令的任务是:根据程序计数器的任务是:根据程序计数器PC中的中的值值从程序存储器读出从程序存储器读出现行指令,现行指令,送到指令寄存器送到指令寄存器。 分析指令分析指令阶段的任务是:阶段的任务是:将指令寄存器中的将指令寄存器中的指令指令操作码取出后进行操作码取出后进行译码译码,分析其指令性质。,分析其指令性质。如指令要求操作数,则寻找操作数地址。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令

43、计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环地重复上述操作过程,直至遇到停机指令或循环等待指令。等待指令。 2单步执行工作方式单步执行工作方式 这是用户这是用户调试程序调试程序的一种工作方式,在单的一种工作方式,在单片机开发系统上有一专用的单步按键(或软件片机开发系统上有一专用的单步按键(或软件调试环境)。按一次,单片机就执行一条指令调试环境)。按一次,单片机就执行一条指令(仅仅执行一条),这样就可以逐条检查程序,(仅仅执行一条),这样就可以逐条检查程序,发现问题进行修改。发现问题进行修改。 单步执行方式是单步执行方式是利用单片机外部中断利用单片机外部中断功

44、能功能实现的。实现的。 节电工作方式是一种低功耗的工作方式,可分为待机(空节电工作方式是一种低功耗的工作方式,可分为待机(空闲)方式和掉电(停机)方式。是针对闲)方式和掉电(停机)方式。是针对CHMOS类芯片而设计类芯片而设计的,的,HMOS型单片机不能工作在节电方式,但它有一种掉电型单片机不能工作在节电方式,但它有一种掉电保护功能。保护功能。 1HMOS单片机的掉电保护单片机的掉电保护 当当VCC突然掉电时,单片机通过中断将必须保护的数据送突然掉电时,单片机通过中断将必须保护的数据送入内部入内部RAM,备用电源,备用电源VPD可以维持内部可以维持内部RAM中的数据不丢中的数据不丢失。失。 2

45、CHMOS单片机的节电方式单片机的节电方式 CHMOS型单片机是一种低功耗器件,正常工作时电流为型单片机是一种低功耗器件,正常工作时电流为1122mA,待机待机状态时为状态时为1.75mA,掉电掉电方式为方式为550 A。因此,因此,CHMOS型单片机特别适用于低功耗应用场合,它的待型单片机特别适用于低功耗应用场合,它的待机方式和掉电方式都是由电源控制寄存器机方式和掉电方式都是由电源控制寄存器PCON中相应的位来中相应的位来控制。控制。 2.2.3 节电方式节电方式 PCON各位的定义如下表所示。各位的定义如下表所示。IDL:待机方式控制位,该位为待机方式控制位,该位为1时,单片机进入待机工作

46、方式。时,单片机进入待机工作方式。PD: 掉电方式控制位,为掉电方式控制位,为1时,单片机进入掉电工作方式。时,单片机进入掉电工作方式。 上面的上面的IDL、PD同时为同时为1,则进入掉电工作方式,同时为,则进入掉电工作方式,同时为0,则工作在正常运行状态。则工作在正常运行状态。GF0, GF1:通用标志位,描述中断是来自正常运行还是来自待通用标志位,描述中断是来自正常运行还是来自待机方式,用户可通过指令设定它们的状态。机方式,用户可通过指令设定它们的状态。SMOD:为串行口为串行口波特率倍率波特率倍率控制位,用于串行通信。控制位,用于串行通信。 将将IDL位置为位置为1(用指令(用指令MOV

47、 PCON, #01H),则进入待机工作方式,其内部),则进入待机工作方式,其内部控制电路如右图所示。此时,控制电路如右图所示。此时,CPU进入进入待机状态,中断系统、串行口、定时器待机状态,中断系统、串行口、定时器/计数器,仍有时钟信号,仍继续工作。计数器,仍有时钟信号,仍继续工作。 退出待机状态退出待机状态有两种方法:一是有两种方法:一是中中断退出断退出,二是,二是硬件复位硬件复位退出退出。 将将PDPD置为置为1 1(用指令(用指令MOV PCON, #02HMOV PCON, #02H),可使单片机进入掉电工作),可使单片机进入掉电工作方式。此时方式。此时振荡器停振振荡器停振,只有片内

48、的,只有片内的RAMRAM和和SFRSFR中的数据保持不变,而包中的数据保持不变,而包括中断系统在内的括中断系统在内的全部电路全部电路都将处于都将处于停止停止工作状态。工作状态。退出掉电工作退出掉电工作方式,方式,只能采用只能采用硬件复位硬件复位的方法。的方法。 欲使欲使80518051从掉电方式退出后继续执行掉电前的程序,则必须在掉电从掉电方式退出后继续执行掉电前的程序,则必须在掉电前预先把前预先把SFRSFR中的内容保存到片内中的内容保存到片内RAMRAM中,并在掉电方式退出后恢复中,并在掉电方式退出后恢复SFRSFR掉电前的内容。掉电前的内容。 编程和校验方式用于内部含有编程和校验方式用

49、于内部含有EPROM的单片机芯片(如的单片机芯片(如8751),一般的单片机开发系统都提供实现这种方式的设备和),一般的单片机开发系统都提供实现这种方式的设备和功能。功能。 编程编程的主要操作是将原始程序、数据的主要操作是将原始程序、数据写入写入内部内部EPROM中。中。 校验校验的主要操作是在向片内程序存储器的主要操作是在向片内程序存储器EPROM写入信息时写入信息时或写入信息后,可将片内或写入信息后,可将片内EPROM的内容的内容读出读出进行校验,以保进行校验,以保证写入信息的正确性。证写入信息的正确性。 时序:时序:CPU在执行指令时所需控制信号的时间顺序在执行指令时所需控制信号的时间顺

50、序称为称为时序。时序是用定时单位来描述的,时序。时序是用定时单位来描述的,MCS-51的时序单的时序单位有四个,分别是位有四个,分别是晶振周期晶振周期(节拍)、(节拍)、时钟周期、机器时钟周期、机器周期和指令周期周期和指令周期。 2.3.1 MCS-51的时序单位的时序单位 1. 晶振周期:晶振周期:又称为振荡周期、节拍(用又称为振荡周期、节拍(用P表示),定表示),定义为单片机提供时钟信号的义为单片机提供时钟信号的振荡源(振荡源(OSC)的周期)的周期。它。它是时序中的最小单位。振荡脉冲的倒数(可以这样来理是时序中的最小单位。振荡脉冲的倒数(可以这样来理解,晶振周期就是单片机外接晶振的倒数,

51、例如解,晶振周期就是单片机外接晶振的倒数,例如12M的的晶振,它的晶振周期就是晶振,它的晶振周期就是1/12us),), 8051单片机的晶振单片机的晶振频率是频率是1.2MHz-12MHz。 2. 时钟周期(用时钟周期(用S表示)表示):单片机振荡脉冲经过二分频:单片机振荡脉冲经过二分频后即得到整个单片机工作系统的状态。一个状态有两后即得到整个单片机工作系统的状态。一个状态有两个节拍,前半周期对应的节拍定义为个节拍,前半周期对应的节拍定义为P1,后半周期对,后半周期对应的节拍定义为应的节拍定义为P2。 3. 机器周期:机器周期:通常将完成一个基本操作所需的时间称为通常将完成一个基本操作所需的

52、时间称为机器周期。机器周期。 MCS-51中规定中规定一个机器周期包含一个机器周期包含12个晶振个晶振周期周期,即有,即有6个状态,分别表示为个状态,分别表示为S1S6。 也就是说一个机器周期也就是说一个机器周期=6个时钟周期个时钟周期=12个晶振周期。个晶振周期。 若晶振为若晶振为6MHz,则机器周期为,则机器周期为2s,若晶振为,若晶振为12MHz,则机器周期为,则机器周期为1s。l晶振周期、时钟周期、机器周期之间的关系图如下。晶振周期、时钟周期、机器周期之间的关系图如下。 机器周期时钟周期晶振周期 4. 指令周期:指令周期:执行一条指令所需要的时间称执行一条指令所需要的时间称为指令周期。

53、它是时序中的最大单位。一个为指令周期。它是时序中的最大单位。一个指令周期通常含有指令周期通常含有14个机器周期。指令所个机器周期。指令所包含的机器周期数决定了指令的运算速度,包含的机器周期数决定了指令的运算速度,机器周期数越少的指令,其执行速度越快。机器周期数越少的指令,其执行速度越快。 以机器周期为单位,指令可分为单周期、以机器周期为单位,指令可分为单周期、双周期和四周期指令。双周期和四周期指令。lMCS-51指令系统中,按它们的长度可分为指令系统中,按它们的长度可分为单字节指令、单字节指令、双字节指令和三字节指令双字节指令和三字节指令。执行这些指令需要的时间。执行这些指令需要的时间是不同的

54、,也就是它们所需的机器周期是不同的,有是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:下面几种形式: l单字节指令单机器周期单字节指令单机器周期单字节指令双机器周期单字节指令双机器周期双字节指令单机器周期双字节指令单机器周期双字节指令双机器周期双字节指令双机器周期三字节指令双机器周期三字节指令双机器周期单字节指令四机器周期单字节指令四机器周期(如单字节的乘除法指令如单字节的乘除法指令) 指令的集合称为程序,执行程序的过程就是执行指令指令的集合称为程序,执行程序的过程就是执行指令的过程。单片机执行任何一条指令时都可以分为取指阶段的过程。单片机执行任何一条指令时都可以分为取指阶段和执行

55、阶段。在取指阶段,和执行阶段。在取指阶段,CPU从程序存储器中取出指令从程序存储器中取出指令操作码,送指令寄存器,再经指令译码器译码,产生一系操作码,送指令寄存器,再经指令译码器译码,产生一系列控制信号,完成本指令规定的操作。列控制信号,完成本指令规定的操作。 单周期和双周期指令的取指时序图如下页图所示。单周期和双周期指令的取指时序图如下页图所示。 ALE信号是用于锁存低信号是用于锁存低8位地址的选通信号,每出现位地址的选通信号,每出现一次该信号,单片机即进行一次读指令操作。当指令为多一次该信号,单片机即进行一次读指令操作。当指令为多字节或多周期指令时,只有第一个字节或多周期指令时,只有第一个

56、ALE信号进行读指令操信号进行读指令操作,其余的作,其余的ALE信号为无效操作(或读操作数操作)。信号为无效操作(或读操作数操作)。图中的图中的ALE脉冲是为了锁存地址的选通信号,每出现一次脉冲是为了锁存地址的选通信号,每出现一次ALE脉冲脉冲信号单片机进行一次读指令操作。从时序图中可看出,信号单片机进行一次读指令操作。从时序图中可看出, ALE脉冲脉冲信号是晶振频率信号是晶振频率6分频后得到,在分频后得到,在一个机器周期中,一个机器周期中,ALE信号两次信号两次有效有效,第一次在,第一次在S1P2和和S2P1期间,第二次在期间,第二次在S4P2和和S5P1期间。期间。 单字节单周期单字节单周期指令指令:只进行一次读指令操作,当第二个只进行一次读指令操作,当第二个ALE信号有信号有效时,效时,PC并不加并不加1,读出的还是原指令,属于一次无效的读操作。,读出的还是原指令,属于一次无效的读操作。双字节单周期双字节单周期指令指令:两次的两次的ALE信号都是有效的,只是第一个信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。信号有效时读的是操作数。单字节双周期指令单字节双周期指令: 两个机器周期需进行四读指令操作,但只有两个机器周期需进行四读指

温馨提示

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

评论

0/150

提交评论