3—蜂鸣器与继电器的驱动
2020-01-25 | 429 字 | 1 分钟
蜂鸣器(Buzzer)
蜂鸣器分为两种,有源蜂鸣器与无源蜂鸣器,“源”特指震荡源,CT107D上使用的为有源蜂鸣器。
- 有源蜂鸣器内部封装的有振荡结构,外接电源即可发出声音,外围电路设计简单但是声音不可改变。
- 无源蜂鸣器,内部无振荡电路,需要在引脚间加上一定频率的信号才能发出声音,声音可变价格便宜。

相关驱动电路
驱动信号经过138译码器(见前文)选择到Y5,激活对应的HC573锁存器,P0端口的信号经过HC573锁存器后使用ULN2003进行信号放大,从而驱动继电器与蜂鸣器。ULN2003的作用的是放大电流,将单片机端口的几十毫安电流转换为最大500ma,从而达到驱动大电流设备的目的。

驱动程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include<reg51.h> typedef unsigned char uchar; typedef unsigned int uint; sbit HC138_A=P2^5; sbit HC138_B=P2^6; sbit HC138_C=P2^7;
void Delay1000ms() { unsigned char i, j, k;
i = 43; j = 6; k = 203; do { do { while (--k); } while (--j); } while (--i); }
void Initsys() { HC138_C=1; HC138_B=0; HC138_A=1; P0=0X00; }
void beep() { HC138_C=1; HC138_B=0; HC138_A=1; P0=0x40; Delay1000ms(); P0=0X00; }
void relay() { HC138_C=1; HC138_B=0; HC138_A=1; P0=0x10; Delay1000ms(); P0=0X00; }
void main() { Initsys(); while(1) { beep(); relay(); } }
|
本文标题:3—蜂鸣器与继电器的驱动
文章作者:Raincorn
发布时间:2020-01-25
最后更新:2020-07-28
原始链接:https://blog.raincorn.top/2020/01/25/CT107D_3_Beep_Relay/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可