51单片机 如何检测某个引脚是否为高低电平 求一个C源程序实例

如何检测正在运行单片机的IO口的电平状态 检测到后做出相应的行为 譬如导通光耦
求一个实例 可以检测正在运行单片机的IO状态 判断高低电平 1 0都可以

sbit  GO_OUT =P3^5;                       //需要检测的引脚

sbit  LED         =P3^4;                       //显示led    引脚为低时候亮

void main()                     //主程序

    {

        while(1)                    //主循环

          {

                  if(GO_OUT==0)

                         {

                          LED=1;                            //引脚为低 led不亮

                         }

                   else      LED=0;          // 否则led点亮

                  }

       }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-27
用LED指示引脚状态。要求:一个51最小系统版,一个LED,一个1K~10K的电阻(4.7K)。
+5V电源接到LED的正极,串联一个4.7K电阻,接到单片机的引脚上(如P0.1口)。该电路功能:当单片机输出低电平时,小灯亮;单片机输出高电平时,小灯不亮。编程序观察现象。
程序:
void main()
{
sbit LED=P0^1;
void delayms(unsigned mx)
{
unsigned int i,j;
for(i=mx;i>0;i--)
for(j=100;j>0;j--);
}
while(1)
{
LED=1; //此时LED不亮,说明这个引脚是高电平。
delayms(1000);
LED=0; //此时LED亮,说明这个引脚是低电平。
delayms(1000);
}
}

你若想单纯的去检测正在运行单片机的IO口的电平状态的话,直接用LED接到该IO口观察LED的状态即可。如果事先知道该IO口的电平时固定的,拿更好办了,直接用万用表测。
第2个回答  2011-01-27
假如你要检测的脚是P2.0, C51如下:
sbit P20 = P2^0;
.....
if(P20==1)
{
......
}
第3个回答  2011-02-03
sibt P1.1=P1^1;
void main()
{
while(1)
if(P1.1=1)
.........
else........
}
第4个回答  2011-01-28
判断端口是1还是0.
相似回答