标题:
用单片机怎样可以让无源蜂鸣器滴滴响?
[打印本页]
作者:
一米阳光2333
时间:
2018-12-28 21:24
标题:
用单片机怎样可以让无源蜂鸣器滴滴响?
无源蜂鸣器是靠高低电平转换来发声,但是搞不清楚怎样才能让它响一下停一下,响一下停一下呢?求大佬解答,谢谢!
作者:
HC6800-ES-V2.0
时间:
2018-12-29 08:03
这是一个试验程序,就是让无源蜂鸣器发出两种声音:
void main()
{
n=0;
while(n<1000)//也可以用for语句:for (n=0;n<1000;n++)
{
Beep= 1;
delay(10);
Beep= 0;
delay(10);
n++;
}
delay(10000);
n=0;
while(n<100)
{
Beep= 1;
delay(100);
Beep= 0;
delay(100);
n++;
}
delay(10000);
}
作者:
周超然
时间:
2018-12-29 09:03
网上有很多例子的,你去了解下,简单点就是pwm波
作者:
ssk7793
时间:
2018-12-29 09:12
我发的贴有无源蜂鸣器的部分,你可以参考一下。滴滴响就设循环+判断
作者:
千与千寻9527
时间:
2018-12-29 10:01
高电平响,低电平不响,交替输出高低电平就行,频率1hz或以下就行
作者:
董云交
时间:
2018-12-29 10:03
加一个循环反复高低电平
作者:
千与千寻9527
时间:
2018-12-29 10:03
有源输出1hz以下方波就行,无源的要几千hz方波才可以响。输出波形响,不输出则不响
作者:
笨笨兔
时间:
2018-12-29 14:56
无源蜂鸣器的鸣响是靠高低电平变化实现的,你可以在一定频率下改变高低电平来改变音量,这个要硬件实现。改变频率来改变音调。
作者:
wulin
时间:
2018-12-29 17:20
定时器用作无源蜂鸣器的驱动器程序示例
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key =P3^0;
sbit Buzzer=P2^3;
uchar num;
void Timer0Init() //250微秒@11.0592MHz
{
TMOD |= 0x02; //设置定时器模式
TL0 = 0x1A; //设置定时初值
TH0 = 0x1A; //设置定时重载值
TR0 = 1; //定时器0开始计时
EA=1;
ET0=1;
}
void keyscan()//按键程序
{
static uchar count; //计数消抖变量
static bit key_sign=0; //按键自锁标志
if(key==0) //检测输入如果为0
{
if((++count>=100)&&(key_sign==0))
{
key_sign=1; //按键自锁标志置1,防止重复响应
num=10; //任意置响铃次数
}
}
else
{
count=0; //计数变量清0
key_sign=0; //按键自锁标志清0
}
}
void main()
{
Timer0Init();
while(1)
{
keyscan();
}
}
void timer0() interrupt 1
{
static uint count=0; //中断计数变量
if(num>0)
{
count++;
if(count>2000) //0.5秒时间到
Buzzer=~Buzzer; //蜂鸣器端口取反
if(count>=4000) //1秒时间到
{
count=0; //计数清0
num--;
Buzzer=1; //蜂鸣器端复位
}
}
}
作者:
zuiqf1978
时间:
2020-2-15 10:43
wulin 发表于 2018-12-29 17:20
定时器用作无源蜂鸣器的驱动器程序示例
#include
#define uchar unsigned char
请问:怎么增加两个按键和两个LED IO 按K1LED1亮,嘀嘀响一声,按K2 LED2 亮,嘀嘀响一声,按K3 LED1 和2 全灭,嘀嘀响一声,本人接近小白,请给个C程序!我改了好多遍不成功!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1