㈠ 51单片机低电平led亮为什么
51单片机低电平led亮是纳灶宽因为两侧有电压差。因辩差为51单片机低电平led亮是有高电平减低电平组成的电压差,其中单片机引脚输洞亮出低电平,有电压差,灯亮。所以51单片机低电平led亮是因为两侧有电压差。
㈡ 单片机为什么灯亮是给低电平与灌电流和拉电流什么关系
拉电流是单片机置高电平
向外输出电流
方向向外
灌电流是单片机置低电平
电流是由外部流入单片机
51单片机的拉电流能力也就是输出电流的能力很差
微安级别的
具体多少可以上网查
这样小的电流是不能把灯给点亮的
所以只能反过来使单片机引脚为低电平。
整个电路可以这样:电源+接一个限流电阻再接灯的+
然后灯的负极接单片机的I/O脚
这样单片机给低电平灯就亮了
㈢ 单片机c语言LED灯奇数亮灯。
//LED低电平点亮
//LED1-LED8分别接P2.0-P2.7
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
void delay(unsigned char a) //延时
{
unsigned char i;
while(a--)
for(i=100;i>0;i--);
}
void main(void)
{
uchar i;
P2=0XFF;
while(1)
{
for(i=0;i<8;i=i+2)
{
P2=~(1<<i);
}
}
}
㈣ 在单片机中输入两高电平使led灯红灯亮两低电平绿灯亮,一高一低亮灯不变
假设P1.0 1.1口为输入 。red 和gre 为0时量,1时灭。
P1=0xff; //释放P1口
temp=P1; //读取P1口输入
temp=temp&0x03; //取出P1口 0 1 位的数据
switch(temp)
{
case 3: red=0; //如果P1.0 P1,1都是高电平。。0000 0011 =3
gre=1;
break;
case 0:red=1; //如果 1.0 P1,1都是低电平。。0000 0000 =0
gre=0;
break;
default: break; //其他情况 不变
}