《片机介绍原理及应用.ppt》由会员分享,可在线阅读,更多相关《片机介绍原理及应用.ppt(109页珍藏版)》请在三一办公上搜索。
1、51单片机原理及应用,2,第 2 章 MCS-51单片机基本结构,2.1引脚及功能2.2结构及组成2.3存储器结构2.4并行I/O口电路 2.5 时钟电路与时序2.6工作方式,3,(a)管脚图(b)引脚功能分类,MCS-51系列单片机芯片引脚,4,(a)引脚排列(b)逻辑符号,80C51单片机芯片引脚,5,2.1 MCS-51系列单片机芯片引脚及其功能80C51是标准的40引脚双列直插封装(DIP)集成电路芯片1.主电源和时钟振荡电路引脚VCC(40脚)运行和程序校验时接+5V电源VSS(20脚)地线XTAL1(19脚)用作晶体振荡电路的反相器输入端,内部接至振荡器的反相放大器。当采用外部时钟
2、时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚)用作晶体振荡电路的反相器输出端,内部接至时钟发生器。当采用外部时钟时,对于HMOS单片机,该引脚接收振荡器信号;对于CHMOS单片机,该引脚悬浮。,6,2.输入/输出(I/O)引脚P0.0P0.7(39脚32脚):8位漏极开路的双向I/O口当使用片外ROM和RAM时,用作低8位地址和数据分时复用。P1.0P1.7(1脚8脚):8位带上拉电阻的准双向I/O口在编程/校验期间,用作输入低8位地址。对于8052,P1.0是定时器T2的计数输入端;P1.1是定时器T2的外部输入端。P2.0P2
3、.7(21脚28脚):8位带上拉电阻的准双向I/O口当使用片外ROM和RAM时,输出高8位地址。P3.0P3.7(10脚17脚):8位带上拉电阻的准双向I/O口 P3口具有第二功能,在单片机中,“口”是一个集数据输入缓冲、输出驱动及锁存等多项功能于一体的I/O电路。,7,P3口的第二功能,8,3.控制信号引脚RST/VPD(9引脚):RST为复位信号输入端。当RST端保持2个机器周期以上高电平时,单片机完成复位操作。第二功能VPD为内部RAM的备用电源输入端。当主电源VCC发生断电,降到一定电压值时,可通过VPD为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,上电后能继续正常运行。
4、ALE/PROG(30引脚):ALE为地址锁存允许信号在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低8位地址和数据的分时传送。由于ALE是以1/6晶振频率的固定频率输出的正脉冲,故可作为外部时钟或外部定时脉冲使用。ALE可驱动8个LSTTL门。第二功能PROG是对8751内部EPROM编程时的编程脉冲输入端。,9,PSEN(29引脚):外部程序存储器(ROM)读选通信号访问外部ROM时,PSEN产生负脉冲作为外部ROM选通信号。访问外部RAM或内部ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL门。EA/VPP(31引脚):EA为访问程序存储
5、器(ROM)控制信号对8051和8751,它们的片内有4KB的ROM,当EA为高电平时,若访问的地址空间在04KB范围内,CPU访问片内ROM;若访问的地址范围超过4KB时,CPU将自动访问外部ROM。EA保持低电平,则访问外部ROM。对于8031,EA必须接地,只能访问外部ROM。第二功能为对8751的+25V编程电源输入。,10,图 MCS-51系列单片机内部结构简化框图,2.2 MCS-51系列单片机结构及组成,CPU,11,MCS51系列单片机由8大部分组成:一个8位CPU,包括运算器和控制器。128个字节(52子系列为256字节)的片内RAM。4KB(52子系列为8KB)的片内ROM
6、或EPROM(8031和8032无)18个(52子系列为21个)特殊功能寄存器SFR。4个8位并行I/O接口:P0口、P1口、P2口、P3口1个串行I/O接口 2个(52子系列为3个)16位定时器/计数器1个具有5个(52子系列为6个或7个)中断源,可编程为2个优先级的中断系统。它可以接收外部中断申请、定时器/计数器中断申请和串行口中断申请。,12,MCS-51单片机芯片内部结构框图,13,1.中央处理器CPU(8位)单片机内部的核心部件,完成运算和控制操作。包括运算器、控制器以及若干寄存器等部件组成。运算器以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器TMP1和TMP2、程序
7、状态寄存器PSW、十进制调整电路及专门用于位操作的布尔处理机组成的。功能:实现数据的算术逻辑运算,位变量处理和数据传送操作。,14,功能:完成8位二进制数的加(带进位加)、减(带借位减)、乘、除、加 1、减 1、BCD加法的十进制调整、比较等算术运算;对8位变量进行逻辑“与”、“或”、“异或”、求补、清零等逻辑运算;左、右移位和半字节(4 位)交换等操作;数据传送、程序转移。,ALU(算术逻辑单元),15,累加器A是一个8位寄存器,它是CPU中使用最频繁的寄存器。累加器A的功能有:用于存放操作数,是ALU数据的一个来源。单片机中大部分单操作数指令的操作数都取自累加器A,许多双操作数指令中的一个
8、操作数也取自累加器A。累加器A是ALU运算结果的暂存单元,用于存放运算的中间结果。累加器A是数据传送的中转站,单片机中的大部分数据传送都通过累加器进行。在变址寻址方式中把累加器A作为变址寄存器使用。,ACC 或 A(累加器),16,B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,A中为被乘数,B中为乘数;乘法操作完成后,乘积的高8位存于B中,低8位存于A中。除法运算时,A中为被除数,B中为除数;除法操作完成后,余数存于B中,商存于A中。其他情况下,B寄存器也可以作为一般的数据寄存器使用,地址为F0H。,B寄存器,17,PSW(程序状态字)PSW是一个8位的标志寄存器,它保存指令执行结果
9、的特征信息,以供程序查询和判别。PSW格式及含义如下:,CY(PSW.7)进位标志位AC(PSW.6)辅助进位(或称半进位)标志 F0(PSW.5)由用户定义的标志位。复位时该位为“0”RS1和RS0(PSW.4 和 PSW.3)工作寄存器组选择位 OV(PSW.2)溢出标志位。由硬件置位或清零。PSW.1 未定义位 P(PSW.0)奇偶标志位(A中1的个数:偶0,奇1),18,CY是PSW中最为常用的标志位,共有4项功能:在加法运算中存放进位标志,有进位时CY置1,无进位时CY清0;在减法运算中存放借位标志,有借位时CY置1,无借位时CY清0;在位操作中作累加位使用,在位传送和位运算中都要用
10、到CY;在带进位的移位操作中用于构成循环移位通路。【注意】对于加/减运算,无论参与运算的数是带符号数还是无符号数,都按无符号数的原则来设置进/借位标志位CY。,CY(PSW.7)进位标志位,19,在加减运算中,当低 4 位向高 4 位有进借位时,AC由硬件置位,否则AC被清0。在进行十进制数运算时需要十进制调整,此时要用到AC位的状态进行判断。,AC(PSW.6)半进位标志位,F0(PSW.5)用户标志位,由用户定义使用的标志位。用户可根据需要用软件方法置位或复位。,20,这两个选择位的状态由软件设置,被选中的工作寄存器组即为当前工作寄存器组。,RS1和RS0(PSW.4 和 PSW.3)工作
11、寄存器组选择位,P(PSW.0)奇偶标志位,表明累加器A中1的个数的奇偶性:若1的个数为偶数,则P=0;若1的个数为奇数,则P=1。在每个指令周期由硬件根据A的内容对P位进行置位或复位。,21,在加减运算中,如果OV=1,则表示运算结果超出了累加器A所能表示的符号数的有效范围(-128+127),运算结果是错误的,即产生了溢出;否则,OV=0,则表示运算结果正确,即未产生溢出。溢出的判断:OV=C6C7在乘法运算中,OV=1表示乘积超过255,即乘积分别在B(高8位)与A(低8位)中;否则,OV=0表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行;否则,OV=0表示除数不为0
12、,除法可正常进行。【注意】对于加减运算,无论参与运算的数是带符号数还是无符号数,都按带符号数的原则来设置溢出标志位。,OV(PSW.2)溢出标志位,22,布尔处理机布尔处理(即位处理)是MCS-51单片机ALU所具有的一种功能。单片机指令系统中的布尔指令集(17条位操作指令),存储器中的位地址空间(内部RAM中的128个位和特殊功能寄存器里的位地址空间),以及借用程序状态标志寄存器PSW中的进位标志CY作为位操作“累加器”,构成了单片机内的布尔处理机。可对直接寻址的位(bit)变量进行位处理,如置位、清零、取反、测试转移以及逻辑与、或等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻
13、辑所完成的功能,并可方便地设置标志等。,23,控制器控制器是单片机的神经中枢,识别指令并根据指令性质控制单片机各部件,保证单片机各部分能自动而协调地工作。它包括程序计数器(PC)、数据指针寄存器(DPTR)、指令寄存器(IR)、指令译码器、条件转移逻辑电路以及定时和控制电路等部件。功能:控制指令的读出、译码和执行。对指令的执行过程定时控制,并根据执行结果决定是否分支转移。,24,PC(程序计数器)PC是专门用来控制指令执行顺序的寄存器,其内容为将要执行的下一条指令的地址,即下一条将要从ROM中取出的指令地址。PC是一个16位的寄存器,它在物理上是独立的,不在内部RAM之列,没有地址,是不可寻址
14、的。16位地址的寻址范围为64KB(ROM)。用户不需要也无法对PC进行读/写,PC的内容是通过执行指令改变的。在执行指令过程中,PC具有自动加 1 功能。在执行转移、调用、返回等指令时能自动改变PC内容,以改变程序的执行顺序。复位时,PC自动装入0000H,使程序从0000H单元开始执行。,25,DPTR(数据指针)16位特殊功能寄存器,也可作为两个8位寄存器,高8位用DPH表示,低8位用DPL表示。它是MCS-51中唯一一个供用户使用的16位寄存器。功能:在访问外部RAM时作地址指针使用。在变址寻址方式中,用作基址寄存器,用于对ROM的访问。,26,指令寄存器IR、指令译码器以及控制逻辑I
15、R是用来存放指令操作码的专用寄存器。整个程序的执行过程就是在控制器的控制下,将指令从ROM中逐条取出,进行译码,然后由定时控制逻辑电路发相应的定时控制信号,控制指令的执行,是一个取指令指令译码执行指令的不断循环的过程。,27,2.内部数据存储器(内部RAM)包括RAM(1288位)和RAM地址寄存器等。80C51芯片中共有256个RAM单元,但其中后128单元被特殊功能寄存器占用,供用户使用的只有前128单元,用于存放可读写的数据。故“内部RAM”指前128单元。3.内部程序存储器(内部ROM)包括ROM(4K8位)和程序地址寄存器等。80C51共有4KB掩膜ROM,用于存放程序和原始数据。4
16、.定时器/计数器出于控制应用的需要,80C51共有2个16位的定时器/计数器,以实现定时或计数的功能,并以其定时或计数结果对单片机进行控制。,28,5.并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。可寻址64KB外部RAM和64KB外部ROM。6.串行口MCS-51有一个可编程全双工的串行口,以实现单片机和其它数据设备之间的串行数据传送。该串行口既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7.中断控制系统MCS-51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级两个优先级。,29,8.时
17、钟电路为单片机产生时钟脉冲序列,典型的晶振频率为12MHz。MCS-51芯片内部有一个高增益反相放大器,其输入端为XTAL1,输出端为XTAL2。9.位处理器(布尔处理器)单片机主要用于控制,需要有较强的位处理功能,因此,位处理器是它的必要组成部分。10.总线系统的地址信号、数据信号和控制信号都是通过总线传送的。总线结构减少了单片机的连线和引脚提高了集成度和可靠性。,MCS-51单片机硬件结构,MCS-51系列单片机的分类,表 MCS-51 系列单片机配置一览表,MCS-51单片机的内部结构,图 MCS-51单片机结构框图,中央处理器CPU,运算器,算术逻辑单元ALU 2.累加器ACC(Acc
18、umulator)3.寄存器B 4.程序状态字PSW(Programe State Word),D7 D6 D5 D4 D3 D2 D1 D0,PSW,表 RS1、RS0与片内工作寄存器组的对应关系,控制器,1.时钟电路,图 单片机时钟电路(a)内部时钟电路;(b)外部振荡源,2.复位电路,图 单片机复位电路(a)上电复位电路;(b)开关复位电路,表 复位后内部寄存器状态,3.指令寄存器和指令译码器 指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器译码后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。,4.程序计数器PC(Program
19、 Counter)PC用于存放CPU下一条要执行的指令地址,是一个 16 位的专用寄存器,可寻址范围是0000H0FFFFH共 64 KB。程序中的每条指令存放在ROM区的某一单元,并都有自己的存放地址。CPU 要执行哪条指令时,就把该条指令所在的单元的地址送上地址总线。在顺序执行程序中,当PC的内容被送到地址总线后,会自动加 1,即(PC)(PC)+1,又指向CPU 下一条要执行的指令地址。,5.堆栈指针SP(Stack Pointer)堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护及返回,它在完成子程序嵌套
20、和多重中断处理中是必不可少的。为保证逐级正确返回,进入栈区的“断点”数据应遵循“先进后出”的原则。SP用来指示堆栈所处的位置,在进行操作之前,先用指令给SP赋值,以规定栈区在RAM区的起始地址(栈底层)。当数据推入栈区后,SP的值也自动随之变化。MCS-51 系统复位后,SP初始化为07H。,6.数据指针寄存器DPTR 数据指针DPTR是一个 16 位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理,也可作为两个独立的 8 位寄存器DPH和DPL来处理。DPTR 主要用来存放 16 位地址,当对 64 KB外部数据存储器空间寻址
21、时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。,41,2.3 MCS-51单片机存储器组织结构,MCS-51单片机的存储器组织结构与一般微机不同:一般微机通常是程序和数据共用一个存储空间,属于Von Neumann结构(冯诺依曼型)MCS-51单片机把程序存储器空间和数据存储器相互分离开来,属于Harvard结构(哈佛型),42,存储器,ALU),算逻部件(ALU),控制部件,中央处理器 CPU,输入/输出部件,输入/输出部件,算逻部件(ALU),控制部件,中央处理器 CPU,程序存储器,数据存储器,单片机体系结构,冯诺依曼型,哈佛型,43,MCS-51的存储器组织分3个不同的存储
22、地址空间:64KB的程序存储器地址空间(包括片内ROM和片外ROM)64KB的外部数据存储器地址空间256B的内部数据存储器地址空间对这3个不同的存储器空间进行数据传送时,必须分别采用3种不同形式的指令。,44,MCS-51单片机存储器组织结构,内部 ROM4KBEA=1,外部 ROM4KBEA=0,内部 RAM128B,0FFFH0000H,0FFFH0000H,FFFFH1000H,外部 RAM64KB,特殊功能寄存器(21个SFR),外部 ROM60KB,FFH80H7FH00H,程序存储器地址空间,数据存储器地址空间,FFFFH0000H,(MOV 指令操作域),(MOVX 指令操作域
23、),(MOVC 指令操作域),45,程序存储器(ROM)ROM用于存放程序及表格常数,读取ROM的指令为“MOVC”。8051(8751)片内驻留有4KB的ROM(EPROM),外部可用16位地址线扩展到最大64KB的ROM空间。片内ROM和外部扩展ROM是统一编址的。,46,程序存储器(ROM)当芯片引脚EA为高电平时,8051的程序计数器PC在0000H0FFFH(4KB)地址时从内部ROM取指令,超过4KB时,CPU自动转向外部ROM执行程序。如果EA为低电平(接地),则所有取指令操作均在外部ROM中进行,这时外部扩展的ROM从0000H开始编址。8031单片机无片内ROM,只能使用外部
24、扩展ROM且从0000H开始编址,EA必须接低电平。,47,ROM中的某些特定单元是给系统默认使用的0000H单元是复位入口,单片机复位后,CPU总是从0000H单元开始执行程序。0000H 0002H单元安排一条无条件转移指令,使之转向主程序的入口地址。0003H 002AH共40个单元均匀地分为5段,分别作为5个中断源的中断地址区。中断响应后,系统能按中断种类,自动转到各中断区的首地址去执行程序。,48,系统复位和中断地址区,一般从中断首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。,49,数据存储器(RAM)RAM用于存放运算中间结果,
25、用作缓冲和数据暂存,以及设置特征标志等。8051片内有256B的RAM空间,片外有64KB的RAM空间,两个存储空间独立寻址。内部RAM低128字节地址空间(00H 7FH)为内部RAM区,是供用户使用的数据存储器单元,作为处理问题的数据缓冲器。高128字节地址空间(80H FFH)为特殊功能寄存器区(SFR区),共21个特殊功能寄存器,也就是128个字节单元中只有21个字节单元能够被用户使用。内部RAM存储空间小,仅用8位地址寻址,但存取速度比外部RAM快。,50,内部RAM低128单元的划分,工作寄存器组 0,位寻址区(位地址:00H7FH),用户RAM区(堆栈、数据缓冲),7FH30H2
26、FH20H,工作寄存器组 3,工作寄存器组 2,工作寄存器组 1,1FH18H17H10H0FH08H07H00H,R7R0R7R0R7R0R7R0,工作寄存器区(共32个字节单元,分为4组,每组8个8位寄存器,只能按字节寻址),用户RAM区(共80个字节单元,只能按字节寻址),位寻址区(共16个字节单元,128个位,可按位寻址,也可按字节寻址),51,内部RAM低128单元,按用途可分为3个区域:工作寄存器区内部RAM的00H 1FH为工作寄存器区,共32个字节,分为4组,每组8个8位寄存器R0R7。在任一时刻,CPU只能使用其中的一组寄存器,当前程序使用的工作寄存器组是由程序状态字PSW的
27、RS0、RS1位来选择的。,52,工作寄存器的使用方法:以寄存器的形式使用,用寄存器符号表示;以存储单元的形式使用,以单元地址表示。,工作寄存器区各寄存器对应的地址,53,位寻址区内部RAM的20H2FH字节为可位寻址区域,这16个字节共128位,每一位都有一个位地址,位编址为:00H7FH,用户可用程序对它们直接进行清0、置位、取反和测试等操作。位寻址区的RAM单元也可按字节寻址,作为一般的数据缓冲器使用。“位”的两种表示方式:以位地址的形式,如位寻址区的最后一个位是7FH;以存储单元地址加位的形式表示,如位寻址区的最后一个位表示为2FH.7。,54,内部RAM位寻址区的位地址,55,用户R
28、AM区内部RAM的30H7FH字节为用户RAM区,即通用数据缓冲区,共80个单元,作为一般数据缓冲使用。52子系列的用户RAM区为30HFFH范围内的208个字节。对于用户RAM区,只能以存储单元的形式来使用,没有其它任何规定和限制。一般把堆栈开辟在此区中。,56,内部RAM高128单元:特殊功能寄存器(SFR)区单元地址为80HFFH,用于存放相应功能部件的控制命令、状态或数据。80C51片内包括21个SFR,其中可位寻址的有11个。对可位寻址的SFR,在表示某一位时,可以用位地址,也可以用位定义名,或用“寄存器名.位”表示。例如程序状态字PSW中的D3位可表示为:D3H(位地址)RS0(位
29、定义名)PSW.3(寄存器名.位),57,特殊功能寄存器地址映像,58,特殊功能寄存器地址映像(续),59,对SFR的字节寻址问题的说明:21个SFR不连续地分散在内部RAM高128单元中。用户不能使用剩余的的空闲单元,如果访问了这些没有定义的单元,读出的为不定数,写入的数将被舍弃。每个SFR都有字节地址,并定义了符号名。其中11个可位寻址,对应的位也定义了位名。(凡是字节地址能被8整除的SFR都具有位地址)只能使用直接寻址方式访问特殊功能寄存器,指令中既可使用寄存器符号表示,也可使用寄存器地址表示。在P3 P0口中,作为特殊功能寄存器的是它们的锁存器,由各位口线的锁存位组成。,60,MCS-
30、51的堆栈操作堆栈是一种数据结构,就是只允许在其一端进行数据插入和数据删除操作的线性表。数据写入堆栈叫入栈(PUSH),数据从堆栈中读出叫出栈(POP)。堆栈的最大特点是“后进先出”(LIFO,Last-In-First-Out)的数据操作规则。,61,堆栈的功用堆栈可用于响应中断或调用子程序时,保护断点和保护现场。在中断服务程序或子程序结束时,执行中断返回或子程序返回指令,原断点地址会自动从堆栈中弹出给PC,使程序从断点处顺序执行下去。堆栈也可用于数据的临时存放。,堆栈的开辟堆栈只能开辟在芯片的内部RAM中(内堆栈),通常设在内部RAM的30H7FH地址空间内的顶部,但要考虑到堆栈的最大深度
31、。内堆栈的特点:操作速度快,但堆栈容量有限,62,堆栈指针(SP)堆栈指针SP是8位的特殊功能寄存器,可指向片内RAM 128字节(00H7FH)的任何单元。堆栈的两种操作(进栈和出栈)都是对栈顶单元进行的。SP用来指示栈顶,SP的内容就是堆栈栈顶的存储单元地址。系统复位后,SP的内容为07H,但由于堆栈一般在内部RAM的30H7FH单元中开辟,所以在程序设计时应注意把SP值初始化为30H以后,以免堆栈占用工作寄存器区和位寻址区。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值,因此堆栈位置是浮动的。,63,堆栈类型向上生长型堆栈:栈底在低地址单元。操作规则:进栈操作:
32、先SP加1,后写入数据出栈操作:先读出数据,后SP减1向下生长型堆栈:栈底在高地址单元。操作规则:进栈操作:先SP减1,后写入数据出栈操作:先读出数据,后SP加1,MCS-51的堆栈属于向上生长型,栈底,栈底,SPSP+1SP,进栈,出栈,出栈,进栈,SPSP SP-1,64,堆栈的使用方式自动方式(保护断点)无需用户干预,在调用子程序或中断时,返回地址(断点)自动进栈;程序返回时,断点再自动弹回PC。指令方式(保护现场)使用专用的堆栈操作指令,进行进出栈操作。进栈指令为PUSH(保护现场),出栈指令为POP(恢复现场)。,65,总结:MCS-51单片机系统的存储器结构特点数据存储器和程序存储
33、器截然分开RAM和ROM的地址空间、存取指令和控制信号各有一套。存储器有内外之分为扩展外部存储器,单片机的芯片引脚已经作了预先准备:通过口线最多可提供16位地址,对外部存储器的寻址范围达64KB;ALE信号用于外部存储器的地址锁存;WR和RD信号分别用于外部RAM的写选通和读选通;PSEN信号用于外部ROM的读选通;EA信号用于内外ROM的访问控制。,补充 51单片机存储器的结构,图 MCS-51 单片机的存储器结构,1.程序存储器 对于8051来说,程序存储器(ROM)的内部地址为 0000H0FFFH,共 4 KB;外部地址为 1000HFFFFH,共 60 KB。当程序计数器由内部 0F
34、FFH执行到外部 1000H 时,会自动跳转。对于 8751 来说,内部有 4 KB的EPROM,将它作为内部程序存储器;8031 内部无程序存储器,必须外接程序存储器。8031 最多可外扩 64 KB程序存储器,其中 6 个单元地址具有特殊用途,是保留给系统使用的。0000H是系统的启动地址,一般在该单元中存放一条绝对跳转指令。0003H、000BH、000BH、001BH和 0023H对应 5 种中断源的中断服务入口地址。,2.内部数据存储器 MCS-51 单片机片内RAM的配置如图 2.4(b)所示。片内RAM为 256 字节,地址范围为00HFFH,分为两大部分:低 128 字节(00
35、H7FH)为真正的RAM区;高 128 字节(80HFFH)为特殊功能寄存器区SFR。在低 128 字节RAM中,00H1FH共 32 单元是 4 个通用工作寄存器区。每一个区有 8 个通用寄存器R0R7。寄存器和RAM地址对应关系如表 2.4。,表 寄存器与RAM 地址对照表,表 RAM中的位寻址区地址表,表 SFR特殊功能寄存器地址表,表 SFR特殊功能寄存器地址表,表 SFR特殊功能寄存器地址表,3.外部数据存储器 外部数据存储器一般由静态RAM构成,其容量大小由用户根据需要而定,最大可扩展到 64 KB RAM,地址是 0000H0FFFFH。CPU通过MOVX指令访问外部数据存储器,
36、用间接寻址方式,R0、R1和 DPTR都可作间接寄存器。注意,外部RAM和扩展的I/O接口是统一编址的,所有的外扩I/O 口都要占用 64 KB中的地址单元。,75,2.4 MCS-51单片机并行I/O口电路,在单片机中,“口”是一个集数据输入缓冲、输出驱动及锁存等多项功能于一体的I/O电路。MCS-51单片机4个8位的并行I/O口:P0、P1、P2、P3,这4个口既可以按字节寻址,也可以按位寻址,共32位。每个口输出具有锁存功能,前一次输出的信息将一直锁存到下一次输出新信息时为止;输入没有锁存功能,所以输入信息应一直保持到输入指令把信息取走时为止。每个口都能用作通用输入/输出,其中P0口又能
37、作为地址/数据总线,P2口能传送高8位地址;P3口有第二功能;P1口只能用作通用I/O口。,76,P0口字节地址:80H,位地址:80H87H既能用作通用I/O口,又能用作地址/数据总线的复用。,V1,V2,1,2,3,4,77,P0口由8个完全相同又相互独立的逻辑电路组成:锁存器用于进行数据位的锁存,8个锁存器构成了特殊功能寄存器P0;场效应管V1、V2组成数据输出的驱动和控制电路;与门3、反相器4及多路转接开关MUX构成输出控制电路;三态门1是引脚输入缓冲器;三态门2是用于读锁存器端口。,读引脚是指将引脚P0.x上的值通过内部总线读入CPU,而读锁存器是读入一个口锁存器的值,进行处理后重新
38、写回锁存器中(读-修改-写)。由指令决定是读引脚还是读锁存器,例如指令ANL P1,A 就是读锁存器,它是将P1口的8位分别与累加器A中的8位进行与操作,结果写回P1口的8个锁存器中。,78,P0口用作通用I/O口CPU发来的控制信号为低电平,MUX接通锁存器Q端的输出通路。与门3输出低电平并将输出驱动电路的上拉场效应管V2截止,输出端处于漏极开路状态。【注意】:P0口在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出,必须外接上拉电阻。P0口作为输入口使用时,应区分读引脚和读锁存器。读引脚时应使V1截止(先向该端口锁存器写入“1”),79,P0口作为地址/数据总线CPU
39、发来的控制信号为高电平,MUX接通反相器4。作总线输出时,从“地址/数据”端输入的地址(低8位)或数据信号同时作用于与门3和反相器4,并分别驱动V1、V2,结果在引脚上得到地址或数据输出信号。外部数据输入时,CPU使V1、V2均截止,从引脚上输入的外部数据经读引脚缓冲器2进入内部数据总线。,【注意】:P0口在有外部扩展存储器时被作为地址/数据总线口,此时是一个真正的双向口;在没有外部扩展存储器时,P0口也可作为通用的I/O接口,但此时只是一个准双向口。,80,P1口字节地址:90H,位地址:90H97H只能作为通用I/O口使用,是准双向口。,1,2,V1,81,P1口电路与P0口的区别:因只传
40、送数据,所以没有地址/数据的传送电路和多路转接开关MUX。输出驱动电路中有上拉电阻,上拉电阻与场效应管共同组成输出驱动电路。输出数据时,已能对外提供推拉电路负载,外电路无需再接上拉电阻。输入数据时,应先向其锁存器写入“1”,使输出驱动电路的V1截止。,82,P2口字节地址:0A0H,位地址:0A0H0A7H可作为通用I/O口或地址总线高8位,是准双向口。,1,2,3,V1,83,P2口作为通用I/O口当控制信号为低电平时,多路开关MUX接到左端,P2口作为通用I/O口使用,其功能和使用方法与P0、P1相同。用作输入时,也必须先向锁存器写入“1”。P2口作为地址总线当控制信号为高电平时,多路开关
41、MUX接到右端,由程序计数器PC送来的高8位地址PCH或数据指针DPTR送来的高8位地址DPH经反相器3和V1管二次反相后从引脚输出。(P2口输出地址总线高8位,供系统扩展用),对于8051、8751型单片机,P2口能作为通用I/O或地址总线使用。对于8031型单片机(无片内ROM),P2口只能作为地址总线高8位。,84,P3口字节地址:0B0H,位地址:0B0H0B7H可用作通用I/O口,同时每个引脚还有第二功能。准双向口,3,V1,4,1,2,85,P3口作为通用I/O口“第二功能输出”端为高电平,用作输出时,与非门3的输出取决于锁存器Q端信号,引脚输出信号与内部总线信号相同。其功能和使用
42、方法与P1、P2相同。用作输入时,也须先写入“1”。,P3口用作第二功能P3口的某一位作为第二功能输出使用时,该位的锁存器置“1”,使与非门3和输出状态只受“第二功能输出”端控制。第二功能输出信号经与非门3和V1管二次反相后输出到该位引脚。P3口的某一位作为第二功能输入使用时,该位的“第二功能输出”端和锁存器自行置“1”,该位引脚上的信号经缓冲器4送入“第二功能输入”端。,补充:51单片机并行输入/输出接口,图 P0 口内部一位结构图,1.P0口,2.P1、P2和P3口,P1、P2 和P3 口为准双向口,在内部差别不大,但使用功能有所不同。P1口是用户专用 8 位准双向I/O口,具有通用输入/
43、输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。P2口是 8 位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0 口一起组成 16 位地址总线。对于 8031 而言,P2 口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。,表 P3口的第二功能,89,时钟电路用于产生单片机工作所需要的时钟信号。单片机本身是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序协调工作。时序研究的是指令执行中各信号之间的相互时间关系。,2.5 MCS-51
44、单片机时钟电路与时序,90,时钟电路 时钟信号的产生(内部方式时钟)MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。外接作为反馈元件的晶体后成为自激振荡器,晶体呈感性,与微调电容C1、C2构成并联谐振回路。,振荡器的频率主要取决于晶体,电容有微调作用。晶体的振荡频率范围通常是1.212MHz,电容C1、C2一般取30 pF。晶体振荡频率越高,系统的时钟频率越高,单片机运行速度越快。,91,引入外部脉冲信号(外部方式时钟)在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入唯一的公用外部脉冲信号作为各单片机的震荡脉冲。外接的脉冲应
45、是高低电平持续时间大于20ns的方波,且脉冲频率应低于12MHz。,92,分频电路,振荡电路产生的振荡信号并不直接为单片机所用,而要进行分频,以得到单片机各种相关的时钟信号。时钟频率为振荡频率的2分频,ALE信号频率为振荡频率的6分频,机器频率为振荡频率的12分频。,当振荡脉冲频率为12MHz时,一个机器周期为1ms;当振荡脉冲频率为6MHz时,一个机器周期为2ms。,93,时序定时单位振荡周期(节拍P):振荡脉冲的周期。时钟周期(状态S):两个振荡周期为一个时钟周期。一个状态包含两个节拍,前半周期对应的节拍叫P1,后半周期对应的节拍叫P2。机器周期:一个机器周期的宽度为6个状态,用S1、S2
46、、S6表示;共12个节拍,依次可表示为S1P1、S1P2、S2P1、S2P2、S6P1、S6P2。指令周期:执行一条指令所需要的时间,它以机器周期为单位,是最大的时序定时单位。MCS-51的指令周期根据指令的不同,可包含有1、2、4个机器周期。,94,典型指令时序MCS-51共有111条指令,按长度可分为:单字节指令、双字节指令、三字节指令。执行这些指令所需要的机器周期数目是不同的,概括起来有以下几种情况:单字节单机器周期指令、单字节双机器周期指令、双字节单机器周期指令、双字节双机器周期指令、三字节的指令都是双机器周期、单字节的乘、除指令为四个机器周期,ALE信号为MCS-51扩展系统的外部存
47、储器地址低8位的锁存信号,ALE信号每有效一次对应单片机进行1次的读指令操作。ALE信号以振荡脉冲的1/6频率出现,在一个机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间,有效宽度为1个状态。,补充 51单片机 单片机工作的基本时序,1.机器周期和指令周期(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。(2)状态周期:每个状态周期为时钟周期的 2 倍,是振荡周期经二分频后得到的。(3)机器周期:一个机器周期包含 6 个状态周期S1S6,也就是 12 个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。(4)指令周期
48、:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51 系统中,有单周期指令、双周期指令和四周期指令。,2.MCS-51 指令的取指/执行时序,图 MCS-51 单片机取指/执行时序,3.访问外部ROM和RAM的时序,图 读外部程序ROM时序,图 读外部数据RAM时序,图 写外部数据RAM的时序,100,MCS-51单片机有5种不同的工作方式,每种工作方式都代表着单片机的一种工作状态。包括:程序执行方式(分为连续执行和单步执行)复位方式 掉电方式 低功耗节电工作方式 EPROM编程和校验方式,2.6 MCS-51单片机工作方式,101,程序执行方式
49、(单片机的基本工作方式)连续执行方式(正常工作方式)由于单片机复位后PC=0000H,因此程序执行总是从地址0000H开始,但因0003H是外部中断程序入口,所以一般程序并不是从0000H开始,为此需在0000H开始的单元中存放一条无条件转移指令,以便跳转到实际程序的入口去执行。单步执行方式 MCS-51单片机的外部中断INT0引脚上输入一个正脉冲可实现单步执行方式。,102,复位方式和复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。复位后,单片机才能开始正常工作。RST引脚是复位信号的输入端,在单片机的RST端加上高电平(持续2个
50、机器周期以上),单片机即进入复位工作方式。复位不影响MCS-51单片机内部RAM的状态,只要RST输入端保持高电平,将循环复位。在复位有效期间,ALE和PSEN信号变为无效状态。RST返回低电平后,CPU从0000H地址开始执行程序。,103,复位后单片机有关寄存器的状态,104,说 明:(PC)=0000H 表示复位后程序的入口地址为0000H;(PSW)=00H,其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器第0组;(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立;P0口 P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,