在用proteus仿真51单片机控制LED时,将LED正极接io口,负极接GND,但是io口给高电平时LED始终不亮,并且io口电平显示灰色(proteus中:红色表示高电平,蓝色表示低电平,黄色表示短路,灰色表示输出不确定或没有电平)。
如图:
经过上网查询发现,P0口还需要接一个上拉电阻才能点亮LED。如图:
原因分析:IO口在输出高电平时都要接上拉电阻,主要原因是为了确保输出高电平的稳定性和可靠性。
在传统的51系列单片机中,P0口主要用于扩展外部存储器,所以决定了P0口不能自带上拉电阻,而P1、P2、P3这三个io口在单片机内部已经集成了上拉电阻,所以用P1、2、3输出高电平不需要再接上拉电阻。如图:
P0口没有集成上拉电阻,所以在用P0口输出高电平时需要再接一个上拉电阻才能导通。