void main() { P1=0xff; RELAY=1; while(1) { if(K1==0) { while(K1==0); RELAY=~RELAY; DelayMS(20); } }

名称:继电器控制照明设备说明:按下K1 灯点亮,再次按下时灯熄灭*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0;sbit RELAY=P2^4;//延时void DelayMS(uint ms){uchar t;while(ms--)for(t=0;t<120;t++);}void main(){P1=0xff;RELAY=1;while(1){if(K1==0)//K1==0 是什么意思呀{while(K1==0);RELAY=~RELAY;DelayMS(20);}}}请问这个程序是什么意思呀?请详细说明呀!
2026年09月28日 03:43
有1个网友回答
网友(1):

#include//51内部文件包含命令
#define unsigned char uchar//宏定义,就是用后边的代替前边的
#define unsigned int uint//宏定义,就是用后边的代替前边的
sbit K1=P1^0;//位定义,应该接的是单片机上的灯控开关
sbit RELAY=P2^4;//位定义,应该是接的继电器吧
//延时函数
void DelayMS(uint ms)
{
uchar t;
while(ms--)for(t=0;t<120;t++);
}

void main()
{
P1=0xff;
RELAY=1;
while(1)
{
if(K1==0)//就是你把与P1^0相连的开关按下
{
while(K1==0);
RELAY=~RELAY;
DelayMS(20);
}
}
}
这个东西还要结合硬件。具体哪个地方不明白再问