蜂鸣器是怎么发声的,怎样控制单片机让蜂鸣器发出我想要的声音? 蜂鸣器要用无源蜂鸣器,通入不同频率的交流电或方波可以发不同音调的声音。单片机的作用就是产生不同频率的方波。这就要用到定时器,例如频率1000hz,周期是1ms,用定时器定500us,产生中断,中断程序中将某个管脚电平状态取反就可以了。
比较郁闷:怎样让单片机控制蜂鸣器的声音达到最大 首先你得看看你的蜂鸣器是有源蜂鸣器还是无源蜂鸣器。如果是有源蜂鸣器(就是一通电就会响的),声音的大小取决于电压的大小,所以你要把蜂鸣器两端的电压调到蜂鸣器的额定电压就是最大声音了。如果是无源蜂鸣器,声音的大小取决于两端的电压、占空比和频率。电压当然要达到额定电压,最佳的频率数据手册上有提供,占空比的话你自己试试喽!一般占空比都是50%。希望对你有帮助!
怎么使用单片机控制蜂鸣器发声 蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为: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;有源蜂鸣器。
单片机控制蜂鸣器问题