㈠ 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; //其他情況 不變
}