51单片机蜂鸣器程序为:
#include"reg52.h"
typedef unsigned char u8
typedef unsigned int u16
sbit beep=P1^5
void delay(u16 i)
{
while(i--)
}
void main()
{
while(1)
{
beep=~beep
delay(1000)//控制音调频率
beep=~beep/控制声音大小
delay(10)
}
}
扩展资料:
BUZZER蜂鸣器的分类:
1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。
2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。
3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器)。
4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。
电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。
由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。
开关控制报警器如何用单片机实现
单片机C语言程序设计:开关控制报警器
/* 名称:开关控制报警器
说明:用 K1 开关控制报警器,程序控制 P1.0 输出两种不同频率的声音,模拟很逼真的报警效果
*/
#include
#define uchar unsigned char
#define uint unsigned int
sbit SPK=P1^0
sbit K1=P1^7
//发声函数
void Alarm(uchar t)
{
uchar i,j
for(i=0i<200i++)
{
SPK=~SPK
for(j=0j//由参数 t 行成不同的频率
}
void main()
{
SPK=0
while(1)
{
if(K1==1)
{
Alarm(90)
Alarm(120)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)