当前位置:首页 > 单片机 > 单片机
[导读]MCS-51单片机4个并行I/O端口引脚的内部结构如图2-10所示,每个端口有8个相互独立且内部结构完全相同的引脚。图2-10中的字母X代表引脚序号,是0~7的整数。接下来将分别介绍P0、P1、P2和P3口的引脚特性。

MCS-51单片机4个并行I/O端口引脚的内部结构如图2-10所示,每个端口有8个相互独立且内部结构完全相同的引脚。图2-10中的字母X代表引脚序号,是0~7的整数。接下来将分别介绍P0、P1、P2和P3口的引脚特性。

图2-10 MCS-51单片机4个并行口的引脚电路结构

a)P0口的引脚结构b)P1口的引脚结构c)P2口的引脚结构d)P3口的引脚结构

2.4.1 P0口的引脚特性

P0口的字节地址是80H,可以按位寻址,引脚P0.1~P0.7的位地址为80H~87H。如图2-10a所示,P0口每个引脚电路均由锁存器、三态缓冲器(三态门1和三态门2)、多路选择器MUX、“与”门、“非”门和场效应晶体管(VF1和VF2)构成。P0口既可以作普通I/O口(GeneralPurpose I/O Port,GPIO)使用,也可作为地址/数据总线分时复用。

1.P0口作为普通I/O口

P0口作为普通I/O口时,“控制”信号必须为低电平。“控制”信号为0,一方面使得栅极连接至“与”门输出端的场效应晶体管VF1截止;另一方面使得多路选择器MUX将锁存器反向输出端Q与场效应晶体管VF2的栅极相连。

(1)输出功能

P0口引脚输出数据0时,CPU向内部总线写低电平,使锁存器的Q端和Q端分别为0和1;Q端的1使得场效应晶体管VF2导通,从而使P0.X引脚接地、输出低电平。P0口输出数据1时,CPU向内部总线写高电平,使锁存器的Q端和Q端分别为1和0;Q端的0使得场效应晶体管VF2截止,同时由于VF1也截止,所以P0.X引脚为高阻态,因此为了使P0.X引脚输出高电平必须在该引脚外接上拉电阻,即:使该引脚通过上拉电阻连接至电源Vcc。

(2)输入功能

从P0口引脚读取数据时,必须先向该引脚的锁存器写1,使场效应晶体管VF2截止,使P0.X引脚处于高阻态,否则将无法正确读取引脚信号。因为,如果恰好在读引脚信号之前,刚刚向该引脚的锁存器写过低电平,则VF2导通,使得P0.X引脚接地,无论P0.X引脚外接信号电平是高电平还是低电平,都将被当作低电平读取。

因为,在读P0口引脚信号之前,必须先向该引脚写1,所以,P0口不是真正的双向I/O端口,而被称为准双向I/O端口。

P0口的读操作有两种,一种是通过缓冲器2“读引脚”,另一种是通过缓冲器1“读锁存器”。当单片机执行“读-修改-写”这类指令时,将产生“读锁存器”操作,否则将直接“读引脚”。下面将通过实际例子,解释“读-修改-写”的含义。

指令“ANL P0,A”就是一条典型的“读-修改-写”P0口的指令。该指令执行时,单片机首先发出“读锁存器”信号,读取P0口的锁存器,然后将读取的数据与累加器A中的数据进行“与”运算,之后将运算结果写入P0口锁存器,并最终送到P0口的引脚上。在“读-修改-写”过程中,读取锁存器而非引脚的目的是,避免之前输出到引脚的数据被外部操作改变而影响处理结果。

指令“MOV A,P0”不是“读-修改-写”指令,该指令执行时发出“读引脚”信号,直接将P0口的引脚状态通过缓冲器2送入累加器A。

2.P0口地址/数据分时复用

单片机访问片外RAM、片外ROM和片外输入/输出(I/O)接口时,需要传输地址和数据。此时,P0口和P2口作为地址总线,分别传送地址的低8位和高8位;另外,P0口还分时复用为数据总线,用于数据传输。

