单片机IO口详解

一、三态

单片机IO的三态是指:高电平(1)、低电平(0)、高组态(Z)。

二、高阻态

高阻i是一种电路状态.既不是高电平,也不是低电平,以高阻态对下级电路输出,下级电路什么影响也没有.高阻态的IO电平高低,随下级电路变化而变,下级为高,它就是高,下级是低它就是低.可以看成是悬空状态.

所以,高阻状态的作用就是你不会影响其他,这在总线通讯中特别重要

像通用的51单片机,IO口都有这样的标注(下图是CMS5880的IO引脚配置截图)

当你设置成输入时,此时引脚状态就是高组态。有些单片机规格书翻译不太准确,

应该要翻译成:0=  引脚被配置为输入(高阻抗)
翻译成“高阻抗”应该是比较准确的,
翻译成“三态”容易引起误解

三、IO模式的内部结构

现在我们拿我们入门学得at89c51来分析其引脚端口结构。

1.P0口双向八位三态IO

P0口大家肯定不陌生,想当初第一次画最小系统板,在P0口接上拉电阻,从而点灯点不亮。那为什P0口要加上拉电阻呢?

这是P0口内部结构图,首先P0口的上面那个三极管D0是在进扩展存储器或扩展总线时使用MOVX指令时才会控制它的导通和截止,在不用此指令时都是截止的。也就是我们平常使用如:P0_1=0 P0_1=1这些语句时控制的都是下面那个三极管D1。

当P0=0时,等效图是中间的,三极管D1导通,P0点的电位为0。

而当P0=1时,等效图是右边的,三极管D1截止,而上面的三极管D0始终是截止的,这样P0点就等效于悬空了,所以要外接上拉电阻,才能有高电平。

所以,当你置1时,由于内部没有上拉电阻,所以为高组态,不能正常输出高、低(高组态输出的电平不确定)

 2.P1口准双向IO

内带上拉电阻

当P1=0时,三极管D导通,见中间的等效图

当发出P1=1的指令后,三极管D截止,见右边等效

那为什么叫准双向IO,因为当IO口要设置为输入时,需要先想该端口写“1”,单片机才能正确读取外部的高低电平。

也就是要现有个准备过程,所以叫“准双向3”.P2 P3也是。

双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。
准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。
真正的双向口不需要任何预操作可直接读入读出。
1:准双向一般只能用于数字输入输出,输入时为弱上拉状态(约50K上拉),端口只有两种状态:高或低。
2:双向除用于数字输入输出外还可用于模拟输入输出,模拟输入时端口通过方向控制设置成为高阻输入状态。双向端口有三种状态:高、低或高阻

3.

 

 

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值