您好,欢迎访问三七文档
湘潭大学单片机原理及应用编著组单片机原理及应用第五章MCS-51单片机的硬件资源5.1MCS-51的并行接口及其应用5.2MCS-51的中断系统5.3MCS-51的定时器/计数器5.4MCS-51的串行接口及串行通信湘潭大学单片机原理及应用编著组输入/输出接口是CPU外设间信息的桥梁,它可以制成一块单独的大规模集成电路,也可以和CPU集成在同一块芯片上,单片机中就是后一种结构。I/O接口有并行接口和串行接口两种。5.1.1MCS—51内部并行I/O端口8031有四个并行端口,分别命名为P0、P1、P2和P3。这四个并行I/O端口的内部位结构如图51所示,每个端口皆有八位。由图51可见,每个位结构都有一个输出锁存器和一个输入缓冲器。输出锁存器,用于存放需要输出的数据。5.1MCS-51的并行接口及其应用第五章MCS-51单片机的硬件资源湘潭大学单片机原理及应用编著组每个端口的八位输出锁存器构成一个特殊功能寄存器,且冠名与端口相同。输入缓冲器用于对端口引脚上输入数据进行缓冲,因此各引脚上输入的数据必须一直保持到CPU把它读走为止。P0、P1、P2和P3端口的电路形式不同,其功能也不同。下面结合电路结构就其功能加以说明。一、P0口第五章MCS-51单片机的硬件资源在访问外部存储器时,P0口是一个真正的双向数据口,并分时送出地址的8位和送出(接收)相应存储单元的数据。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源图51(a)是P0口的位结构图,它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路。&MUX锁存器DQCPQ读锁存器内部总线写入读引脚地址/数据控制vccP0.x(a)p0口电路逻辑湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源当从P0口输出地址或数据时,控制信号应为高电平1,模拟转换开关(MUX)把地址/数据信息经反相器和下拉场效应管接通,同时与门打开。输出的地址或数据既通过与门去驱动上拉场效应管,又通过反相器去驱动下拉场效应管。例如,若地址/数据信息为“0”,该“0”信号一方面通过与门使上拉场效应管截止,另一方面经反相器使下拉场效应管导通,从而使引脚上输出相应的“0”信号,反之,若地址/数据信息为“1”,将会使上拉场效应管导通而下拉场效应管截止,引脚上将出现相应的“1”信号。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源若P0口作为一般I/O口使用,在CPU向端口输出数据时,对应的输出控制信号应为0,模拟转换开关将把输出级与锁存器Q端接通。同时,因与门输出为0,使上拉场效应管处于截止状态,因此输出级是漏极开路电路。这样,当写脉冲加在触发器时针端CP上时,则与内部总线相连的D端数据取反后就出现在Q端,再经场效应管反相,在P0引脚上出现的数据正好是内部总线的数据。不难看出,P0口在输出地址/数据信息和作为一般I/O口输出数据时,其输出驱动电路的工作状态是有差别的。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源一般P0口的输出级能驱动8个LSTTL输入,但对NMOS输入而言,P0口做地址/数据总线口使用时,不必外加提升电阻。而作一般I/O口使用时,由于输出驱动电路工作于开漏状态,故需外接上拉电阻。当P0口引脚上输入数据,此时上拉FET应一直处于截止状态。引脚上的外部信号即加在下面一个三态缓冲器的输入端,又加在下拉FET的漏极,假定在此之前曾输出锁存过数据0,则FET是导通的,这样引脚上的电位就始终被钳位在0电平,使输入高电平无法读入。因此作为一般I/O口使用时,P0口是一个准双向口,即输入数据时,应先向口写“1”,使两个FET均截止,然后方可作高阻抗输入。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源但在P0口连接外部存储器时,由于访问外部存储器期间,CPU会自动向口0的锁存器写入0FFH,所以,对用户而言,P0口用作地址/数据总线时,则是一个真正的双向口。上面所述为数据由引脚输入的情况,称为“读引脚”操作。但在有些情况下,例如用一根口线去驱动一个晶体管的基极,则向此口线写“1”时,晶体管导通,并把引脚上的电平拉低,这时若从引脚上读取数据,会把此数据错读为0。为了避免错读引脚上电平的可能性,单片机中还提供了另一类所谓“读锁存器”操作。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源这类操作的特点是:先读口,随之可对读入的数据进行修改,然后再写到端口上。例如执行指令ORLP0,A时,则先把P0上的内容读入CPU,然后与A累加器内容按位进行逻辑“或”操作,最后把“或”的结果送回P0口。能使单片机产生这种读-修改-写操作的指令,其目的操作数一般为某I/O口或口的某一位,这些指令是:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOVPX·Y,C,CLRPX·Y和SETBPX·Y等,它们的含义详见指令系统一章的说明。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源综上所述,P0口既可作地址/数据总线口,这时它是真正的双向口,也可作通用I/O口,但只是一个准双向口。一般情况下,P0口已当作地址/数据口使用时,就不能再作通用I/O口使用。P2口的位结构如图5-1(b)所示,它与P0口基本相同,只有输出部分略有不同,在输出FET的漏极接有上拉电阻,这种结构不必外接上拉电阻就可驱动任何MOS输入电路,且能驱动四个LSTTL输入。P2口常用作外部存储器的高八位地址口。当不用作地址口时,P2口亦可作通用I/O口,这时它也是一个准双向I/O口。二、P2口湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源vccP2X地址(b)p2口电路逻辑MUX锁存器DQCPQ读锁存器内部总线写入读引脚控制湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源三、P1口(c)p1口电路逻辑锁存器DQCPQ读锁存器内部总线写入读引脚vccP1XP1口的位结构如图5-1(c)所示,它与P2口基本相同,只是少了一个转换器(MUX)和一个反相器,且为使逻辑上的一致将锁存器的Q与输出FET相连。P1口常用作通用I/O口,它是一个标准的准双向口,即作输入口使用时必须先给锁存器置1。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源四、P3口P3口是一个双功能口,第一功能和P2口一样可作为通用I/O口。P3口工作于第二功能时,各位的定义如下:P3·0RxD(串行输入通道)P3·1TxD(串行输出通道)P3·2INT0(外中断0)P3·3INT1(外中断1)P3·4T0(定时器0外部输入)P3·5T1(定时器1外部输出)P3·6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源&锁存器DQCPQ读锁存器内部总线写入读引脚第二输出功能(d)p3口电路逻辑第二输入功能vccP3.x湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源由图5-1(d)P3口位结构可以看出,实现第一功能作通用I/O输出口时,选择输出功能端应保持高电平,使与非门对锁存器Q端是畅通的。同理,实现第二功能做专用信号输出时,则该位的锁存器应置1,使与非门对选择输出功能端是畅通的。对输入而言,无论该位是作通用输入口还是作第二功能输入口,其输出锁存器和选择输出功能端都应置1,即使FET截止。由于所有口锁存器在上电复位时均置为1,自然满足了上述条件,所以用户不必做任何工作,就可以直接使用P3口的第二功能。至于第一功能,应在确信某一引脚第二功能提供的信号不用时,该引脚才可作I/O线使用,使用方法同与一般准双向口相同。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源5.1.2MCS51内部并行I/O口的应用MCS51四个I/O端口共有三种操作方式:输出数据方式,读端口数据方式和读端口引脚方式。在数据输出方式下,CPU通过一条数据操作指令就可以把输出数据写入P0P3的端口锁存器,然后通过输出驱动器送到端口引脚。因此,凡是端口操作指令都能达到从端口引脚上输出数据的目的,例如如下指令均可在P0口输出数据:MOVP0,A;累加器A中的内容送P0口ANLP0,A;P0口的内容和A中的内容相与后送P0口湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源读端口数据方式是一种仅对端口锁存器中数据进行读入的操作方式,CPU读入的这个数据并非端口引脚的数据。因此,CPU只要用一条传送指令就可把端口锁存器中的数据读入累加器A或内部RAM中来。例如,如下指令可以从P1口输入数据:MOVA,P1;P1锁存器中数据送AMOV20H,P1;P1锁存器数据送内部20H单元读引脚方式可从端口引脚上读入信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁存器置1,以便驱动器中的T2管截止,然后打开输入三态缓冲器,使相应端口引脚上信号输入CPU内部数据总线。因此,在读引脚时必须连续使用两条指令。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源例如读P1口低四位引脚上的信号的程序为:MOVP1,#0FH;使P1口低4位锁存器置1MOVA,P1;读P1口低4位引脚信号I/O端口的应用举例:一、I/O口直接用于输入/输出在I/O口直接用作输入/输出时,既可以把它们看作数据口也可以看作状态口,这由用户根据实际情况决定。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源[例5.1]试编出模拟图5-2(a)中电路的程序。P1.0P1.1P1.3P1.28031FK0K1K2RL(b)8031的接线对电路进行模拟是指模拟它的输出状态如何随输入状态的变化而变化。&&≤FDEG(a)被模拟电路图中,K0和K1用于设置被模拟电路中变量D和E;P1.2作为电路的输出端F,并用一个发光二极管来显示输出;P1.3用来为8031传送一个控制状态。当8031检测到它为低电平时就开始模拟一组变量(D和E)的输入,并通过LED显示输出结果。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源相应程序为:ORG0500HDBIT00HEBIT01HGBIT02HLOOP1:ORLP1,#08H;准备P1.3输入LOOP2:MOVC,P1.3;检测K2状态JCLOOP2;若未准备好(K2断开),则转;LOOP2ORLP1,#03H;若准备好了,则输入K0和K1状态MOVC,P1.0;K0状态送入DMOVD,CMOVC,P1.1;K1状态送入EMOVE,CANLC,D;D与E送G湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源MOVG,CMOVC,E;D或E送CMOVC,DORLC,EANLC,/G;(D∨E)∧(D∧E)送CMOVP1.2,C;输出结果SJMPLOOP1;准备下次模拟END湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源二、I/O口对外部锁存器的接口6Q≥INT0P2.7RDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7G1Q2Q3Q4Q5Q7Q8QE1D2D3D4D5D6D7D8DSTBIN0IN76Q803174LS373输入湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源当输入设备在IN0-IN7上输出数据的同时还使端变为低电平,该低电平一方面使74LS373锁存1D-8D上输入数据,另一方面向8031的INT0上发出中断请求。8031响应该中断请求后,在中断服务程序中也可通过如下指令读取输入数据:MOVDPTR,#7FFFH;DPTR指向74LS373端口MOVXA,@DPTR;输入数据应当注意:8031也可以通过外部锁存器输出数据,但由于8031内部每个I/O端口都带有8位锁存器,因此只有扩展I/O端口时才需要利用外部锁存器来输出数据。湘潭大学单片机原理及应用编著组第五章MCS-51单片机的硬件资源5.2MCS-51中
本文标题:单片机果件
链接地址:https://www.777doc.com/doc-2594921 .html