(1)输出地址/数据功能

P0口输出地址/数据时,“控制”信号必须为高电平。如图2-10a所示,当“控制”信号为1时,被“非”门取反的“地址/数据”信号经多路选择器MUX与VF2的栅极相连;此时VF1栅极的电平状态完全由“地址/数据”信号决定。

若输出“地址/数据”为1,则VF2截止、VF1导通,从而使P0.X输出高电平;反之,若输出的“地址/数据”为0,则VF2导通,VF1截止,使P0.X为低电平。

需要强调的是,作为地址总线时,P0是单向引脚,只能输出。另外,在地址/数据分时复用模式下,P0口输出高电平时,不需要外接上拉电阻。

(2)输入数据功能

在地址/数据分时复用模式下,作数据输入口时,引脚内的“控制”信号为低电平,使VF1截止、锁存器的Q端与VF2的栅极相连。在读取数据之前,CPU会自动向P0口的锁存器写入0FFH,以使VF2截止,P0.X引脚处于高阻态。同时,来自于片外数据存储器、程序存储器或I/O接口的数据,通过缓冲器2读入内部总线。

可见,在地址/数据分时复用时,P0口输入数据前CPU自动向锁存器写高电平使VF2截止,并且输出高电平“地址/数据”时也不需要外接上拉电阻。因此,此时的P0口才是真正的双向I/O口。

P1口的引脚特性

P1口的字节地址是90H,可以按位寻址,引脚P1.1~P1.7的位地址为90H~97H。P1口电路由锁存器、三态缓冲器1和2、场效应晶体管VF和内部上拉电阻组成,如图2-10b所示。P1口只能作为普通I/O口使用,并且是准双向I/O口。

1.输出功能

在P1口输出低电平时,CPU通过内部总线向锁存器写低电平,锁存器Q端为高电平,与Q端相连的场效应晶体管VF导通,从而使P1口引脚接地、为低电平。输出高电平时,CPU向P1锁存器写高电平,锁存器Q端为低电平,使得VF截止、处于高阻态,因为P1口通过内部上拉电阻与电源相连,所以输出高电平。

2.输入功能

与作为“普通I/O口”的P0引脚相似,P1.X引脚作为输入引脚时,也需要预先通过指令向P1.X引脚写高电平,使场效应晶体管VF截止;然后,再执行读取指令,令“读引脚”信号为高电平,P1.X引脚的电平信号通过三态缓冲器2进入内部总线。

因为,读P1口引脚之前需要预先通过指令向引脚锁存器写高电平,所以P1口不是真正的双向I/O口,而是准双向I/O口。

P2口的引脚特性

P2口的引脚电路结构如图2-10c所示,由锁存器、三态缓冲器1和2、多路选择器MUX、“非”门、场效应晶体管VF和内部上拉电阻组成。P2口可以作为普通I/O口使用,也可以在扩展外部数据存储器、程序存储器或I/O接口时,作为地址总线传输高8位地址。

1.P2口作为普通I/O口

P2口作普通I/O口时,“控制”信号必须为低电平,使得多路选择器MUX切换至锁存器的Q端。

(1)输出功能

输出低电平时,通过内部总线向锁存器写低电平,锁存器Q端的低电平通过MUX后被“非”门取反,取反后的高电平使VF导通,进而使P2.X引脚接地并输出低电平。输出高电平时,向锁存器写高电平,锁存器Q端的高电平经MUX过后被“非”门取反,并使VF截止,从而使经内部上拉电阻与电源相连的P2.X引脚输出高电平。

(2)输入功能

与P0口和P1口类似,P2口作为普通I/O口输入端时,首先,需要通过指令向锁存器写入1,使场效应晶体管VF截止;然后,执行读指令,CPU使“读引脚”信号为高电平,打开三态缓冲器2,使P2.X引脚信号进入内部总线。

