AT89S系列单片机系统结构教学教材.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT89S系列单片机系统结构教学教材.ppt

* 2.4 并行I/O口结构 AT89S51单片机有4个8位双向并行I/O端口: P0、P1、P2、P3。每个I/O端口除可作为字节的输入/输出外,每条I/O口线也可单独地用做输入/输出线。 * 1.P0——8位、漏极开路的双向I/O口。 在访问外部存储器时,P0口既是一个真正的双向数据总线口,又是分时输出低8位地址口。图2-9为P0口的位结构示意图,它包括一个输出锁存器、两个三态缓冲器、一个输出驱动电路和一个输出控制电路。其中,输出驱动电路由一对场效应晶体管(FET)组成,其工作状态受输出控制电路控制。 图2-9 P0口的位结构原理图 * 当P0口用于输出地址/数据分时复用时,这时的控制信号应为“1”(高电平),模拟转换开关(MUX)把地址/数据信息经反相器与下拉FET接通,同时与门开锁,输出的地址/数据控制信息,即通过与门去驱动上拉FET,又通过反相器去驱动下拉FET。例如,当输出信息为“1”时,上拉FET导通,而“1”经反相器反相为“0”使下拉FET截止,从而使输出引脚上出现“1”(高电平);反之,当输出为“0”时,则上拉FET截止,“0”经反相变为“1,使下拉FET导通而接地,从而使输出引脚上输出“0”(低电平)信号。 由于复位后CPU自动向P0口输出0FFH,锁存器的端输出为“0”,使下拉FET截止,输入程序代码时控制端为“0”,使上拉FET也处于截止状态,从而使P0口处于高阻抗输入方式,保证了程序指令代码的正确输入。因此,P0口用做地址/数据分时复用时是一个真正的双向输入/输出口。 * 当P0口作为一般I/O口使用时,对应的控制端信号为“0”,模拟转换开关与锁存器的端相连接。同时使与门关锁而上拉FET截止,这样P0口的输出级是漏极开路,故需外接上拉电阻R(一般可选用4.7k?或5.1k?)。作为I/O输出时,例如,当输出为“0”(低电平)时,则锁存器的端输出“1”(高电平),使下拉FET导通并接地,从而使输出端口强拉成低电平,故而输出为“0”;当输出为“1”(高电平)时,锁存器的端输出为“0”(低电平),使下拉FET截止,这样输出端口就被上拉电阻R拉成高电平,从而输出端为“1”。 当P0口作为I/O口输入时,分以下两种情况: 1)当CPU复位后进行输入操作时,由于复位后CPU对P0口输出0FFH,使各位锁存器置“1”。端输出为“0”而使下拉FET截止,由上拉电阻将端口上拉成高电平,这时的端口的输入状态取决于外部输入信息状态。若输入为“1”(高电平),则端口电平保持不变,从而输入为“1”;若输入为“0”(低电平),则把端口电平强拉成低电平(“0”),从而输入为“0”。因而输入信息是正确的。 * 2)当P0口的某位(或整个P0口)先进行了输出操作,而后要由输出变成输入操作方式。由于先前输出的是何值并不知道,如果先前输出的是“0”(低电平),则锁存器的端输出为“1”(高电平),使下拉FET导通并接地,从而使输出端口被下拉成低电平(“0”状态),这时即使外部输入为“1”(高电平)也被下拉成低电平,造成输入不正确(“1”变成“0”)。因此,必须在输入操作前,先用输出“1”指令将该锁存器置“1”,端将下拉FET截止,使输出端口由上拉电阻R上拉成高电平(“1”)状态,然后进行输入操作才正确。因此,这时的P0口就不是真正的双向I/O口,而被称之为“准双向I/O口”。 除数据可以从引脚输入(称“读引脚”)操作外,还可读锁存器操作,以实现读锁存器一修改一重写操作。 综上所述,P0口既可作地址/数据分时复用总线口,这时是个真正的双向I/O口;又可作通用I/O口,但这时是个准双向I/O口。在系统作单片应用,P0口用于通用I/O口时,应加上拉电阻R,复位后自动置成地址/数据分时复用总线方式。 * 2.P1——8位、准双向I/O口 如图2-10所示,P1口可作为通用I/O口。输出缓冲器可驱动4个TTL负载;作为输入时,首先应将引脚置1,由片内上拉电阻将其抬高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。 在Flash并行编程和校验时,P1口可输入低字节地址。在串行编程和校验时,P1.5/MOSI、P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。P1口可以驱动4个LSTTL负载。 因为P1口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。对于AT89S52,P1.0引脚的第二功能为T2定时器/计数器的外部输入;P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。 * 图2-10 P1口的位结构原理图 * 3.P2——8位、准双向I/O口 当

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档