~是取反的意思。 |
取反,Sound=!Sound; |
按位取反,使蜂鸣器端口电平来回变换,从而产生声音 |
~是取反。~1=0;~0=1。这样写的意思是:如果上一个状态while(1)内部执行结果是0,那么这次while(1)内部执行结果是~0=1。再下一次,执行结果是~1=0。多次循环代表这里发出了50%占空比的方波。 |
如果里面写sound=0,就算while(1)多次执行,后续sound也一直是0。~是取反的意思(~1=0;~0=1)。这样写的好处是,如果上次while |
取反,高电平变低电平,低电平变高电平 |
taotie 发表于 2021-10-21 19:49 不信的话,可以试验一下,实践出真知,怕麻烦的话,也不用搭电路,有可以测三极管的万用表的话,找个PNP管,就8550好了,B极在中间,比较方便,CE反插看看能不能导通。放大倍率会比正接小一点,但是让蜂鸣器响还是够的。 |
这个是取反,高低电平切换 |
取反的意思,端口电平取反,C语言基本知识 |
while是循环。=0是一直为0,=~是不断取反,两次取反的中间需要加延时,否则没有意义。 |
没加延时,恐怕不行。。 |
直接取反的 |
反操作,原来是1,取反就是0 |
188610329 发表于 2021-10-21 19:29 不信!~~~~!!!!! |
表示 C语言 按位取反 运算符。 |
说起来,也许没人信,在这个电路里,仿真会怎么样我不知道,实际电路的话,PNP管的话,正反接蜂鸣器居然都能响。 |
你的三极管CE极搞反了 |
产生高低变化的方波,让蜂鸣器发出声音,无源蜂鸣器不是变化的电平不会发声 |
楼主的仿真图错了吧。以下是我的仿真图:![]() 楼主用的应该是无源蜂鸣器,内部不包含振荡电路,所以需要一个外部的时钟信号才能将其驱动起来,不同的频率信号可以使无缘蜂鸣器发出不同的响声。io口输出低电平时,三极管导通,输出高电平时,三极管截止。程序中通过给io口取反,可以输出时钟信号,在循环中加入延时,可以改变信号频率。 |
取反的意思 |
取反,等同于: Sound = !Sound; |
sound=~sound 在sound原有状态上取反,sound=0 直接 置零。 |