2.P2口作为地址总线

P2口作为地址总线时,“控制”信号必须为高电平,使多路选择器MUX切换到“地址”信号端。作为地址总线,P2口只能输出,不能输入。当输出地址时,若地址是1,则“地址”信号端为高电平,该高电平被“非”门取反后成为低电平,从而使VF截止,P2.X引脚经内部上拉电阻与Vcc相连,输出高电平;若地址是0,则“地址”信号端为低电平,使得VF导通,从而使P2.X引脚接地,输出低电平。

P3口的引脚特性

P3口的引脚电路结构如图2-10d所示,由锁存器、三态缓冲器1和2、“与非”门、场效应晶体管VF和内部上拉电阻组成。P3口是准双向I/O口,除了可以作为普通I/O口使用,还有第二功能。

1.P3口作为普通I/O口

(1)输出功能

P3口作为普通I/O口进行输出时,“第二输出功能”信号必须为1,锁存器Q端被“与非”门取反后,连接至场效应晶体管VF的栅极。若输出1,则1经内部总线写入锁存器,锁存器Q端输出的高电平经“与非”门取反后,使得VF截止,进而使经过内部上拉电阻连接至Vcc的P3.X引脚输出高电平;若输出0,则0写入锁存器后,经“与非”门取反,使得场效应晶体管VF导通,从而使P3.X引脚接地、输出低电平。

(2)输入功能

P3口作为普通I/O口进行输入时,首先,必须通过指令向P3.X锁存器写1,使锁存器Q端为高电平,“与非”门输出的低电平使VF截止,在内部上拉电阻作用下,P3.X引脚处于高电平状态;然后,执行指令读P3.X引脚,CPU使“读引脚”信号为高电平,P3.X引脚信号先后经过缓冲3和2进入内部总线。

2.P3口作为第二功能

(1)输出功能

在第二功能输出状态下,CPU会自动向P3.X的锁存器写1,使Q端为高电平,此时“与非”门对于“第二输出功能”信号来说相当于一个非门。而第二功能信号,如RD、WR和TXD信号等,将从P3.X引脚输出。若“第二输出功能”信号为高电平,则“与非”门输出为低电平,使VF截止,使得P3.X经上拉电阻接至Vcc,从而输出高电平;反之,则“与非”门输出高电平,使VF导通,P3.X引脚接地、输出低电平。

(2)输入功能

在第二功能输入时,CPU会自动向P3.X的锁存器写1,使Q端为高电平,同时令“第二输出功能”信号为高电平,使得“与非”门输出为低电平,将VF截止。此时,读取的P3.X引脚信号将通过缓冲器3,并由“第二输入功能”线进入单片机内部的功能模块,如定时/计数器模块、串口模块和外部中断模块等。因为,第二功能的输入信号仅与单片机内部功能模块的硬件电路有关,与CPU无关,所以不会通过三态缓冲器2进入内部总线。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对工业以太网的认识,本文将对工业以太网的原理、工业以太网的关键技术以及工业以太网要解决的问题予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网网络优势、工业以太网和IOLINK的区别予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网的优势、工业以太网缺点、工业以太网的维护予以介绍。

关键字:

Apr. 23, 2024 ---- 随着节能成为AI推理服务器(AI Inference Server)优先考量,北美客户扩大存储产品订单,带动QLC Enterprise SSD需求开始攀升。然而,目前仅Solidi...

关键字: SSD AI 服务器

为增进大家对二极管的认识,本文将对续流二极管、续流二极管的工作原理以及二极管在工业产品中的应用予以介绍。

关键字: 二极管 指数 续流二极管

通过本文,您将了解到二极管反接是否有电压以及二极管在电子电路中的应用。

关键字: 二极管 指数 稳压电路

为增进大家对二极管的了解,本文将对ESD二极管和TVS二极管之间的区别予以介绍。

关键字: ESD TVS 二极管 指数

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术
关闭