如何用51单片机做一个电子开关?大侠帮我写个程序?

P1.1口做为输入端,接一个轻触开关到+VCC端。P0.0口作为输出端,输出正电位为”开“。

按一下轻触开关P0.0输出开,再按一下P0.0输出关
要求上升沿触发!!

//你这一个程序挺简单的, 我使用循环扫描的办法
#include<reg51.h>

sbit kEy = P1^1;
sbit oUt = P0^0;


void Init(void)
{
    kEy = 0;
    oUt = 0;
}

void Delay(void)
{
    unsigned char a,b,c;
    for(a=10;a>0;a--)
    for(b=200;b>0;b--)
    for(c=120;c>0;c--);
}

void main(void)
{
    Init();
    while(1)
    {
        if(kEy)
        {
            Delay();
            if(kEy)
            {
                oUt = !oUt;
                while(!kEy);
            }
        }
    }
}
//祝你好运!

追问

我把你的程序复制进去,仿真和学习板都试了,结构是一样的两个端口都成低电位,装上开关没有任何变化!

追答

因为P0口是集电极输出,所以这里显示高阻态,

追问

你还是自己仿真一下就知道行不行了

温馨提示:答案为网友推荐,仅供参考