程序如下:
#include<REG52.H>
sbit sc=P1^0; //检测电网电平
sbit kg=P1^7; //开关检测
sbit sd=P0^7; //输出
void delayms(unsigned char i)
{
unsigned char j;
while(i--)
{
for(j=0;j<116;j++)
{
;
}
}
}
void GET_Z()
{
while(sc==0)
;
while(sc==1)
;
}
void GET_K()
{
bit k=1;
while(k==1)
{
while(kg==0);
delayms(20);
if(kg==1)
k=0 ;
}
k=1;
while(k==1)
{
while(kg==1);
delayms(20);
if(kg==0)
k=0 ;
}
}
void main()
{
bit R_P0;
sd=0;
R_P0=0;
P1=0xFF;
while(1)
{
GET_K();
GET_Z();
R_P0=~R_P0;
sd=R_P0;
delayms(100);
}
}
原理图请看该链接:
http://forum.eepw.com.cn/thread/226239/1