1、51 单片机管脚说明发布时间:2006 年 10 月 15 日 点击次数:12851 来源: 作者:当我们拿到一块单片机芯片时,看到这么多的“大腿”,他们都有干什么用的?了解了 51 家族的渊源,现在我们就去了解一下它们的“腿”吧。大家可得学好了,这可是至关重要的哟。如果连手跟腿都分不清,要学好单片机那就有如凭空造屋了。 这一章节相当管用,希望大家能用心学好,如果这一章节学不好,以后学习会有很大的阻力。(我们的教材都是以 51 系列的单片机来进行讲解的)。引脚功能: MCS-51 是标准的 40 引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图: l P0.0P0.7 P0 口 8 位
2、双向口线(在引脚的 3932 号端子)。 l P1.0P1.7 P1 口 8 位双向口线(在引脚的 18 号端子)。 l P2.0P2.7 P2 口 8 位双向口线(在引脚的 2128 号端子)。 l P3.0P3.7 P2 口 8 位双向口线(在引脚的 1017 号端子)。 这 4 个 I/O 口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。 P0 口有三个功能: 1、外部扩展存储器时,当做数据总线(如图 1 中的 D0D7 为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图 1
3、中的 A0A7 为地址总线接口) 3、不扩展时,可做一般的 I/O 使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1 口只做 I/O 口使用:其内部有上拉电阻。 P2 口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般 I/O 口使用,其内部有上拉电阻; P3 口有两个功能: 除了作为 I/O 使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部 EPROM 的单片机芯片(例如 8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30 脚(ALE/PR
4、OG) 编程电压(25V):31 脚(EA/Vpp) 接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第 9 脚(即 RST/VPD)引入,以保护内部 RAM 中的信息不会丢失。 (注:这些引脚的功能应用,除 9 脚的第二功能外,在“新动力 2004 版”学习套件中都有应用到。) 在介绍这四个 I/O 口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如
5、果 P0 口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。ALE 地址锁存控制信号:在系统扩展时,ALE 用于控制把 P0 口的输出低 8 位地址送锁存器锁存起来,以实现低位地址和数据的隔离。参见图 2(8051 扩展 2KB EEPROM 电路,在图中 ALE与 4LS373 锁存器的 G 相连接,当 CPU 对外部进行存取时,用以锁住地址的低位地址,即 P0 口输出。 由于 ALE 是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE 脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。 PSEN 外部程序存储器读选通信号:在读外部
6、ROM 时 PSEN 低电平有效,以实现外部 ROM 单元的读操作。 1、内部 ROM 读取时,PSEN 不动作; 2、外部 ROM 读取时,在每个机器周期会动作两次; 3、外部 RAM 读取时,两个 PSEN 脉冲被跳过不会输出; 4、外接 ROM 时,与 ROM 的 OE 脚相接。 参见图 2(8051 扩展 2KB EEPROM 电路,在图中 PSEN 与扩展 ROM 的 OE 脚相接)EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU 读取内部程序存储器(ROM) 扩展外部 ROM:当读取内部程序存储器超过 0FFFH(8051)1FFFH(8052)时自动读取外部 ROM
7、。 2、接低电平时:CPU 读取外部程序存储器(ROM)。 3、8751 烧写内部 EPROM 时,利用此脚输入 21V 的烧写电压。RST 复位信号:当输入的信号连续 2 个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。 XTAL1 和 XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V 输入 VSS:GND 接地。 各端口工作原理讲解 并行端口P0 端口总线 IO 端口,双向,三态,数据地址分时复用,该端口除用于数据的输入输出外,在 8031 单片机外接程序存储器时,还分时地输出输
8、入地址指令。由 Po 端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分。P0 端口 8 位中的一位结构图见下图: 由上图可见,P0 端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电路构成。在输出状态下,当切换开关 MUX 向下时,从内部总线来的数据经锁存器反相和场效应管 T2 反相,输出到端口引脚线上。此时,场效应管 T1 关断,因而这种输出方式应为外接上拉电阻的漏极开路式。当切换开关 MUX 向上时,一位地址数据信号分时地输出到端口线上。此外,由 T1、T2 的通断组合,形成高电平、低电平与高阻浮动三态的输出。在输入状态下,从锁存器和从引脚上读来的信号一般是一致
9、的,但也有例外。例如,当从内部总线输出低电平后,锁存器 Q0,Q1,场效应管 T2 开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器 Q1,Q0,场效应管T2 截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此,8031 单片机在对端口 P0 一 P3 的输入操作上,有如下约定:为此,8031 单片机在对端口 P0一 P3 的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。读-
10、修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。下面是几条读-修改-写指令的例子。 这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。P0 端口是 8031 单片机的总线口,分时出现数据 D7 一 D0、低 8 位地址 A7 一 AO,以及三态,用来接口存储器、外部电路与外部设备。P0 端口是使用最广泛的 IO 端口。P1 端口:通用 I0 端口,准双向静态口。输出的信息有锁存,输入有读引脚和读锁存器之分。P1 端口的一位结构见下图. 由图可见,P1
11、端口与 P0 端口的主要差别在于,P1 端口用内部上拉电阻 R代替了 P0 端口的场效应管 T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1 端口是具有输出锁存的静态口。由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入 l。具有这种操作特点的输入输出端口,称为准双向 IO 口。8031 单片机的 P1、P2、P3 都是准双向口。P0 端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入 l 后再作读操作。单片机复位后,各个端口已自
12、动地被写入了 1,此时,可直接作输入操作。如果在应用端口的过程中,已向 P1 一 P3 端口线输出过 0,则再要输入时,必须先写 1 后再读引脚,才能得到正确的信息。此外,随输入指令的不同,H 端口也有读锁存器与读引脚之分。Pl 端口是 803l 单片机中唯一仅有的单功能 IO 端口,并且没有特定的专用功能,输出信号锁存在引脚上,故又称为通用静态口。P2 端口:P2 端口的一位结构见下图:由图可见,P2 端口在片内既有上拉电阻,又有切换开关 MUX,所以 P2 端口在功能上兼有 P0 端口和 P1 端口的特点。这主要表现在输出功能上,当切换开关 MUX 向左时,从内部总线输出的一位数据经反相器
13、和场效应管反相后,输出在端口引脚线上;当 MUX 向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。由于 8031 单片机必须外接程序存储器才能构成应用电路,而 P2 端口就是用来周期性地输出从外存中取指令的地址(高 8 位地址),因此,P2 端口的切换开关 MUX 总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此 P2 端口是动态的 IO 端口。输出数据虽被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不过是外部 RAM 的高 8 位地址。在输入功能方面,P2 端口与 P0 和 H 端口相同,有读引脚和读锁存器之分
14、,并且 P2 端口也是准双向口。可见,P2 端口的主要特点包括:不能输出静态的数据;自身输出外部程序存储器的高 8 位地址;执行 MOVX 指令时,还输出外部 RAM 的高位地址,故称 P2 端口为动态地址端口。P3 端口:双功能静态 IO 口 P3 端口的一位结构见下图。由上图可见,P3 端口和 Pl 端口的结构相似,区别仅在于 P3 端口的各端口线有两种功能选择。当处于第一功能时,第二输出功能线为 1,此时,内部总线信号经锁存器和场效应管输入输出,其作用与 P1 端口作用相同,也是静态准双向 IO 端口。当处于第二功能时,锁存器输出 1,通过第二输出功能线输出特定的内含信号,在输入方面,即
15、可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号锁存并且有双重功能,故 P3 端口为静态双功能端口。P3 口的特殊功能(即第二功能):使 P3 端品各线处于第二功能的条件是:1串行 I/O 处于运行状态(RXD,TXD);2打开了处部中断(INT0,INT1);3定时器/计数器处于外部计数状态(T0,T1)4执行读写外部 RAM 的指令(RD,WR)在应用中,如不设定 P3 端口各位的第二功能(WR,RD 信叼的产生不用设置),则 P3 端口线自动处于第一功能状态,也就是静态 IO 端口的工作状态。在更多的场合是根据应用的需要,把几条端口线设置为第二功
16、能,而另外几条端口线处于第一功能运行状态。在这种情况下,不宜对 P3 端口作字节操作,需采用位操作的形式。端口的负载能力和输入输出操作:P0 端口能驱动 8 个 LSTTL 负载。如需增加负载能力,可在 P0 总线上增加总线驱动器。P1,P2,P3 端口各能驱动 4 个 LSTTL 负载。前已述及,由于 P0-P3 端口已映射成特殊功能寄存器中的 P0 一 P3 端口寄存器,所以对这些端口寄存器的读写就实现了信息从相应端口的输入输出。例如:MOV A, P1 ;把 Pl 端口线上的信息输入到 AMoV P1, A ;把 A 的内容由 P1 端口输出MOV P3, #0FFH ;使 P3 端口线
17、各位置 l 串行端口:MCS-51 系列单片机片内有一个串行 IO 端口,通过引脚 RXD(P30)和 TXD(P31)可与外设电路进行全双工的串行异步通信。1串行端口的基本特点8031 单片机的串行端口有 4 种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式 0 主要用于外接移位寄存器,以扩展单片机的 IO 电路;方式 1 多用于双机之间或与外设电路的通信;方式 2,3 除有方式 l 的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断
18、标志等。串行端口有一个数据寄存器 SBUF(在特殊功能寄存器中的字节地址为 99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向阳 UF 写入数据就启动了发送过程;读 SBUf 就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器 Tl 的定时溢出时间确定,使用十分方便灵活。2串行端口的工作方式方式 08 位移位寄存器输入输出方式。多用于外接移位寄存器以扩展 IO 端口。波特率固定为 fosc/12。其中,fosc 为时钟频率。在方式 0 中,串行端口作为输出时,只要向串行缓冲器 SBUF 写入一字节数据后,串
19、行端口就把此 8 位数据以等的波特率,从 RXD 引脚逐位输出(从低位到高位);此时,TXD 输出频率为fosc/12 的同步移位脉冲。数据发送前,仅管不使用中断,中断标志 TI 还必须清零,8 位数据发送完后,TI 自动置 1。如要再发送,必须用软件将 TI 清零。串行端口作为输入时,RXD 为数据输入端,TXD 仍为同步信号输出端,输出频率为 fosc/12 的同步移位脉冲,使外部数据逐位移入 RxD。当接收到 8 位数据(一帧)后,中断标志 RI 自动置。如果再接收,必须用软件先将 RI 清零。串行方式 0 发送和接收的时序过程见下图。方式 1 10 位异步通信方式。其中,1 个起始位(
20、0),8 个数据位(由低位到高位)和 1 个停止位(1)。波特率由定时器 T1 的溢出率和 SMOD 位的状态确定。一条写 SBUF 指令就可启动数据发送过程。在发送移位时钟(由波特率确定)的同步下,从 TxD 先送出起始位,然后是 8 位数据位,最后是停止位。这样的一帧 10 位数据发送完后,中断标志TI 置位。在允许接收的条件下(REN1),当 RXD 出现由 1 到 O 的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程。当 8 位数据接收完,并检测到高电乎停止位后,即把接收到的 8 位数据装入 SBUF,置位 RI,一帧数据的接收过程就完成了。方式 1 的数据传送
21、波特率可以编程设置,使用范围宽,其计算式为:波特率2SMOD/32(定时器 T1 的溢出率)其中,SMOD 是控制寄存器 PCON 中的一位程控位,其取值有 0 和 l 两种状态。显然,当 SMOD0 时,波特率1/32(定时器 Tl 溢出率),而当 SMOD1 时,波特率1/16(定时器 T1 溢出率)。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数。波特率的算法,以及要求一定波特率时定时器定时初值的求法,后面将详细讨论。 串行方式 1 的发送和接收过程的时序见下图。方式 2,311 位异步通信方式。其中,1 个起始位(0),8 个数据位(由低位到高位),1 个附加的第 9 位和 1 个
22、停止住(1)。方式 2 和方式 3 除波特率不同外,其它性能完全相同。方式 2,3 的发送、接收时序见下图。由图可见,方式 2 和方式 3 与方式 l 的操作过程基本相同,主要差别在于方式 2,3 有第 9 位数据。发送时,发送机的这第 9 位数据来自该机 SCON 中的 TB8,而接收机将接收到的这第 9 位数据送入本机 SCON 中的 RB8。这个第 9 位数据通常用作数据的奇偶检验位,或在多机通信中作为地址数据的特征位。方式 2 和方式 3 的波特率计算式如下:方式 2 的波特率2SMOD/64fosc方式 3 的波特率2SMOD/32定时器 T1 的溢出率由此可见,在晶振时钟频率一定的条件下,方式 2 只有两种波特率,而方式 3 可通过编程设置成多种波特率,这正是这两种方式的差别所在。3串行端口的控制寄存器串行端口共有 2 个控制寄存器 SCON 和 PCON,用以设置串行端口的工作方式、接收发送的运行状态、接收发送数据的特征、波特率的大小,以及作为运行的中断标志等。在这些引脚中,“新动力 2004 版”学习套件都有这些实验功能,并有相应的例程,配套的光盘中还有试验板的原理图。我在后面的章节中也会按照“新动力 2004 版”的实验功能一步一步的深入讲解下去。