51单片机学习笔记4 |
您所在的位置:网站首页 › proteus电路图绘制图片简易蜂鸣器 › 51单片机学习笔记4 |
蜂鸣器控制
1.蜂鸣器简介1.分类2.有源蜂鸣器和无源蜂鸣器3.区分有源蜂鸣器和无源蜂鸣器4.蜂鸣器驱动电路
2.电路图绘制3.蜂鸣器控制4.程序补充
1.蜂鸣器简介
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示 1.分类 按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器);按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器;按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器);按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。 2.有源蜂鸣器和无源蜂鸣器下面有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器 判断有源蜂鸣器和无源蜂鸣器,可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器"+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器,如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器 4.蜂鸣器驱动电路由于蜂鸣器的工作电流比较大,以单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流 2.电路图绘制先看看蜂鸣器的原理图,单片机的蜂鸣器控制引脚串联1k电阻经三极管连接到蜂鸣器 51开发板上搭载的蜂鸣器是有源蜂鸣器,只需要高低电平来控制即可,也就是和LED的控制方式一样,参考程序如下 #include #define ON 0 #define OFF 1 sbit BUZZER = P0^7; void delay_ms(unsigned int nms) { unsigned int i,j; for(i=nms;i>0;i--) for(j=113;j>0;j--); } void main() { BUZZER = ON; delay_ms(200); BUZZER = OFF; delay_ms(200); while(1); }蜂鸣器在protues上不能做仿真,也就是不能看到蜂鸣器是否有响应控制,只能找开发板进行蜂鸣器测试 4.程序补充学习了蜂鸣器控制后,可以结合前面的LED和按键,如下面代码可做参考 #include #include #define ON 0 #define OFF 1 sbit KEY1 = P3^3; sbit KEY2 = P3^4; sbit KEY3 = P3^6; sbit KEY4 = P3^7; sbit BUZZER = P0^7; void delay_ms(unsigned int nms) { unsigned int i,j; for(i=nms;i>0;i--) for(j=113;j>0;j--); } void main() { unsigned int i; P1 = 0xff; while(1) { if(KEY1 == ON){ delay_ms(10); if(KEY1 == ON) { BUZZER = ON; } while(KEY1 == ON); } if(KEY2 == ON){ delay_ms(10); if(KEY2 == ON) { BUZZER = OFF; } while(KEY2 == ON); } if(KEY3 == ON){ delay_ms(10); if(KEY3 == ON) { P1 = 0xfe; for(i=8;i>0;i--) { delay_ms(150); P1 = _crol_(P1,1); } } while(KEY3 == ON); } if(KEY4 == ON){ delay_ms(10); if(KEY4 == ON) { P1 = 0x7f; for(i=8;i>0;i--) { delay_ms(150); P1 = _crol_(P1,-1); } } while(KEY4 == ON); } } } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |