其实你范错就只是敲错一个字符,下面看正确的:
#include<reg52.h>
sbit LED0=P2^0;
void Delay10ms(unsigned int ms);
void main()
{
P2=0x00; //P2口全置低//P2=0xC0;这是你的,一个字符之差,估计你超PDF上的资料没看清所致
while(1)
{
LED0=1;
}
}
我们再来谈谈,开机后没给P1,P2,P3,P0值时他们是高电平还是低电平
#include<reg52.h>
sbit LED0=P2^0;
void Delay10ms(unsigned int ms);
void main()
{
while(1);
}
结果如下图
结果是除P0外全都是高电平,
所以,你只要P2口只亮一个灯,就得先将P2口全部置低,这样当你LED0=1时才亮一个灯
至于P0口为什么不是高电平,那是因为他内部是开漏设计 |