资源描述
第第1章章单片机硬件系统单片机硬件系统第第1章章单片机硬件系统单片机硬件系统1.1 概概 述述 1.1.1 什么是单片机什么是单片机第1章 单片机硬件系统1.1 概 述 第第1章章单片机硬件系统单片机硬件系统 1.1.2 MCS-51单片机系列单片机系列尽管各类单片机很多,但无论是从世界范围或是从全国范围来看,使用最为广泛的应属MCS-51单片机。基于这一事实,本书以应用最为广泛的MCS-51系列8位单片机(8031、8051、8751等)为研究对象,介绍单片机的硬件结构、工作原理及应用系统的设计。MCS-51单片机系列共有十几种芯片,如表1.1所示。1.1.2 MCS-51单片机系列第第1章章单片机硬件系统单片机硬件系统表表1.1 MCS-51系列单片机分类表系列单片机分类表子系列片内ROM形式片内ROM容量片内RAM容量寻址范围I/O特性中断源无ROMEPROM计数器并行口串行口51子系列8031805187514KB128B264KB216481580C3180C5187C514KB128B264KB216481552子系统8032805287528KB256B264KB316481680C3280C5287C528KB256B264KB3164816表1.1 MCS-51系列单片机分类表子系列片内ROM形第第1章章单片机硬件系统单片机硬件系统表中列出了MCS-51单片机系列的芯片型号,以及它们的技术性能指标,使我们对它们的基本情况有了一个概括的了解。下面我们就在这个表的基础上对MCS-51系列单片机作进一步说明。151子系列和子系列和52子系列子系列MCS-51系列又分为51和52两个子系列,并以芯片型号的最末位数字作为标志。其中,51子系列是基本型,而52子系列则属增强型。52子系列功能增强的具体方面,从表1.1所列内容中可以看出:表中列出了MCS-51单片机系列的芯第第1章章单片机硬件系统单片机硬件系统(1)片内ROM从4KB增加到8KB。(2)片内RAM从128B增加到256B。(3)定时/计数器从2个增加到3个。(4)中断源从5个增加到6个。在52子系列的内部ROM中,以掩膜方式集成有8KBBASIC解释程序,这就是通常所说的8052-BASIC。这意味着单片机已可以使用高级语言。该BASIC与基本BASIC相比,增加了一些控制语句,以满足单片机作为控制机的需要。(1)片内ROM从4 KB增加到8 KB第第1章章单片机硬件系统单片机硬件系统1.2 MCS-51单片机结构和原理单片机结构和原理 1.2.1 MCS-51单片机的内部组成及信号引脚单片机的内部组成及信号引脚MCS-51单片机的典型芯片是8031、8051、8751。8051内部有4KBROM,8751内部有4KBEPROM,8031内部无ROM;除此之外,三者的内部结构及引脚完全相同。因此,以8051为例,说明本系列单片机的内部组成及信号引脚。18051单片机的基本组成单片机的基本组成8051单片机的基本组成请参见图1.4。下面介绍各部分的基本情况。1.2 MCS-51单片机结构和原理 1.第第1章章单片机硬件系统单片机硬件系统1)中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。MCS-51的CPU能处理8位二进制数或代码。2)内部数据存储器(内部RAM)8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。1)中央处理器(CPU)第第1章章单片机硬件系统单片机硬件系统图1.4MCS-51单片机结构框图图1.4 MCS-51 单片机结构框图第第1章章单片机硬件系统单片机硬件系统3)内部程序存储器(内部ROM)8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。4)定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5)并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。3)内部程序存储器(内部ROM)第第1章章单片机硬件系统单片机硬件系统6)串行口MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7)中断控制系统MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。8)时钟电路MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz和12MHz。6)串行口第第1章章单片机硬件系统单片机硬件系统从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。2.MCS-51的信号引脚的信号引脚MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图1.5。1)信号引脚介绍P0.0P0.7:P0口8位双向口线。P1.0P1.7:P1口8位双向口线。P2.0P2.7:P2口8位双向口线。P3.0P3.7:P3口8位双向口线。从上述内容可以看出,MCS-51虽第第1章章单片机硬件系统单片机硬件系统图1.5 MCS-51引脚图图1.5 MCS-51引脚图第第1章章单片机硬件系统单片机硬件系统ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。ALE:地址锁存控制信号。在系统扩第第1章章单片机硬件系统单片机硬件系统RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5V电源。以上是MCS-51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。RST:复位信号。当输入的复位信号延续第第1章章单片机硬件系统单片机硬件系统2)信号引脚的第二功能由于工艺及标准化等原因,芯片的引脚数目是有限制的。例如,MCS-51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。如何解决这个矛盾?“兼职”是惟一可行的办法,即给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。下面介绍一些信号引脚的第二功能。2)信号引脚的第二功能第第1章章单片机硬件系统单片机硬件系统(1)P3口线的第二功能。P3的8条口线都定义有第二功能,详见表1.2。(2)EPROM存储器程序固化所需要的信号。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:编程脉冲:30脚(ALE/)编程电压(25V):31脚(/VPP)(1)P3口线的第二功能。P3的8第第1章章单片机硬件系统单片机硬件系统表表1.2 P3口各引脚与第二功能表口各引脚与第二功能表引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6外部RAM写选通P3.7外部RAM读选通表1.2 P3口各引脚与第二功能表引脚第二功能信号名称P第第1章章单片机硬件系统单片机硬件系统(3)备用电源引入。MCS-51单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。以上把MCS-51单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。(3)备用电源引入。MCS-51单片机的第第1章章单片机硬件系统单片机硬件系统 1.2.2 MCS-51内部数据存储器内部数据存储器MCS-51单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM,首先分析内部RAM。1.内部数据存储器低内部数据存储器低128单元单元8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。图1.6所示为低128单元的配置图。1.2.2 MCS-51内部数据存储器第第1章章单片机硬件系统单片机硬件系统30H7FH数据缓冲区20H2FH位寻址区(00H7FH)18H1FH工作寄存器3区(R7R0)10H17H工作寄存器2区(R7R0)08H0FH工作寄存器1区(R7R0)00H07H工作寄存器0区(R7R0)图1.6片内RAM的配置30H 7FH数据缓冲区20H 2FH位寻址区(00H第第1章章单片机硬件系统单片机硬件系统低128单元是单片机的真正RAM存储器,按其用途划分为寄存器区、位寻址区和用户RAM区三个区域。1)寄存器区8051共有4组寄存器,每组8个寄存单元(各为8),各组都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H1FH单元地址。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。低128单元是单片机的真正RAM存储器,按其第第1章章单片机硬件系统单片机硬件系统通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。2)位寻址区内部RAM的20H2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。表1.3为位寻址区的位地址。通用寄存器为CPU提供了就近存储数据的便利,第第1章章单片机硬件系统单片机硬件系统单元地址MSB位地址LSB2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800表1.3 片内RAM位寻址区的位地址单元地址MSB 位地址 第第1章章单片机硬件系统单片机硬件系统3)用户RAM区在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。2.内部数据存储器高内部数据存储器高128单元单元内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80HFFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器。3)用户RAM区第第1章章单片机硬件系统单片机硬件系统1)专用寄存器(SFR)简介8051共有21个专用寄存器,现把其中部分寄存器简单介绍如下:(1)程序计数器(PCProgramCounter)。在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。1)专用寄存器(SFR)简介第第1章章单片机硬件系统单片机硬件系统(2)累加器(ACCAccumulator)。累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。(3)B寄存器。B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。(2)累加器(ACCAccumulato第第1章章单片机硬件系统单片机硬件系统(4)程序状态字(PSWProgramStatusWord)。程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW有些位的状态,进行程序转移。PSW的各位定义如下:(4)程序状态字(PSWProg第第1章章单片机硬件系统单片机硬件系统PSW位 地址D7HD6HD5HD4HD3HD2HD1HD0H字节地址D0HCY ACF0RS1RS0OVF1P除PSW.1位保留未用外,其余各位的定义及使用如下:CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H第第1章章单片机硬件系统单片机硬件系统AC(PSW.6)辅助进位标志位。在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。在BCD码调整中也要用到AC位状态。F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。RS1和RS0(PSW.4,PSW.3)寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组,其对应关系如下:AC(PSW.6)辅助进位标志位。在进行第第1章章单片机硬件系统单片机硬件系统RS1RS0寄存器组片内RAM地址00第0组00H07H01第1组08H0FH10第2组10H17H11第3组18H1FHRS1 RS0寄存器组片内RAM地址 0 0第第第1章章单片机硬件系统单片机硬件系统这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1RS0=00。OV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中,否则,OV=0,表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。这两个选择位的状态是由软件设置的,被选中的寄第第1章章单片机硬件系统单片机硬件系统P(PSW.0)奇偶标志位。表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。(5)数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:DPHDPTR高位字节DPLDPTR低位字节 P(PSW.0)奇偶标志位。表明累加器第第1章章单片机硬件系统单片机硬件系统DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。(6)堆栈指针(SPStackPointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13区,如程序要用到这些区,最好把SP值改为1FH或更大的值。DPTR通常在访问外部数据存储器时作地址指第第1章章单片机硬件系统单片机硬件系统一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值,因此堆栈位置是浮动的。此处,只集中讲述了6个专用寄存器,其余的专用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)将在以后章节中陆续介绍。2)专用寄存器中的字节寻址和位地址MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。下面把各寄存器的字节地址及位地址一并列于表1.4中。一般在内部RAM的30H7FH单元中开辟堆第第1章章单片机硬件系统单片机硬件系统表1.4 MCS-51专用寄存器地址表SFRMSB位地址位地址/位定义位定义LSB字节地址字节地址BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HCYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8H/PSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0表1.4 MCS-51专用寄存器地址表SFRMSB 第第1章章单片机硬件系统单片机硬件系统续表(续表(2)IEAFAEADACABAAA9A8A8HEA/ESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SBUF(99H)SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TH1(8DH)续表(2)IEAF AE AD AC AB AA A9 A第第1章章单片机硬件系统单片机硬件系统续表(3)TH0(8CH)TL1(8BH)TL0(8AH)TMODGATEC/M1M0GATEC/M1M0(89H)TCON8F8E8D8C8B8A898888HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMOD/(87H)DPH(83H)DPL(82H)SP(81H)P0878685848382818080HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0续表(3)TH0(8CH)TL1第第1章章单片机硬件系统单片机硬件系统对专用寄存器的字节寻址问题作如下几点说明:(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。对专用寄存器的字节寻址问题作如下几点说明:第第1章章单片机硬件系统单片机硬件系统表1.4中,凡字节地址不带括号的寄存器都是可进行位寻址的寄存器,带括号的是不可位寻址的寄存器。全部专用寄存器可寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址区的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。表1.4中,凡字节地址不带括号的寄第第1章章单片机硬件系统单片机硬件系统 1.2.3 MCS-51内部程序存储器内部程序存储器MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。MCS-51的片外最多能扩展64KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H0FFFH地址范围内(即前4KB地址)是执行片内ROM中的程序,当PC在1000HFFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。1.2.3 MCS-51内部程序存储器第第1章章单片机硬件系统单片机硬件系统MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中:0003H000AH外部中断0中断地址区000BH0012H定时/计数器0中断地址区0013H001AH外部中断1中断地址区001BH0022H定时/计数器1中断地址区0023H002AH串行中断地址区 MCS-51的程序存储器中有些单元具有特殊功第第1章章单片机硬件系统单片机硬件系统中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。中断响应后,按中断种类,自动转到各中第第1章章单片机硬件系统单片机硬件系统1.3 并行输入并行输入/输出口电路结构输出口电路结构单片机芯片内还有一项主要内容就是并行I/O口。MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。MCS-51单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍之。1.3 并行输入/输出口电路结构 单片机芯第第1章章单片机硬件系统单片机硬件系统 1.3.1 P0口口P0口的口线逻辑电路如图1.7所示。图1.7P0口某位结构 1.3.1 P0口图1.7 P0口某位结构第第1章章单片机硬件系统单片机硬件系统由图可见,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。考虑到P0口既可以作为通用的I/O口进行数据的输入/输出,也可以作为单片机系统的地址/数据线使用,为此在P0口的电路中有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,将输出驱动电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通锁存器Q端的输出通路。由图可见,电路中包含有一个数据输第第1章章单片机硬件系统单片机硬件系统读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚的信号是一致的,这样安排的目的是为了适应对口进行“读修改写”操作指令的需要。例如,“ANLP0,A”就是属于这类指令,执行时先读入P0口锁存器中的数据,然后与A的内容进行逻辑与,再把结果送回P0口。对于这类“读修改写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口的负载恰是一个晶体管的基极,导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”。但若从锁存器Q端读,就能避免这样的错误,得到正确的数据。读端口是指通过上面的缓冲器读锁第第1章章单片机硬件系统单片机硬件系统但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用,这要比作一般I/O口应用简单。当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。这时的输出驱动电路由于上、下两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。而当输入数据时,数据信号则直接从引脚通过输入缓冲器进入内部总线。但要注意,当P0口进行一般的I/O第第1章章单片机硬件系统单片机硬件系统 1.3.2 P1口口P1口的口线逻辑电路如图1.8所示。因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。1.3.2 P1口第第1章章单片机硬件系统单片机硬件系统图1.8P1口某位结构图1.8 P1口某位结构第第1章章单片机硬件系统单片机硬件系统 1.3.3 P2口口P2口的口线逻辑电路如图1.9所示。图1.9P2口某位结构图 1.3.3 P2口图1.9 P2口某位结构图第第1章章单片机硬件系统单片机硬件系统P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用,此时多路转接电路开关应倒向相反方向。P2口电路比P1口电路多了一个多路第第1章章单片机硬件系统单片机硬件系统 1.3.4 P3口口P3口的口线逻辑电路如图1.10所示。图1.10P3口某位结构 1.3.4 P3口图1.10 P3口某位第第1章章单片机硬件系统单片机硬件系统P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。P3口的特点在于,为适应引脚信号第第第1章章单片机硬件系统单片机硬件系统对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。对于第二功能为输入的信号引脚,在口第第1章章单片机硬件系统单片机硬件系统1.4 时钟电路与复位电路时钟电路与复位电路 1.4.1 时钟电路与时序时钟电路与时序 1.时钟信号的产生时钟信号的产生在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图1.11所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。1.4 时钟电路与复位电路 1.4.1 第第1章章单片机硬件系统单片机硬件系统一般地,电容C1和C2取30pF左右,晶体的振荡频率范围是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。MCS-51在通常应用情况下,使用振荡频率为6MHz或12MHz。图1.11时钟振荡电路 一般地,电容C1和C2取30 pF左右,晶体第第1章章单片机硬件系统单片机硬件系统 2.引入外部脉冲信号引入外部脉冲信号在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图1.12所示。3.时序时序时序是用定时单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。2.引入外部脉冲信号第第1章章单片机硬件系统单片机硬件系统图1.12外部时钟源接法图1.12 外部时钟源接法第第1章章单片机硬件系统单片机硬件系统1)节拍与状态把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。这样,一个状态就包含两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。2)机器周期机器周期MCS-51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。1)节拍与状态第第1章章单片机硬件系统单片机硬件系统当振荡脉冲频率为12MHz时,一个机器周期为1s;当振荡脉冲频率为6MHz时,一个机器周期为2s。3)指令周期指令周期是最大的时序定时单位,执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令,等等 当振荡脉冲频率为12 MHz时,一个机器周期第第1章章单片机硬件系统单片机硬件系统指令的运算速度与指令所包含的机器周期有关,机器周期数越少的指令执行速度越快。MCS-51单片机通常可以分为单周期指令、双周期指令和四周期指令等三种。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。MCS-51的取指/执行时序如图1.13所示。指令的运算速度与指令所包含的机器周期有关,机第第1章章单片机硬件系统单片机硬件系统图1.13MCS-51单片机的取指/执行时序(a)单字节单周期指令;(b)双字节单周期指令;(c)单字节双周期指令图1.13 MCS-51单片机的取指/执行时序(a)单第第1章章单片机硬件系统单片机硬件系统由图1.13可见,ALE引脚上出现的信号是周期性的,在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。按照指令字节数和机器周期数,8051的111条指令可分为6类,分别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令,可以参见附录二。由图1.13可见,ALE引脚上出现第第1章章单片机硬件系统单片机硬件系统图1.13(a),(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。图1.13(c)给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。图1.13(a),(b)所示分别给第第1章章单片机硬件系统单片机硬件系统 1.4.2 单片机的复位电路单片机的复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。1.4.2 单片机的复位电路第第1章章单片机硬件系统单片机硬件系统单片机复位的条件是:必须使RST/VPD或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图1.14(a),(b)所示。图1.14(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。单片机复位的条件是:必须使RST/V第第1章章单片机硬件系统单片机硬件系统图1.14单片机常见的复位电路(a)上电复位电路;(b)按键复位电路图1.14 单片机常见的复位电路(a)上电复位电路;(第第1章章单片机硬件系统单片机硬件系统如下:图1.14(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图1.14(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。附录中的实训系统就是采用该电路。单片机复位期间不产生ALE和信号,即ALE=1和=1。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态 如下:图1.14(b)为按键复位电第第1章章单片机硬件系统单片机硬件系统PC:0000H TMOD:00HACC:00HTCON:00HB:00H TH0:00HPSW:00HTL0:00HSP:07HTH1:00HDPTR:0000H TL1:00HP0P3:FFHSCON:00HIP:*00000BSBUF:不定IE:0*00000BPCON:0*0000其中,*表示无关位。请注意:PC:0000H 第第1章章单片机硬件系统单片机硬件系统(1)复位后PC值为0000H,表明复位后程序从0000H开始执行,这一点在实训中已介绍。(2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。(3)P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。(1)复位后PC值为0000H,表明复位后第第1章章单片机硬件系统单片机硬件系统1.5 单片机的工作过程单片机的工作过程单片机的工作过程实质上是执行用户编制程序的过程,一般程序的机器码都已固化到存储器中,例如实训1中的步骤2),因此开机复位后,就可以执行指令。执行指令又是取指令和执行指令的周而复始的过程。假设机器码74H、E0H已存在0000H开始的单元中,则此表示把E0H这个值送入A累加器。下面我们来说明单片机的工作过程。接通电源开机后,PC=0000H,取指令过程如下:1.5 单片机的工作过程 单片机的工作过程第第1章章单片机硬件系统单片机硬件系统(1)PC中的0000H送到片内的地址寄存器;(2)PC的内容自动加1变为0001H,指向下一个指令字(3)地址寄存器中的内容0000H通过地址总线送到存储器,经存储器中的地址译码选中0000H单元;(4)CPU通过控制总线发出读命令;(5)被选中单元的内容74H送内部数据总线上,该内容过内部数据总线送到单片机内部的指令寄存器。到此,取指令过程结束,进入执行指令过程。执行指令的过程:(1)PC中的0000H 送到片内的地址寄第第1章章单片机硬件系统单片机硬件系统(1)指令寄存器中的内容经指令译码器译码后,说明这条指令是取数命令,即把一个立即数送A中;(2)PC的内容为0001H,送地址寄存器,译码后选中0001H单元,同时PC的内容自动加1变为0002H;(3)CPU同样通过控制总线发出读命令;(4)0001H单元的内容E0H读出经内部数据总线送至A。至此,本指令执行结束。PC=0002H,机器又进入下一条指令的取指令过程。机器一直重复上述过程直到程序中的所有指令执行完毕,这就是单片机的基本工作过程。(1)指令寄存器中的内容经指令译码器译码后,
展开阅读全文