第六章mcs-51单片机IO端口(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章mcs-51单片机IO端口(1)
准双向口:从图中结构看,引脚上的外部信号既加在三态缓 冲器的输入端上,又加在输出级FET2的漏极上,若此FET2 是导通的(相当于曾输出锁存过数据0),则引脚上的电位始 终被钳位在0电平上(除非外部信号源有极大的负载能力), 输入数据不可能正确地读入。因此P0口是一个准双向口,即 在输入数据时,应先把口置1,也就是锁存器的~Q为0,这样 使输出级的2个FET都截止,引脚处于悬浮状态,可作高阻抗 输入。这就是所谓的准双向口。
下图为P0口的某位P0.n(n=0~7)结电路和一个输出控 制电路组成。输出驱动电路由一对FET(场效应管)组成,其 工作状态受输出控制电路的控制,后者包括:1个与门、1个反 相器和1个模拟转换开关(MUX)。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
第六章 MCS-51的I/0
第六章mcs-51单片机IO端口(1)
单片机I/O口的使用
对单片机的控制,其实就是对I/O口的控制,无论单片机 对外界进行何种控制,或接受外部的控制,都是通过I/O 口进行的。51单片机总共有P0、P1、P2、P3四个8位双 向输入输出端口,每个端口都有锁存器、输出驱动器和输 入缓冲器。4个I/O端口都能作输入输出口用,其中P0和 P2通常用于对外部存储器的访问。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
2、P0作为地址/数据总线
当P0口作为地址/数据总线使用时,可以分为两种情况。一种情况 是从P0输出地址或数据,这时CPU发出的控制信号应为高电平1, 转换开关把反相器输出端与下拉FET接通,同时与门开锁。输出的 地址或数据信号即通过与门去驱动上拉FET,又通过反相器去驱动 下拉FET。另一种情况是从P0输入数据,这时信号仍应从输入缓冲 器进入内部总线。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
例如逻辑与指令:ANL P0,A就属于这类指令。此指令先把 P0上的数据读入CPU,随之与累加器A内的数据按位进行逻辑 与操作,最后再把与的结果送回P0口。这类指令同样适用于 P1~P3口。 对于“读-修改-写”指令,不直接读引脚上的数据而读锁存器 上的数据,是为了避免错读引脚上电平的可能性。例如,若用 一根口线去驱动一个晶体管的基极,当向此口线写1时,晶体管 导通,并把引脚上的电平拉低。这时若从引脚上读取数据,会 把此数据(应为1)错读为0,若从锁存器Q端读取,则可以得 到正确的数据。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
② 输入时----分读引脚或读锁存器
图中上面一个缓冲器并不直接读取端口引脚上的数据,而 是读取锁存器Q端的数据。Q端与引脚处的数据是一致的。结构 上这样安排是为了适应所谓“读-修改-写”类指令的需要。这类 指令的特点是:先读口,随之可能对读入的数据进行修改,然 后再写到端口上。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
② 输入时----分读引脚或读锁存器
读引脚:由传送指令(MOV)实现;
端口中的2个三态缓冲器用于读操作。一个缓冲器用于直接读 端口引脚处的数据,当执行一般由端口输入的指令时,读脉冲 把图中下面一个三态缓冲器打开,这样端口上的数据将经过缓 冲器送至内部总线。
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
1、P0口作为普通I/O口
①输出时 模拟转换开关的位置由来自CPU的控制信号决定,当
控制信号为0(低电平)时,开关处于图示位置,它把输出 级与锁存器的~Q端接通。同时,因为与门输出为0,输出 级中的上拉FET处于截止状态,因此输出级是漏极开路的开 漏电路。这时P0口可作一般的I/O口用。
51单片机4个I/O端口线路设计的非常巧妙,学习I/O端口 逻辑电路,不但有利于正确合理地使用端口,而且会给设计 单片机外围逻辑电路有所启发。
第六章mcs-51单片机IO端口(1)
下面简单介绍一下输入/输出端口结构。 6.1 P0口和P2的结构
第六章mcs-51单片机IO端口(1)
一、P0口的结构
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
2、P0作为地址/数据总线
▪ P0引脚输出地址/输入数据
输入信号是从引脚通过输入缓冲器进入内部总线。 此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制 信 号有效,下面的缓冲器打开,外部数据读入内部总线。
第六章mcs-51单片机IO端口(1)
51系列单片机有4个I/O端口,每个端口都是8位准双向 口,共占32根引脚。每个端口都包括一个锁存器(即专用寄 存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端 口笼统地表示为P0~P3。
在无片外扩展存储器的系统中,这4个端口的每一位都 可以作为准双向通用I/O端口使用。在具有片外扩展存储器的 系统中,P2口作为高8位地址线,P0口分时作为低8位地址 线和双向数据总线。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
CPU向端口输出数据时,写脉冲加在触发器时钟端CLK上,这 样与内部总线相连的D端的数据取反后就出现在~Q端上,又经输 出FET反相,在P0引脚上出现的数据正好是内部总线的数据。P0 口的输出级可以驱动8个LS TTL输入,但在开漏状态下,为了驱 动NMOS或其它拉流负载,需要外接上拉电阻。
准双向口:从图中结构看,引脚上的外部信号既加在三态缓 冲器的输入端上,又加在输出级FET2的漏极上,若此FET2 是导通的(相当于曾输出锁存过数据0),则引脚上的电位始 终被钳位在0电平上(除非外部信号源有极大的负载能力), 输入数据不可能正确地读入。因此P0口是一个准双向口,即 在输入数据时,应先把口置1,也就是锁存器的~Q为0,这样 使输出级的2个FET都截止,引脚处于悬浮状态,可作高阻抗 输入。这就是所谓的准双向口。
下图为P0口的某位P0.n(n=0~7)结电路和一个输出控 制电路组成。输出驱动电路由一对FET(场效应管)组成,其 工作状态受输出控制电路的控制,后者包括:1个与门、1个反 相器和1个模拟转换开关(MUX)。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
第六章 MCS-51的I/0
第六章mcs-51单片机IO端口(1)
单片机I/O口的使用
对单片机的控制,其实就是对I/O口的控制,无论单片机 对外界进行何种控制,或接受外部的控制,都是通过I/O 口进行的。51单片机总共有P0、P1、P2、P3四个8位双 向输入输出端口,每个端口都有锁存器、输出驱动器和输 入缓冲器。4个I/O端口都能作输入输出口用,其中P0和 P2通常用于对外部存储器的访问。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
2、P0作为地址/数据总线
当P0口作为地址/数据总线使用时,可以分为两种情况。一种情况 是从P0输出地址或数据,这时CPU发出的控制信号应为高电平1, 转换开关把反相器输出端与下拉FET接通,同时与门开锁。输出的 地址或数据信号即通过与门去驱动上拉FET,又通过反相器去驱动 下拉FET。另一种情况是从P0输入数据,这时信号仍应从输入缓冲 器进入内部总线。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
例如逻辑与指令:ANL P0,A就属于这类指令。此指令先把 P0上的数据读入CPU,随之与累加器A内的数据按位进行逻辑 与操作,最后再把与的结果送回P0口。这类指令同样适用于 P1~P3口。 对于“读-修改-写”指令,不直接读引脚上的数据而读锁存器 上的数据,是为了避免错读引脚上电平的可能性。例如,若用 一根口线去驱动一个晶体管的基极,当向此口线写1时,晶体管 导通,并把引脚上的电平拉低。这时若从引脚上读取数据,会 把此数据(应为1)错读为0,若从锁存器Q端读取,则可以得 到正确的数据。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
② 输入时----分读引脚或读锁存器
图中上面一个缓冲器并不直接读取端口引脚上的数据,而 是读取锁存器Q端的数据。Q端与引脚处的数据是一致的。结构 上这样安排是为了适应所谓“读-修改-写”类指令的需要。这类 指令的特点是:先读口,随之可能对读入的数据进行修改,然 后再写到端口上。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
② 输入时----分读引脚或读锁存器
读引脚:由传送指令(MOV)实现;
端口中的2个三态缓冲器用于读操作。一个缓冲器用于直接读 端口引脚处的数据,当执行一般由端口输入的指令时,读脉冲 把图中下面一个三态缓冲器打开,这样端口上的数据将经过缓 冲器送至内部总线。
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
第六章mcs-51单片机IO端口(1)
1、P0口作为普通I/O口
①输出时 模拟转换开关的位置由来自CPU的控制信号决定,当
控制信号为0(低电平)时,开关处于图示位置,它把输出 级与锁存器的~Q端接通。同时,因为与门输出为0,输出 级中的上拉FET处于截止状态,因此输出级是漏极开路的开 漏电路。这时P0口可作一般的I/O口用。
51单片机4个I/O端口线路设计的非常巧妙,学习I/O端口 逻辑电路,不但有利于正确合理地使用端口,而且会给设计 单片机外围逻辑电路有所启发。
第六章mcs-51单片机IO端口(1)
下面简单介绍一下输入/输出端口结构。 6.1 P0口和P2的结构
第六章mcs-51单片机IO端口(1)
一、P0口的结构
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
2、P0作为地址/数据总线
▪ P0引脚输出地址/输入数据
输入信号是从引脚通过输入缓冲器进入内部总线。 此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制 信 号有效,下面的缓冲器打开,外部数据读入内部总线。
第六章mcs-51单片机IO端口(1)
51系列单片机有4个I/O端口,每个端口都是8位准双向 口,共占32根引脚。每个端口都包括一个锁存器(即专用寄 存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端 口笼统地表示为P0~P3。
在无片外扩展存储器的系统中,这4个端口的每一位都 可以作为准双向通用I/O端口使用。在具有片外扩展存储器的 系统中,P2口作为高8位地址线,P0口分时作为低8位地址 线和双向数据总线。
读锁存器
地址/数据 VCC 控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
第六章mcs-51单片机IO端口(1)
CPU向端口输出数据时,写脉冲加在触发器时钟端CLK上,这 样与内部总线相连的D端的数据取反后就出现在~Q端上,又经输 出FET反相,在P0引脚上出现的数据正好是内部总线的数据。P0 口的输出级可以驱动8个LS TTL输入,但在开漏状态下,为了驱 动NMOS或其它拉流负载,需要外接上拉电阻。