菜鸟求助 下面这段程序里的“ BEEP = ~BEEP; ” 怎么理解啊

#include<reg52.h>
sbit BEEP=P3^6; //定义蜂鸣器控制端P36
sbit L00=P0^0;//定义 L0.0 LED灯
void Delayst(unsigned int i) //延时程序,i是形式参数,i为1时 延时约250US
{
unsigned int j;
for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值
for(j=0;j<31;j++) // 此数值为125时 大约延时1MS 由此计算出为1时 延时大约8US 31X8=248US≈250US
{;}
}
void Delay(unsigned int i) //延时程序,i是形式参数,i为1时 延时约1MS
{
unsigned int j;
for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值
for(j=0;j<125;j++)
{;}
}

void main() //主函数
{
unsigned int j;

while(1) //无限循环 一直执行以下程序
{
L00=0; //点亮L00 LED灯
for(j=1000;j>0;j--) //蜂鸣器响大约500MS
{
BEEP = ~BEEP;
Delayst(2); //延时500US 发出大约1KHZ频率的响声
}
L00=1; //熄灭L00 LED灯
BEEP=1; //蜂鸣器不响
Delay(500); //将实际参数500传递给形式参数i,延时500ms 也就是0.5S
}
}
好像明白了,是不是“非”得意思,不断的改变无源蜂鸣器的值,让它想起来

是的.
这个程序,就是点亮L00 LED灯
同时蜂鸣器响大约500MS
然后关掉灯和声音
间断0.5秒.
然后重复上面永不停止.直到断电

你理解的完全没错.是取反的意思
温馨提示:答案为网友推荐,仅供参考