单片机引脚在高电平时输出的电流是很小的,所以直接连接LED的亮度很低,但是单片机在输出低电平时可以允许更大的电流的通过,所以你把LED反着接,这样效果就好了。
像这样:
普通的MCS-51单片机(比如AT89C51、STC89C51RC等等),其P1、P2、P3I/O口为弱上拉的I/O口,它的拉电流能力很弱。也就是说当把某个I/O赋值为1时,这个I/O口最大只能向外提供220μA的电流(STC89C51),也就是说I/O口输出为1时负载能力是很差的,只能驱动电流很小的负载,如果负载比较重,便会将I/O口的电压拉低。正因为如此,MCS-51单片机驱动LED、数码管等外设时,都是采用低电平驱动的负逻辑,MCS-51单片机的I/O灌电流能力要比拉电流能力强得多。
这是引脚内部结构的原因所造成的。
51单片机引脚,输出高电平的能力有限,所以通常都用输出低电平来带动负载。
51单片机引脚,输出高电平,则引脚电压易受外部控制,这是用来作输入用途的。
一般小LED工作电流是10mA,电压1.6V左右
你测量的是LED的电压
P2口与LED的连接电阻=(5V-1.6V)/10mA=340欧,最小340Ω,最大不要超过1KΩ
电阻太大的话,就会很暗
首先你的确定你的led是高电平有效还是低电平有效,我看你的叙述好像是低电平有效,这样只有在编程设定引脚为低电平时,灯亮。