找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7688|回复: 22
收起左侧

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

  [复制链接]
ID:973287 发表于 2021-10-21 13:15 | 显示全部楼层 |阅读模式
51hei截图_20211021131412.png 51hei截图_20211021131319.png
和 sound=0有啥区别吗?
回复

使用道具 举报

ID:94031 发表于 2021-10-21 14:03 | 显示全部楼层
sound=~sound  在sound原有状态上取反,sound=0 直接 置零。
回复

使用道具 举报

ID:624769 发表于 2021-10-21 15:08 | 显示全部楼层
取反,等同于:  Sound = !Sound;
回复

使用道具 举报

ID:973802 发表于 2021-10-21 16:00 来自触屏版 | 显示全部楼层
取反的意思
回复

使用道具 举报

ID:856329 发表于 2021-10-21 17:47 | 显示全部楼层
楼主的仿真图错了吧。以下是我的仿真图:

1.png

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


回复

使用道具 举报

ID:304725 发表于 2021-10-21 18:07 | 显示全部楼层
产生高低变化的方波,让蜂鸣器发出声音,无源蜂鸣器不是变化的电平不会发声
回复

使用道具 举报

ID:491875 发表于 2021-10-21 18:21 | 显示全部楼层
你的三极管CE极搞反了
回复

使用道具 举报

ID:624769 发表于 2021-10-21 19:29 | 显示全部楼层
说起来,也许没人信,在这个电路里,仿真会怎么样我不知道,实际电路的话,PNP管的话,正反接蜂鸣器居然都能响。
回复

使用道具 举报

ID:57657 发表于 2021-10-21 19:36 | 显示全部楼层
表示 C语言 按位取反 运算符。
回复

使用道具 举报

ID:342822 发表于 2021-10-21 19:49 | 显示全部楼层
188610329 发表于 2021-10-21 19:29
说起来,也许没人信,在这个电路里,仿真会怎么样我不知道,实际电路的话,PNP管的话,正反接蜂鸣器居然都 ...

不信!~~~~!!!!!
回复

使用道具 举报

ID:964308 发表于 2021-10-21 20:05 来自触屏版 | 显示全部楼层
反操作,原来是1,取反就是0
回复

使用道具 举报

ID:936483 发表于 2021-10-21 22:25 | 显示全部楼层
直接取反的
回复

使用道具 举报

ID:960157 发表于 2021-10-22 06:55 | 显示全部楼层
没加延时,恐怕不行。。
回复

使用道具 举报

ID:971289 发表于 2021-10-22 21:45 | 显示全部楼层
while是循环。=0是一直为0,=~是不断取反,两次取反的中间需要加延时,否则没有意义。
回复

使用道具 举报

ID:280000 发表于 2021-11-19 14:15 | 显示全部楼层
取反的意思,端口电平取反,C语言基本知识
回复

使用道具 举报

ID:982531 发表于 2021-11-19 14:27 | 显示全部楼层
这个是取反,高低电平切换
回复

使用道具 举报

ID:624769 发表于 2021-11-19 14:41 | 显示全部楼层
taotie 发表于 2021-10-21 19:49
不信!~~~~!!!!!

不信的话,可以试验一下,实践出真知,怕麻烦的话,也不用搭电路,有可以测三极管的万用表的话,找个PNP管,就8550好了,B极在中间,比较方便,CE反插看看能不能导通。放大倍率会比正接小一点,但是让蜂鸣器响还是够的。
回复

使用道具 举报

ID:964308 发表于 2021-11-22 15:06 来自触屏版 | 显示全部楼层
取反,高电平变低电平,低电平变高电平
回复

使用道具 举报

ID:871397 发表于 2021-11-22 15:53 | 显示全部楼层
如果里面写sound=0,就算while(1)多次执行,后续sound也一直是0。~是取反的意思(~1=0;~0=1)。这样写的好处是,如果上次while
回复

使用道具 举报

ID:871397 发表于 2021-11-22 15:56 | 显示全部楼层
~是取反。~1=0;~0=1。这样写的意思是:如果上一个状态while(1)内部执行结果是0,那么这次while(1)内部执行结果是~0=1。再下一次,执行结果是~1=0。多次循环代表这里发出了50%占空比的方波。
回复

使用道具 举报

ID:974277 发表于 2021-11-22 16:15 来自触屏版 | 显示全部楼层
按位取反,使蜂鸣器端口电平来回变换,从而产生声音
回复

使用道具 举报

ID:983890 发表于 2021-11-23 18:36 来自触屏版 | 显示全部楼层
取反,Sound=!Sound;
回复

使用道具 举报

ID:983972 发表于 2021-11-23 20:05 | 显示全部楼层
~是取反的意思。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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