- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行输入/输出端口
一、概述
89C51单片机有四个8位并行I/O端口,记作P0、P1、P2和P3。P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。每一 条I/O线都能独立地用作输入或输出。
每个端口都包括一个锁存器(即特殊功能寄存器P0—P3),一个输出驱动器和输入缓冲器,作为输出时数据可以锁存,作输入时数据可以缓冲,但这四个通道的功能不完全相同。
因为P1、P2、P3有固定的内部上拉电阻,所以有时称它们为准双向口。当用做输入时被拉高,低则要靠外部电路拉低。而P0则是真双向口,因为作为输入时它是悬浮的。
二、P0口
1、结构
1、2:三态门(控制信号为0是高阻态);5:模拟开关;7、8:场效应管
2、P0口作为一般I/O口使用
三态门1、2的作用:控制读引脚还是读锁存器,高阻态起隔离作用。
MUX由指令控制。
当8051组成的系统,CPU对片内存储器和I/O口读写时,开关MUX处于下面位置,它把T2输入与锁存器的端接通;
当指令是读、写片外程序或数据,MUX控制置高电平,开关与上面接通。
CL=0时锁存,锁存总线信号。
读引脚为1,读引脚,读锁存器为高阻态;读锁存器为1,读锁存器,读引脚为高阻态。
1)P0口用作I/O输出口
一般的数据输出情况:当CPU执行输出指令时,写脉冲加在D锁存器的CP上,这样与内部总线相连的D端的数据取反后就出现在端口,又经输出级FFT(T2)反相,在P0端口上出现的数据正好是内部总线的数据。注意:数据到端口,如输出为“1”,由于T1、T2均不导通,因此无法保证端口为高电平,如接一个上拉电阻,可以保证为高电平。
图中的缓冲器1用于CPU直接读端口数据。当执行一条由端口输入的指令时,“读引脚”脉冲把该三态缓冲器1打开,这样,端口上的数据经过缓冲器1读入到内部总线。这类操作由数据传送指令实现。
从图中还可看出,在读入端口引脚数据时由于输出驱动FET(T2)并接在引脚上,如果FET(T2)导通就会将输入的高电平拉成低电平,以致于产生误读。
在端口进行读操作时,如果在前面刚好输出了一个“0”(低电平),则T2是导通的,不管端口是否为低电平,读到的均为“0”。因此,读端口前一般应先向端口锁存器写入“l”。保证T2截止。
注意:
如果给端口写1时,T1、T2均不导通,无法保证端口输出为高电平;
读引脚时,没有将T2关闭,端口输入1读到的是0,因此读端口前要保证T2是关闭的,最好给T2写1。
读P0口D锁存器:8051有几条输出指令功能特别强,属于“读-修改—写”指令。
例如,执行—条“ANL P0,A”指令的过程是:不直接读引脚上的数据,而是CPU先读P0口D锁存器中的数据,当“读锁存器”信号有效.三态缓冲器2开通,Q端数据送入内部总线和累加器A中的数据进行“逻辑与”操作,结果送P0端口锁存器。此时,锁存器的内容(Q端状态)和引脚是—致的。
(有时由内部总线输出时,锁存器内容与端口内容可能不一致,以端口接一三极管基极为例,即P口输出为1,但P口实际不是高电平,读锁存器可以保证与运算时P口为1)
3、P0口作为地址/数据总线使用
CPU执行相应指令时(如MOVX指令、EA=0时MOVC指令)片外存储器读写时,控制线C=l,开关MUX拨向反相器输出端。P0口做地址/数据总线分时使用,先输出地址,然后输入或读入数据。分为两种情况。
P0口输出地址/数据总线:
MUX开关把CPU内部地址/数据线经反向器与驱动场效应管FET(T2)栅极接通。
P0口输入数据:
这种情况也是先输出地址,然后将外存储器地址中的内容通过“读引脚”信号进入内部总线。
4、总结:
●P0既可作一般I/O端口用使用,又可作地址/数据总线使用。
● I/O输出时,必须外接上拉电阻,才能保证高电平可靠输出;
●作I/O输入时,必须先向对应的锁存器写入“1”,使T2截止,才能保证输入的正确。
●当P0口被地址/数据总线占用时,就无法再做I/O口使用了。
●作I/O口时是准双向总线,扩展时是双向总线。
三、 P1口
1、P1口某位结构
P1口是一个准双向口。
2、工作原理
作通用I/O口使用。其电路结构见图,输出驱动部分与P0口不同、内部有上拉负载电阻与电源相连。
编程时输入低8位地址
在8052中,P1.0作定时器2的外部计数触发输入端T2,P1.1作定时器2的外部控制输入端。
3、特点
当P1口输出高电平时、能向外提供拉电流负载,所以不必再接上拉电阻;在端口用作输入时,也必须先向对应的锁存器写入“1”,使T截止。
四、P2口
P2口既可以作通用I/O口,也可以作扩展时地
文档评论(0)