找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3116|回复: 22
打印 上一主题 下一主题
收起左侧

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

  [复制链接]
跳转到指定楼层
楼主

和 sound=0有啥区别吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 来自手机 | 只看该作者
取反的意思
回复

使用道具 举报

5#
ID:856329 发表于 2021-10-21 17:47 | 只看该作者
楼主的仿真图错了吧。以下是我的仿真图:



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


回复

使用道具 举报

6#
ID:304725 发表于 2021-10-21 18:07 | 只看该作者
产生高低变化的方波,让蜂鸣器发出声音,无源蜂鸣器不是变化的电平不会发声
回复

使用道具 举报

7#
ID:491875 发表于 2021-10-21 18:21 | 只看该作者
你的三极管CE极搞反了
回复

使用道具 举报

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

使用道具 举报

9#
ID:57657 发表于 2021-10-21 19:36 | 只看该作者
表示 C语言 按位取反 运算符。
回复

使用道具 举报

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

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

使用道具 举报

11#
ID:964308 发表于 2021-10-21 20:05 来自手机 | 只看该作者
反操作,原来是1,取反就是0
回复

使用道具 举报

12#
ID:936483 发表于 2021-10-21 22:25 | 只看该作者
直接取反的
回复

使用道具 举报

13#
ID:960157 发表于 2021-10-22 06:55 | 只看该作者
没加延时,恐怕不行。。
回复

使用道具 举报

14#
ID:971289 发表于 2021-10-22 21:45 | 只看该作者
while是循环。=0是一直为0,=~是不断取反,两次取反的中间需要加延时,否则没有意义。
回复

使用道具 举报

15#
ID:280000 发表于 2021-11-19 14:15 | 只看该作者
取反的意思,端口电平取反,C语言基本知识
回复

使用道具 举报

16#
ID:982531 发表于 2021-11-19 14:27 | 只看该作者
这个是取反,高低电平切换
回复

使用道具 举报

17#
ID:624769 发表于 2021-11-19 14:41 | 只看该作者
taotie 发表于 2021-10-21 19:49
不信!~~~~!!!!!

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

使用道具 举报

18#
ID:964308 发表于 2021-11-22 15:06 来自手机 | 只看该作者
取反,高电平变低电平,低电平变高电平
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

21#
ID:974277 发表于 2021-11-22 16:15 来自手机 | 只看该作者
按位取反,使蜂鸣器端口电平来回变换,从而产生声音
回复

使用道具 举报

22#
ID:983890 发表于 2021-11-23 18:36 来自手机 | 只看该作者
取反,Sound=!Sound;
回复

使用道具 举报

23#
ID:983972 发表于 2021-11-23 20:05 | 只看该作者
~是取反的意思。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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