找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机蜂鸣器C语言程序“~”是啥作用呐

查看数: 6129 | 评论数: 22 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-10-21 13:15

正文摘要:

和 sound=0有啥区别吗?

回复

ID:983972 发表于 2021-11-23 20:05
~是取反的意思。
ID:983890 发表于 2021-11-23 18:36
取反,Sound=!Sound;
ID:974277 发表于 2021-11-22 16:15
按位取反,使蜂鸣器端口电平来回变换,从而产生声音
ID:871397 发表于 2021-11-22 15:56
~是取反。~1=0;~0=1。这样写的意思是:如果上一个状态while(1)内部执行结果是0,那么这次while(1)内部执行结果是~0=1。再下一次,执行结果是~1=0。多次循环代表这里发出了50%占空比的方波。
ID:871397 发表于 2021-11-22 15:53
如果里面写sound=0,就算while(1)多次执行,后续sound也一直是0。~是取反的意思(~1=0;~0=1)。这样写的好处是,如果上次while
ID:964308 发表于 2021-11-22 15:06
取反,高电平变低电平,低电平变高电平
ID:624769 发表于 2021-11-19 14:41
taotie 发表于 2021-10-21 19:49
不信!~~~~!!!!!

不信的话,可以试验一下,实践出真知,怕麻烦的话,也不用搭电路,有可以测三极管的万用表的话,找个PNP管,就8550好了,B极在中间,比较方便,CE反插看看能不能导通。放大倍率会比正接小一点,但是让蜂鸣器响还是够的。
ID:982531 发表于 2021-11-19 14:27
这个是取反,高低电平切换
ID:280000 发表于 2021-11-19 14:15
取反的意思,端口电平取反,C语言基本知识
ID:971289 发表于 2021-10-22 21:45
while是循环。=0是一直为0,=~是不断取反,两次取反的中间需要加延时,否则没有意义。
ID:960157 发表于 2021-10-22 06:55
没加延时,恐怕不行。。
ID:936483 发表于 2021-10-21 22:25
直接取反的
ID:964308 发表于 2021-10-21 20:05
反操作,原来是1,取反就是0
ID:342822 发表于 2021-10-21 19:49
188610329 发表于 2021-10-21 19:29
说起来,也许没人信,在这个电路里,仿真会怎么样我不知道,实际电路的话,PNP管的话,正反接蜂鸣器居然都 ...

不信!~~~~!!!!!
ID:57657 发表于 2021-10-21 19:36
表示 C语言 按位取反 运算符。
ID:624769 发表于 2021-10-21 19:29
说起来,也许没人信,在这个电路里,仿真会怎么样我不知道,实际电路的话,PNP管的话,正反接蜂鸣器居然都能响。
ID:491875 发表于 2021-10-21 18:21
你的三极管CE极搞反了
ID:304725 发表于 2021-10-21 18:07
产生高低变化的方波,让蜂鸣器发出声音,无源蜂鸣器不是变化的电平不会发声
ID:856329 发表于 2021-10-21 17:47
楼主的仿真图错了吧。以下是我的仿真图:



楼主用的应该是无源蜂鸣器,内部不包含振荡电路,所以需要一个外部的时钟信号才能将其驱动起来,不同的频率信号可以使无缘蜂鸣器发出不同的响声。io口输出低电平时,三极管导通,输出高电平时,三极管截止。程序中通过给io口取反,可以输出时钟信号,在循环中加入延时,可以改变信号频率。


ID:973802 发表于 2021-10-21 16:00
取反的意思
ID:624769 发表于 2021-10-21 15:08
取反,等同于:  Sound = !Sound;
ID:94031 发表于 2021-10-21 14:03
sound=~sound  在sound原有状态上取反,sound=0 直接 置零。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表