本章传授教化基本哀求
1.节制MCS-51单片机的内部构造及功能,熟习MCS-51单片机P0~P3端口的特性,节制MCS-51单片机的存储器的构造。

2.理解MCS-51单片机的时钟电路、复位电路和总线时序。
\r\r重点与难点
\r\r1.MCS-51单片机P0~P3端口的特性及利用方法。
\r\r2.MCS-51单片机的存储器的构造及利用方法。
\r\r 2.1 MCS-51单片机的组成\r\rMCS-51单片机是美国Intel公司生产的一系列单片机的总称,这一系列单片机包括许多品种,如8031、8051、8751、8032、8052、8752等,个中8051是最早、最范例的产品,该系列其他单片机在8051的根本上进行了功能的增加或减少,以是人们习气于用8051来称呼MCS-51单片机。
\r\rMCS-51单片机采取哈佛构造,采取超大规模集成电路技能把具有数据处理能力的中心处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、多种I/O端口和中断系统、定时器/计数器等功能集成到一块硅片上构成了一个小而完善的打算机系统,其内部构造如图2-1所示。
\r\r中心处理器(CPU):是全体单片机的核心,具有8位数据宽度,能处理8位二进制数据。CPU卖力全体单片机的正常事情,完成算术运算、逻辑运算、输入/输出掌握、中断处理等操作。
\r\r程序存储器:一样平常大小为4KB,紧张用于存放程序代码和一些原始数据或表格。
\r\r定时器/计数器:两个16位定时器/计数器可实现定时或计数功能。有些单片机还有第三个定时器,用于分外用场,如自动重装载、波特率设置等。
\r\r并行I/O端口:4组8位I/O端口(P0、P1、P2和P3),用于实现与外部设备的数据交流和掌握。
\r\r全双工串行口:内置一个全双工串行口,用于与其他芯片或设备的串行数据传送,该串行口既可以用作异步通信收发器,也可以用作同步移位器。
\r\r中断系统:有5个中断源,分别为两个外部中断、两个定时器/计数器中断和一个串口通信中断,并具有2级的优先级别。
\r\r \r\r图2-1 MCS-51单片机的内部构造
\r\r时钟电路:用于产生全体单片机运行的脉冲时序,MCS-51单片机多数须外接振荡电容,但部分MCS-51单片机内置了时钟电路,片外不用配置振荡电容。
\r\r数据存储器(RAM):有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能存放掌握指令,用户只能访问,不能存放用户数据。以是,用户能利用的RAM只有128个单元,可存放读/写的数据、运算的中间结果或用户定义的字型表。数据存储器构造见表2-1。
\r\r表2-1 数据存储器构造
\r\r \r\rMCS-51单片机包含51子系列和52子系列,如8051、8052等,个中52系列比51系列功能多一些,除基本构造相同外,不同之处紧张表示在:数据存储器容量为256字节(51系列为128字节);程序存储器容量为8~32KB;有3个16位定时器/计数器;有6个中断源。在本书给出的MCS-51单片机的电路连接图或参考程序中,没有严格区分单片机AT89C51和AT89S51。
\r\r所有MCS-51单片机都包含了以上基本构造,编程基本兼容。但是,MCS-51单片机随着芯片技能的不断发展,内部构造越来越繁芜,很多芯片除保持内部数据总线、地址总线和数据存储格式仍旧为8位外,数据存储器和程序存储器容量、外部I/O端口掌握、外部总线接口等发生了很大的变革。AD公司的ADU812集成了看门狗、温度采集模块等;C8051F系列的I/O端口进行了扩展,具备了串行总线接口、USB总线接口;P8xC591系列单片机内部集成了CAN总线接口。
\r\r 2.1.1 引脚定义\r\rMCS-51单片机中的80C51和80C52常采取40Pin的DIP封装或者44Pin的PLCC封装,如图2-2所示。
\r\r \r\r图2-2 80C51/80C52的引脚分布与封装图
\r\r1.电源及时钟旗子暗记引脚
\r\rVcc:正常事情或对内部EPROM烧写程序时,接+5V电源。
\r\rGND:地。
\r\rXTAL1:时钟旗子暗记输入引脚,内部振荡电路的输入端。
\r\rXTAL2:时钟旗子暗记输出引脚,内部振荡电路的输出端。
\r\r2.输入/输出引脚
\r\rMCS-51单片机有4组8位I/O端口:P0、P1、P2和P3端口,P1、P2和P3为准双向端口,P0端口则为双向三态输入/输出端口。在DIP封装中,引脚39~32为P0.0~P0.7输入/输出引脚,引脚1~8为P1.0~P1.7输入/输出引脚,引脚21~28为P2.0~P2.7输入/输出引脚,引脚10~17为P3.0~P3.7输入/输出引脚。
\r\rMCS-51单片机的P0端口可以作为地址总线低8位和数据总线,P2端口可作为地址总线高8位,其逻辑构造如图2-3所示。电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,还有一个数据输出的驱动和掌握电路。这两组线用作CPU与外部存储器(程序/数据)和I/O端口扩展时的数据总线和地址总线,个中P0、P2端口可以构成16位地址总线。此外,在读取外部存储器数据时,P0端口既作为低8位地址总线,也作为8位数据总线利用,即地址总线与数据总线采取分时复用,这一特点与8086微处理器的AD0~AD15相同。CPU输出地址时,由地址锁存旗子暗记ALE关照地址锁存芯片(如74LS573/74LS373)锁存P0.0~P0.7引脚上的地址信息。
\r\r \r\r图2-3 P0与P2端口的逻辑构造
\r\rP2端口作为外部数据存储器或程序存储器的地址总线的高8位输出(A8~A15),选通高位地址。P0端口作为低8位地址总线的输出,选通低位地址。当读取外部存储器数据时,P0端口送出低8位地址,同时P2端口送出高8位地址,合成16位地址信息。此时,ALE掌握时序,先将低8位地址锁存,等外部存储器获取到地址信息后,P0端口随即送出或者读取8位数据。外部的程序存储器由PSEN旗子暗记选通,数据存储器则由和读/写旗子暗记选通。MCS-51单片机有16根地址线,故最大可外扩64KB的程序存储器和数据存储器。
\r\r图2-4所示为P1和P3端口逻辑构造。P1端口为8位准双向端口,每一位均可单独定义为输入或输出端口。当作为输入端口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至“1”,此时该端口输出1;当0写入锁存器,Q(非)=1,T2导通,输出0。
\r\r作为输入端口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,因此P1端口称为准双向端口。作为输入端口利用时,有两种情形,一种是读锁存器的内容,进行处理后再写到锁存器中,这种操作是读→修正→写操作,如JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。另一种是读P1端口状态时,打开三态门G2,将外部状态读入CPU。
\r\rP3端口为准双向端口。P3端口的输入/输出、锁存器、中断、定时器/计数器、串行口与分外功能寄存器有关。P3端口的第一功能和P1端口一样,可作为输入/输出端口,同样具有字节操作和位操作两种办法,在位操作模式下,每一位均可定义为输入或输出。P3端口第二功能表见表2-2。在MCS-51单片机实际运用处所中,P3端口的第二功能显得更为主要。
\r\r \r\r图2-4 P1和P3端口逻辑构造
\r\r表2-2 P3端口第二功能表
\r\r \r\r当P3端口事情为普通I/O端口时,第二功能旗子暗记线应保持高电平,与非门开通,以坚持从锁存器到输出端口的数据输出通路畅通无阻;而利用P3端口的第二功能时,对应的锁存器置高电平,使与非门对第二功能旗子暗记的输出是畅通的,从而实现第二功能旗子暗记的输出。当P3端口的某个引脚为第二功能旗子暗记输入时,在输入通路增设一个缓冲器,输入的第二功能旗子暗记即从这个缓冲器的输出端取得,而作为I/O端口的输入端时,取自三态缓冲器的输出端。
\r\r3.掌握线
\r\rRST:复位旗子暗记复用引脚。当89C51芯片通电后,时钟电路开始事情,在RST引脚上涌现24个时钟周期(或者两个机器周期)以上的高电平就可以实现复位操作,系统规复到初始状态。通电时,考虑到有一定的起振韶光,该引脚上的高电平必须坚持10ms以上才能担保有效复位。初始化后,程序计数器指向0000H,P0~P3端口全部为高电平,堆栈指针写入07H,指明堆栈的入口地址,其他专用寄存器被清0。RST由高电平低落为低电平后,系统即从0000H地址开始实行程序。
\r\rVcc掉电期间,该引脚如果接备用电源(+5V±0.5V),可用于保存片内RAM中的数据,当Vcc低落到某规定值以下,开始向片内RAM供电。
\r\r:地址锁存有效旗子暗记输出端。当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲旗子暗记,这个旗子暗记可以用于识别单片机是否事情,也可以当作一个时钟向外输出。当外部程序存储是EPROM时,在编程期间,将用于输入编程脉冲。
\r\r:片外程序存储器读选通信号输出端,也称片外取指旗子暗记输出端,该旗子暗记在每个机器周期内两次有效。当访问外部程序存储器时,此脚输出低电平选通信号。8位或16位地址数据将涌如今P0和P2端口上,外部程序存储器则把指令数据放到P0端口上,由CPU读入并实行。
\r\rEA/VPP:片外程序存储器的选用端,该引脚EA为低电平,则读取外部程序存储器指令。当EA为高电平并且程序地址小于4KB时,读取内部程序存储器指令,而超过4KB地址则读取外部指令。对内部无程序存储器的8031芯片,EA保持接地。其余,在对单片机内部EPROM进行编程时,EA/VPP引脚还要加上12V的编程电压。
\r\r 2.1.2 CPU\r\rMCS-51单片机的CPU由运算器和掌握器构成,是单片机的核心部分。它的组成和事情事理与多数CPU有相似之处,详细先容如下。
\r\r1.运算器
\r\r运算器以算术逻辑单元(ALU)为核心,包括累加器(A)、寄存器(B)、暂存寄存器、程序状态字寄存器(PSW)等部件。它的功能是完成算术和逻辑运算、位变量处理和数据传送等操作。
\r\r(1)算术逻辑单元由加法器和其他逻辑电路(如移位电路、掌握门电路等)组成。它不仅能完成8位二进制数的加、减、乘、除、加1、减1及BCD加法的十进制调度等算术运算,还能对8位变量进行与、或、异或、循环移位、求补、清零等逻辑运算,并具有数据传送、程序转移以及位处理(布尔操作)等功能。
\r\r(2)累加器是一个8位寄存器,是CPU中利用最频繁的寄存器。通过暂存器与ALU相连,向ALU供应操作数并存放运算结果。
\r\r(3)寄存器是为ALU进行乘、除法运算而设置的,在乘、除法运算时用来存放一个操作数,也用来存放运算后的一部分结果,不进行乘、除法运算时,还可作为通用寄存器利用。
\r\r(4)暂存寄存器暂时存储数据总线或其他寄存器送来的操作数,作为ALU的数据源,向ALU供应操作数。
\r\r(5)程序状态字寄存器是一个8位的分外寄存器,它保存ALU运算结果的特色和处理状态,以供程序查询和判别。个中各位状态信息常日是指令实行过程中自动形成的,也可以由用户根据须要加以改变。PSW各位见表2-3。
\r\r表2-3 PSW各位
\r\r \r\r① CY(PSW.7):进位标志。无符号数运算中,当加法或减法运算最高位有进位或借位时,CY=1;进行加法或减法运算时,最高位无进位或借位,CY=0。CY紧张用在多字节的加减法运算中,CY可以写成C。
\r\r② AC(PSW.6):赞助进位标志。无符号数运算中,进行加法或减法运算时,低4位向高4位有进位或借位,AC=1;低4位向高4位无进位或借位,AC=0。AC常作为打算机进行BCD码改动的判断依据。
\r\r③ F0(PSW.5):用户标志位,无特殊意义,供用户自定义。通过软件置位或清0,并根据F0=1或0来反响系统某一种事情状态,决定程序的实行办法。
\r\r④ RS1、RS0(PSW.4、PSW.3):事情寄存器组选择位,可用软件置位或清0,用于选定当前利用的4个事情寄存器组中的某一组,详细对应关系见表2-4。
\r\r表2-4 RS1、RS0取值与事情寄存器组(R0~R7)的对应关系
\r\r \r\r⑤ OV(PSW.2):溢出标志位,紧张用于有符号数运算,运算结果超出范围时,OV=1;否则,OV=0。如为8位运算,结果超过了8位补码所能表示的范围时,OV=1。
\r\r⑥ P(PSW.0):奇偶标志位。在实行指令后,单片机根据累加器的8位二进制数中“1”的个数的奇偶,自动给该标志置位或清0。若累加器的8位二进制数中“1”的个数为奇数,则P=1;若累加器A中“1”的个数为偶数,则P=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可考验传输的可靠性。
\r\r2.掌握器
\r\r掌握器由程序计数器、指令寄存器、指令译码器、数据地址指针(DPTR)、堆栈指针等组成。其功能是对来自程序存储器中的指令进行译码,通过定时掌握电路,在规定的时候发出各种操作所需的内部和外部的掌握旗子暗记,使各部分折衷事情,完成指令所规定的功能。
\r\r1)程序计数器(Program Counter, PC)
\r\rPC是一个16位的专用寄存器,并具有自动加1的功能。当CPU要取指令时,PC的内容送到地址总线上,从而指向程序存储器中存放当前指令的单元地址,以便从程序存储器中取出指令,加以剖析、实行。同时PC自动加1,指向下一条指令,以担保程序按顺序实行。也可以通过掌握转移指令改变PC的值,实现程序的转移。
\r\r2)指令寄存器(Instruction Register, IR)
\r\r指令寄存器是一个8位寄存器,用于暂存待实行的指令,等待译码。指令译码电路是对指令寄存器中的指令进行译码,将指令转变为实行此指令所须要的电旗子暗记,再经定时掌握电路定时产生实行该指令所须要的各种掌握旗子暗记。
\r\r3)指令译码器(Instruction Decoder, ID)
\r\r指令译码器将指令寄存器中的指令进行译码,产生一定序列的掌握旗子暗记,完成指令所规定的操作。
\r\r4)数据地址指针(DPTR)
\r\r数据地址指针(DPTR)是一个16位的专用地址指针寄存器,它由DPH和DPL这两个分外功能寄存器组成。DPH是DPTR的高8位,DPL是DPTR的低8位。
\r\rDPTR用于存放16位地址,可对外部数据存储器RAM 64KB(0000H~0FFFFH)地址空间寻址。
\r\r5)堆栈指针(Stack Pointer, SP)
\r\r在打算机或单片机中处理子程序调用和中断操作等问题时,常日须要保存返回地址和保护现场信息。在MCS-51单片机中,堆栈用来保存返回地址和保护现场信息,堆栈是在RAM中专门开辟的一个分外的存储区。堆栈区域的位置就由堆栈指针指定。堆栈的访问原则是前辈后出、后进先出,即前辈入堆栈的数据后移出堆栈,后进入堆栈的数据先移出堆栈。堆栈一真个地址是固定的,称为栈底;另一真个地址是动态变革的,称为栈顶。堆栈有两种操作办法:数据进栈和数据出栈。进栈和出栈都在栈顶进行。
\r\r堆栈紧张用光降时存放数据,有两种情形:一种是CPU自动利用堆栈,当调用子程序或相应中断、处理中断做事程序时,CPU自动将返回地址存放到堆栈中,通过堆栈通报参数。另一种是程序员利用堆栈,用堆栈暂时存放数据。堆栈指针中为栈顶的地址,即指向栈顶。堆栈指针具有自动加1、自动减1功能,当数据进栈时,先自动加1,然后CPU将数据存入;当数据出栈时,CPU先将数据送出,然后自动减1。
\r\r 2.1.3 存储器\r\rIntel公司的MCS-51单片机的存储器体系采取哈佛构造。在MCS-51单片机中,不仅在片内预留了一定容量的程序存储器、数据存储器以及浩瀚的分外功能寄存器(SFR),而且还具备外部存储器扩展功能,程序存储器和数据存储器的最大寻址空间均可达64KB,寻址和操作大略方便,其存储器构造如图2-5所示。
\r\r \r\r图2-5 MCS-51单片机存储器构造
\r\r由图2-5可见,MCS-51单片机的存储器在物理上设有四个空间,即内部程序存储器、外部程序存储器、内部数据存储器和外部数据存储器。但由于内、外部程序存储器统一寻址,事实上只有3个逻辑空间,即内、外部统一寻址的64KB程序存储器地址空间、内部256B数据存储器地址空间和外部64KB的数据存储器地址空间,通过指令区分访问内部数据存储器还是外部数据存储器。在访问这3个逻辑空间时,应分别采取不同形式的指令,如MOVC(访问程序存储器)、MOV(访问内部数据存储器)和MOVX(访问外部数据存储器)等。内部数据存储器空间在物理上又包含两部分:对付51子系列单片机(如8031),从00H~7FH共128字节是真正的内部RAM空间,而80H~FFH仅个中20余字节用作分外功能寄存器(SFR)空间,访问其他字节是无意义的;对付52子系列的单片机(如8032或8052),00H~7FH的含义与51子系列相同,而80H~FFH是内部数据存储器高端地址和分外功能寄存器(SFR)端口地址的重叠区域。
\r\r1.程序存储器
\r\r程序存储器(Program Memory)紧张用于存放运用程序、表格和常数。由于MCS-51单片机采取16位的程序计数器和16位的地址总线,因而程序存储器可扩展的地址空间为64KB,并且这64KB地址在空间分布范围上是连续和统一的。
\r\r单片机运用系统中的程序存储器一样平常采取半导体只读存储器,即ROM。这种存储器在打算机运行时只能对其实行读操作,纵然整机掉电后存于个中的信息也不会丢失,显然适宜于存放用户程序、常数和表格等。
\r\rMCS-51单片机的程序存储器为固定的只读存储器(ROM)。如8051中含有4KB容量的掩膜ROM,8751中含有4KB容量的EPROM,89C51中含有4KB容量的FlashROM。而8031/8032中不设程序存储器,利用过程中必须外扩ROM。
\r\rMCS-51单片机的全体程序存储器可以分为内部和外部两部分,CPU访问外部ROM时,PSEN引脚上产生选通信号。CPU读取内/外部的指令由EA引脚所接的电平决定。
\r\r(1)当EA引脚接高电平时,CPU可访问内部和外部ROM,并且程序自内部ROM开始实行,PC值超出内部ROM容量时,会自动转向外部ROM中的程序。
\r\r(2)当EA引脚接低电平时,总是寻址外部ROM,且从0000H开始编址,系统全部实行外部ROM中的程序。
\r\r以是,内部集成了ROM的8051/8751/89C51等单片机正常运行时,EA引脚应接高电平;而内部无ROM的8031/8032等单片机,外部必须扩展足够容量的专用ROM器件,且EA引脚必须接低电平,以迫使单片机运行时只能从外部ROM读取指令。
\r\r2.内部数据存储器
\r\rMCS-51单片机的内部数据存储器是最灵巧的地址空间,由于集成在芯片内部,因此存取速率快、效率高,但数量少,常用于存放运算的中间结果、数据缓冲以及设置特色标志等。内部数据存储器在物理上分为两个不同的功能区,如图2-6所示。
\r\r(1)内部数据区:对51子系列(如8031/8051/AT89C51等)为该地址空间的低128B(00H~7FH),对52子系列(如8032/8052/AT89C52等)为全部256B的存储空间(00H~FFH)。内部数据访问与存储利用指令MOV。以AT89C51为例,内部RAM地址00H~1FH分配给R0~R7寄存器组,详细地址分配见表2-5;内部RAM地址20H~2FH的位地址对应关系见表2-6。
\r\r(2)分外功能寄存器(Special Function Register, SFR)区:地址空间的高128字节(80H~FFH)。对付52子系列,高128字节RAM区与SFR区是重叠的,访问时要通过不同的寻址办法加以差异,即访问高128字节RAM区时利用间接寻址办法,而访问SFR区时,则应利用直接寻址办法。对付51子系列,高128字节RAM区仅为SFR区。8051和8052系列单片机的紧张分外功能寄存器符号与含义见表2-7。
\r\r \r\r图2-6 MCS-51单片机内部RAM构造
\r\r表2-5 事情寄存器组(R0~R7)与内部RAM地址对应关系
\r\r \r\r表2-6 内部RAM地址20H~2FH的位地址对应关系
\r\r \r\r表2-7 8051和8052系列单片机紧张分外功能寄存器符号与含义
\r\r \r\r续表
\r\r \r\r如果将DPTR寄存器拆分为两个独立的8位寄存器DPH和DPL,则MCS-51单片机紧张有27个分外功能寄存器,个中8051系列有11个寄存用具有位寻址功能,8052系列单片机由于扩展了一个定时器/计数器,则有12个寄存用具有位寻址功能,这些寄存器中的每一位都具有位地址,具有定义的位可以直接按位访问,可进行位寻址的SFR的分布见表2-8所列。须要把稳的是,PC不霸占RAM单元,在物理上是独立的,因此是不可寻址的寄存器。对专用寄存器只能利用直接寻址办法,编写程序的时候既可利用寄存器符号,也可利用寄存器单元地址。内部RAM及分外功能寄存器各存储单元之间的数据传送用MOV指令。
\r\r表2-8 8051和8052系列单片机中可进行位寻址的SFR的分布
\r\r \r\r续表
\r\r \r\r注:表2-8中“—”表示该位没有利用,不能用指令进行读写操作;“”表示该二进制位没有分外含义,仅仅代表该寄存器的某一个二进制位,可以通过指令读写该位数据。
\r\r表2-5中,R0~R7寄存器组在汇编程序中可以通过设置RS1、RS0两个位,将寄存器分配到不同事情寄存器区,不同事情寄存器区的通用寄存器Rn(n=0~7)只管编号n相同,但具有不同的RAM地址,因此通用寄存器共有8×4=32个。
\r\r表2-7中,寄存器T2CON、T2MOD、RCAP2L、RCAP2H、TL2、TH2是8052系列单片机扩展的定时器/计数器2的寄存器,在8051系列单片机中不存在。
\r\r由表2-8可知,能够按位访问的SFR其字节地址均为8的倍数,且每个SFR的字节地址为该寄存器最低位的位地址。比如:P2寄存器的字节地址为0A0H,最低位P2.0的位地址也是0A0H。由表2-6和表2-8可知,MCS-51单片机可以按位访问的位地址范围为00H~0F7H,个中位地址0AEH、0BEH、0BFH和0D1H共计4个位单元没有定义,读写操作没故意义;而ET2(0ADH)、PT2(0BDH)和T2CON的8个位适宜具备定时器/计数器2的8052系列单片机,8051没有定时器/计数器2,读写操作没故意义。
\r\r3.外部数据存储器
\r\r由于MCS-51单片机内部数据存储器只有128B,每每不足用,这就须要扩展外部数据存储器。外部数据存储器最多可以扩到64KB,16位数据指针寄存器作为间接寻址的寄存器的地址指针,其寻址范围为64KB。当外部数据存储器小于256B时,可用R1、R0作为间接寻址寄存器的地址指针。访问外部数据存储器或扩展I/O口可用MOVX指令。
\r\r 2.2 MCS-51单片机时钟电路与总线时序\r\r无论是通用微型打算机还是单片机,CPU所有的事情都是在时钟旗子暗记掌握下进行的,每实行一条指令,CPU的掌握器就要发出一系列特定的掌握旗子暗记,这些掌握旗子暗记在韶光上的先后次序便是CPU的事情时序。
\r\r 2.2.1 时钟电路\r\rMCS-51单片机的时钟连接有两种办法,一种是内部时钟办法,但须在XTAL1和XTAL2引脚外接石英晶体(2~24MHz)和振荡电容,电容C1和C2对频率有微调浸染,电容量的选择范围为5~30pF,如图2-7(a)所示。另一种是采取外部时钟办法,即将XTAL2引脚悬空,外部时钟旗子暗记(外部振荡器供应的旗子暗记)从XTAL1引脚输入,如图2-7(b)所示。
\r\r \r\r图2-7 MCS-51单片机的时钟连接办法
\r\r在单片机运用电路设计中,时钟电路器件该当尽可能靠近CPU对应引脚。如果CPU无法正常事情,可通过示波器检测CPU时钟引脚是否有一定幅值的时钟旗子暗记,如果有,则时钟电路正常。
\r\r 2.2.2 总线时序\r\rMCS-51单片机的振荡频率经由内部二分频往后得到的旗子暗记周期,称为状态周期,即一个状态周期包括两拍的时钟周期。机器周期便是打算机完成一种基本操作所需的韶光。MCS-51单片机的机器周期由6个状态周期组成,即S1~S6,而每个状态又分为两拍,称为P1和P2,因此一个机器周期中的12个振荡周期常可表示为S1P1、S1P2、…、S6P1、S6P2。若采取12MHz的晶体振荡器,则每个机器周期为12×106/(12×106)=1μs,若采取6MHz晶体振荡器,则每个机器周期为2μs。
\r\r在MCS-51单片机指令系统中,有单字节指令、双字节指令和三字节指令。每条指令的实行韶光分别占用1个或几个机器周期。单字节指令和双字节指令都可能是单机器周期和双机器周期的,而三字节指令都是双机器周期的,只有乘、除法指令占用4个机器周期。
\r\r每一条指令的实行都包括取指令和实行指令两个阶段。在取指令阶段,CPU从程序存储器中取出指令操作码及操作数,然后实行这条指令的逻辑功能。对付绝大部分指令,在全体指令实行过程中,ALE是周期性的旗子暗记,如图2-8所示。在每个机器周期中,ALE旗子暗记涌现两次:第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间。ALE旗子暗记的有效宽度为1个S状态。每涌现一次ALE旗子暗记,CPU就进行一次取指令操作。
\r\r \r\r图2-8 MCS-51单片机的机器周期
\r\r对付单机器周期指令,从S1P2开始把指令码读到指令寄存器。如果是双字节指令,则在同一个机器周期的S4读入第二字节。对单字节指令,在S4仍有一次读指令码的操作,但读入的内容被忽略(不处理),并且程序计数器不加1,这种无效的读取称为假读。不才一个机器周期的S1才真正读取此指令码。
\r\r 2.3 复位电路\r\r复位是单片机的初始化操作,如对AT89C51单片机的复位引脚RST加上大于24个时钟振荡周期的高电平就可使其正常复位。
\r\r当AT89C51单片机进行复位时,PC初始化为0000H,使AT89C51单片机从程序存储器的0000H单元开始实行程序。除了进入系统的正常初始化,当程序运行出错或操作缺点使系统处于去世锁状态时,也须按复位键让RST引脚置为高电平,使AT89C51单片机摆脱“跑飞”或“去世锁”状态而重新启动。
\r\r除PC外,复位操作还对其他一些寄存器有影响,紧张寄存器复位时的状态见表2-9。
\r\r表2-9 紧张寄存器复位时的状态
\r\r \r\rAT89C51单片机的复位是由外部的复位电路实现的。复位电路常日采取上电自动复位和按钮复位两种办法,如图2-9所示。
\r\r \r\r图2-9 AT89C51单片机的外部复位电路
\r\r上电自动复位是通过外部复位电路的电容充电实现的。当电源接通时,电容C1充电,RST处于高电平,且韶光远超过1ms,从而确保单片机正常复位;当电容充电完毕时,RST被电阻R1下拉到低电平,单片机开始正常运行。
\r\r须要把稳的是,险些所有单片机都须要外接复位电路,但不同厂家的产品,其复位逻辑电平可能不同,如新华龙C8051F020单片机,只管该单片机仍旧是51内核,但CPU采取低电平复位,即RST引脚接低电平时单片机复位,该引脚接高电平时为正常运行状态。
\r\r 2.4 MCS-51单片机的最小系统\r\rMCS-51单片机硬件资源较为丰富,单个芯片合营一定的外围电路就能构成一个最小系统,实现大略的运用,图2-10是MCS-51单片机的最小系统电路图。一样平常来说,单片机的最小系统包括电源部分(电源正、电源地)、晶振部分(11.0592MHz、12MHz、6MHz)、复位电路。将以上三个电路精确连接,单片机就能正常事情。EA有两种接法,一是接高电平,此时单片机采取内部程序存储器,不该用外部程序存储器,最小系统在启动后实行单片机内部程序存储器中的程序;另一种是接低电平,单片机采取外部程序存储器,此时就不是一个最小系统,而是单片机扩展系统了。
\r\r最小系统中紧张电路构成先容如下。
\r\r(1)电源电路。引脚Vcc(引脚40)接+5V电源,引脚GND(引脚20)接地线。为提高电路的抗滋扰能力,1个瓷片电容和1个电解电容常日被接在引脚Vcc和接地线之间。
\r\r(2)程序存储器选择电路。如前所述,Atmel公司生产的8051兼容芯片具有多种容量的内部程序存储器,因此在利用中不须要再扩展外部程序存储器,这样在单片机运用电路中,引脚EA(引脚31)接高电平,单片机在复位后从内部ROM的0000H开始实行程序。
\r\r(3)时钟电路和时序。系统时钟是统统微处理器、微掌握器内部电路事情的根本。AT89C51芯片的时钟频率为2~24MHz。单片机内部有1个可以构成振荡器的电路。在这个放大电路的引脚XTAL2和XTAL1接上晶体电容就可以构成单片机的时钟电路。常用时钟电路有内部时钟办法和外部振时钟办法。图2-10中的时钟电路由晶体Y1和电容C2与C3组成。单片机的时钟频率取决于晶体Y1的频率。电容C2与C3的取值范围为20~30pF。
\r\r(4)复位电路。对付AT89C51单片机,只要复位引脚RST保持24个时钟周期的高电平,就可以完成复位。为了担保运用系统可靠地复位,常日将复位电路中引脚RST保持10ms以上的高电平。
\r\r \r\r图2-10 MCS-51单片机的最小系统电路图
\r\r最小系统是单片机能够正常运行程序的最低条件,在实际运用中,常日须要进行功能扩展,扩展电路在最小系统根本上利用P0~P3端口的普通I/O功能或P3端口的分外功能,只要电路设计和程序编写精确,系统就能正常事情。
\r\r 本章小结\r\r本章首先先容了MCS-51单片机的组成构造及紧张功能部件,详细先容了引脚功能与特性,着重谈论了存储器的构造,特殊是数据存储器的构造和功能,末了先容了MCS-51单片机的时钟电路、复位电路、总线事情时序及最小系统的电路组成。
\r\r 思考题与习题\r\r2.1 简述MCS-51单片机各引脚的名称和浸染。
\r\r2.2 阐述MCS-51 单片机程序存储器的配置,并解释EA引脚的连接电平与访问程序存储器的关系。
\r\r2.3 阐述MCS-51单片机数据存储器的配置,如何差异内部和外部数据存储器?
\r\r2.4 阐述P0、P1、P2、P3端口的功能。
\r\r2.5 在AT89C51单片机中,如果采取6MHz晶振,一个机器周期为______。
\r\r2.6 AT89C51单片机的一个机器周期即是_____个时钟振荡周期。
\r\r2.7 内部RAM中,位地址为40H、88H的位,它们所在字节的字节地址分别为_____和_____。
\r\r2.8 片内字节地址为2AH单元的最低位的位地址是_____,片内字节地址为88H单元的最低位的位地址是_____。
\r\r2.9 阐述MCS-51单片机的寄存器PC和DPTR为何采取16位。
\r\r2.10 为何MCS-51单片机外部程序存储器和数据存储器许可地址重复?
\r\r\r