① 求教,怎样控制51单片机的蜂鸣器发出不同频率的声音
蜂鸣器是不能发出不同频率的声音的,要发出不同频率的声音,你需要选择speaker,比如:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit SPK=P1^0;
sbit K1=P1^7;
//发声函数
void Alarm(uchar t)
{
uchari,j;
for(i=0;i<200;i++)
{
SPK=~SPK;
for(j=0;j<t;j++); //由参数t行成不同的频率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
② 怎么使用单片机控制蜂鸣器发声
蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为:1)看封装,如果引脚端为PCB板的,一般为无源的,引脚端为树脂灌封的,一般为有源的。2)加电实验,用5V电压点击接触引脚时,只有“哒哒”声的为无源的,发出一个单音响的为有源的。
两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的音频信号,使蜂鸣器按要求发声,对于有源蜂鸣器,要求单片机送出一组断续的电脉冲信号,用于分断蜂鸣器的通断状态,而使有源蜂鸣器发出“嘀...嘀”,“嘀...嘀...嘀”等希望的声音。
无源蜂鸣器举例:
/**********************************************************************/
//声响驱动程序 BELL--整点报时(闹钟音两短一长)
/**********************************************************************/
void Beep(void)
{
uint a;//定义变量用于发声的长度设置
uchar b;
for(b=2;b>0;b--){
for(a=200;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
DelayM(1000);
}
for(a=1000;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
beep = 1;//音乐结束后扬声器关闭
}
有源蜂鸣器举例:
void main(void)
{
NB=0;//有源蜂鸣器初始不送电
while(1)
{
NB=0;//有源蜂鸣器断电
delay(300);//停一段时间
NB=1;//有源蜂鸣器送电
delay(1000);//响一段时间
}
}
③ 单片机怎么控制喇叭出声音
。一般来说用的是三极管驱动扬声器,然后让单片机控制三极管的基极要有硬件电路图才能说原理。
④ 如何用单片机控制声音
可以使用单片机的电平输出的+-电压,控制数字电路的电子开关,用这个脉冲电压控制电子音量IC的控制端就可以。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
⑤ 怎样用单片机控制音响的音量
单片机控制音响的音量的方式有两种:
一种是控制音响音量的采用马达电位器,单片机控制马达顺时针或逆时针转动,实现音量控制。和传统的电位器相比相当于在普通电位器基础上增加了马达实现音量控制,这类电位器的尺寸比较大,而且因为马达经常转动,故障率相对较高。
还有种是采用集成电路来实现:用专用的音量控制集成电路加上编码开关(也叫数字电位器)配合单片机程序实现对音量控制。例如PTC(台湾普城 http://www.princeton.com.tw)品牌的PT2313等,和马达控制相比较有可靠性高,体积小的优点。