文档介绍:该【单片机输入输出口 】是由【3827483】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【单片机输入输出口 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。MCS—51
单片机原理与接口应用
华中科技大学光电子工程系
(8051输入/输出端口结构 )
80 51单片机有四个8位并行I/O端口,记作P0、P1、P2和P3。每个端口都是8位准双向口,共占32根引脚。每一 条I/O线都能独立地用作输入或输出。
每个端口都包括一个锁存器(即特殊功能寄存器P0—P3),一个输出驱动器和输入缓冲器,作为输出时数据可以锁存,作输入时数据可以缓冲,但这四个通道的功能不完全相同。
在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器系统中,P2口送出高8位地址.P0口为双向总线,分时送出低8位地址和数据的输入/输出。
8051单片机四个I/()端口的电路设计非常巧妙,熟悉I/O端口逻辑电路,不但有利于正确合理地使用端口。而且会对设计单片机外围逻辑电路有所启发。
8051输入/输出端口结构 (慨述)
一、P0口的结构:
结构:一个输出锁存器;
二个三态输入缓冲器
输出驱动电路及控制电路组成
其工作状态受: 控制电路与门④、
反相器②
转换开关MUX控制。
当CPU使控制线C=0,开关MUX连接输 出锁存器,P0口为通用I/O 口,
当C=1时,开关投向反相器②的输出端,P0口分时作为地址/数据总线使用。
P0口的某一位的结构图
当8051组成的系统无外扩存储器、CPU对片内存储器和I/O口读写时,内部硬件自动使控制线C=0。开关MUX处于图示位置,它把输出级(T2)与锁存器的端接通;
因与门①输出为0,输出级中的上拉场效应管T1处于截止状态,因此,输出级是漏极开路的开漏电路。这时P0口可作一般I/O口用。
(一)P0口作为一般I/O口使用
一般的数据输出情况:当CPU执行输出指令时,写脉冲加在D锁存器的CP上,这样与内部总线相连的D端的数据取反后就出现在端口,又经输出级FFT(T2)反相,在P0端口上出现的数据正好是内部总线的数据。
读P0口D锁存器:8051有几条输出指令功能特别强,属于“读一修改—写”指令。
例如,执行—条“ANL P0,A”指令的过程是:不直接读引脚上的数据,而是CPU先读P0口D锁存器中的数据,当“读锁存器”信号有效.三态缓冲器①开通,Q端数据送入内部总线和累加器A中的数据进行“逻辑与”操作,结果送问P0端口锁存器。此时,锁存器的内容(Q端状态)和引脚是—致的。
01
03
02
1、P0口用作输出口
从图中还可看出,在读入端口引脚数据时由于输出驱动FET(T2)并接在引脚上,如果FET(T2)导通就会将输入的高电平拉成低电平,以致于产生误读。
图中的缓冲器②用于CPU直接读端口数据。当执行一条由端口输入的指令时,“读引脚”脉冲把该二态缓冲器②打开,这样,端口上的数据经过缓冲器②读入到内部总线。这类操作由数据传送指令实现。
在端口进行输入操作前,应先向端口锁存器写入“l”,也就是使锁存器=0,因为控制线C=0,因此T1和T2全截止,引脚处于悬浮状态,可作高阻抗输入。这就是所谓的准双向口的含义。
01
02
03
2.P0口作输入口
(二) P0口作为地址/数据总线使用
P0口用作输出地址/数据总线:在扩展系统中,—种是以P0口引脚输出低8位地址或数据信息。MUX开关把CPU内部地址/数据线经反向器③与驱动场效应管FET(T2)栅极接通。从图上可以看到,上下两个FET处于反相,构成推拉式的输出电路(T1导通时上拉,T2导通时下拉),大大增加了负载能力。
另一种情况是由P0口输入数据。这种情况是在“读引脚”信号有效时打开输入缓冲器②使数据进入内部总线。
CPU对片外存储器读写,由内部硬件自动使控制线C=l,开关MUX拨向反相器③输出端。这时P0口可作地址/数据总线分时使用,分为两种情况。
P0既可作—般I/O端口用使用,又可作地址/数据总线使用。
01
作I/O输入时,必须先向对应的锁存器写入“1”,使FET(T2)截止,不影响输入电平。
03
I/O输出时,输出级属开漏电路,必须外接上拉电阻,才有高电平输出;
02
当P0口被地址/数据总线占用时,就无法再作I/O口使用了。
04
总结:
P1口也是一个准双向口:
1
作通用I/O口使用。其电路结构见图,输出驱动部分与P0口不同.内部有上拉负载电阻与电源相连。实质上电阻是两个场效应管FET并在—起,—个FET为负载管,其电阻固定;另一个FET可工作在导通或截止两种状态,使其总电阻值变化近似为0或阻值很大两种情况。当阻值近似为0时、可将引脚快速上拉至高电平;当阻值很大时,Pl口为高阻输入状态。
2
当P1口输出高电平时、能向外提供拉电流负载,所以不必再接上拉电阻,在端口用作输入时,也必须先向对应的锁存器写入“1”,使FET截止。由于片内负载电阻较大,约20一40kΩ,所以不会对输入的数据产生影响。
3
二、P1口