这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机IO口详解

共12条 1/2 1 2 跳转至

单片机IO口详解

高工
2022-02-08 10:12:02     打赏

一、三态


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


二、高阻态


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


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


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


image.png


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


应该要翻译成:0=  引脚被配置为输入(高阻抗)

翻译成“高阻抗”应该是比较准确的,

翻译成“三态”容易引起误解


三、IO模式的内部结构


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


1.P0口双向八位三态IO


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


image.png


这是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


内带上拉电阻


image.png


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


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


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


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


双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。

准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。

真正的双向口不需要任何预操作可直接读入读出。

1:准双向一般只能用于数字输入输出,输入时为弱上拉状态(约50K上拉),端口只有两种状态:高或低。

2:双向除用于数字输入输出外还可用于模拟输入输出,模拟输入时端口通过方向控制设置成为高阻输入状态。双向端口有三种状态:高、低或高阻





关键词: 单片机     IO    

专家
2022-02-08 13:02:53     打赏
2楼

谢谢分享


专家
2022-02-08 13:05:07     打赏
3楼

学习学习


专家
2022-02-08 13:10:11     打赏
4楼

参考和学习


专家
2022-02-08 13:24:12     打赏
5楼

学习学习


专家
2022-02-08 13:28:21     打赏
6楼

参考和学习


高工
2022-02-08 14:34:06     打赏
7楼

学习学习再学习


高工
2022-02-08 15:06:13     打赏
8楼

感谢楼主的分享,很实用了。


专家
2022-02-08 15:36:24     打赏
9楼

谢谢分享


高工
2022-02-09 17:43:37     打赏
10楼

新年快乐


共12条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]