51单片机怎么控制引脚的输出 如何让单片机随机一个引脚输出高电平?
如何让单片机随机一个引脚输出高电平?
如果单片机支持位操作(位寻址),可以直接控制一个位的管脚。
比如AT89C51的微控制器:P1 01;如果不支持位操作(位寻址),则使用AND或操作,如atmega 16:porta | 0x 01;(即PA0写1)
51单片机输出为什么不是高电平有效?
由于51单片机的管脚是一个准双向端口,为了正确读取管脚的内容,在输入前加一个高电平。也就是说,在输出变为输入之前,必须发送高电平才能正确读取数字,已经处于输入状态,所以不发送高电平也可以称为准双向。
51单片机的IO口是a "准;"双向端口,拉电流弱,吸电流强,换句话说,输出电平高时能输出的电流太小,负载重时拉不高;
51单片机可以控制多少输出输入?
答:51单片机有4个I/O口,每个都是8位双向口,占32个管脚。每个端口包括一个锁存器(即特殊寄存器P0-P3)、一个输入驱动器和一个输入缓冲器。一般来说,这四个端口称为P0 ~ P3。无需片外扩展的存储在系统中,这四个端口的每一位都可以用作双向通用I/O端口。
在具有片外扩展存储器的系统中,P2端口用作高位8位地址线,P0端口用作低位8位地址线和分时双向数据总线。
对Arduino设为输出(OUTPUT)的引脚进行写操作(digitalWrite)的作用是什么?
首先要明确IO口的几种常见模式。对于数字IO,常见的模式有:推挽输出、开漏输出、浮空输入(高阻输入)、上拉输入、下拉输入。STM32支持以上所有模式,但很多单片机并不支持以上所有模式。比如Arduino采用的AVR微控制器不支持开漏输出和下拉输入。
第二,要明确 "输入阻抗 "和 "输出阻抗 "。比如当IO口输出高电平时,并不是像机械开关一样直接在IO口内部的电源正极插入一根导线,IO脚和电源正极之间实际上存在一个电阻。当这个阻力很小时,我们称之为 "强壮 "。当这种阻力很大时,我们称之为 "弱 "。当然,这个电阻的一端接IO引脚,如果另一端接电源正极,就成了上拉电阻,如果接地,就叫下拉电阻。
让 我们先来谈谈输出模式。对于Arduino,当IO口用pinMode设置为输出时,IO的状态实际上是 "强大的推拉和,也就是说,设置为高电平时,IO口对电源正极的电阻比较小(强上拉),设置为低电平时,IO口对地的电阻比较小。也比较小(强下拉),所以IO口驱动能力强。事实上,它 没有那么强烈,它 大约几十毫安,可以点亮LED。这里顺便说一下常见的51单片机,它的IO口总是连一个上拉电阻,之所以这么叫是因为它比较大。弱上拉,所以51单片机的上拉电流驱动能力(IO管脚高时电流从IO管脚流向外部电路的能力)比较弱,只有100μA左右,通常只会让LED发出很弱的光,所以51单片机IO口点亮LED的通常是灌水。电流(电流从外部电路流入IO引脚)。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。