c语言 异或_单片机基础实验蜂鸣器原理与C语言

1a03c6a9e707ee848e55f3be0f56b0e1.png

蜂鸣器的分类

52e8f032e96c500bf04acd0b40c85912.png
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

有源蜂鸣器与无源蜂鸣器的区别

这里的“源”不是指电源。而是指震荡源。 也就是说有源蜂鸣器内部带震荡源,所以只要一通电就会叫。 而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。

无源蜂鸣器的优点是1.便宜 2.声音频率可控,可以做出"多来米发索拉西"的效果 3.在一些特例中,可以和LED复用一个控制口。 有源蜂鸣器的优点是:程序控制方便 。

蜂鸣器模块

09b2d6911d031d5593b9de33d0e0c7b5.png
蜂鸣器所需电流过大,单片机I/O口无法直接驱动,所以需要添加放大电路,通常加一个三极管放大电路就可以 (有图所示,当P2.3为0时,蜂鸣器通电)

C语言

P2.3=0时,蜂鸣器发声

P2.3=1时,蜂鸣器不发声

IO口电平取反方法:

while(1){beep(P2.3)=~beep,delay(10)}//蜂鸣器发出警笛一样的声音

笔记

C语言位运算符

& 按位与:如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 /* 1&1=00&0=1,1&0=0 */

| 按位或: 两个相应的二进制位中只要有一个为1,该位的结果值为1 /* 1|0=1 , 1|1=1, 0|0=0 */

^ 按位异或 :若参加运算的两个二进制位值相同则为0,否则1。/1^1=1,0^0=1,1^0=0/

~ 取反:~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0。 /*~1=0,~0=1*/

<< 左移:用来将一个数的各二进制位全部左移N位,右补0

>> 右移:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值