蜂鸣器的原理及使用方法及实验:开关S1闭合发出频率为1kHz的声音,发声时间约为1s。开关S2闭合发出频率为500Hz的声音,发声时间约为0.5s。

Daisy ·
更新时间:2024-11-13
· 631 次阅读

实验2 并行I/O口应用设计实验

一、实验目的
(1)熟练掌握51单片机内部并行I/O口的基本应用;
(2)掌握蜂鸣器的原理及使用方法;
(3)能够根据项目任务在Proteus 上设计硬件原理图;
(4)能够在Keil µVersion3上编程实现蜂鸣器的程序管理;
(5)能够使用调试工具进行Proteus和Keil µVersion3的联机调试。
二、实验要求
设计用两个开关S1、S2控制P1.0引脚实现蜂鸣器报警的程序,要求如下:
(1)开关S1、S2分别接到P3.0、P3.1引脚上。
(2)蜂鸣器接到P1.0引脚上。
(3)开关S1闭合发出频率为1kHz的声音,发声时间约为1s。
(4)开关S2闭合发出频率为500Hz的声音,发声时间约为0.5s。
提示:
(1)假设单片机系统时钟频率为12MHz。
(2)采用软件延时。
(3)在Proteus中,可以使用的蜂鸣器有两种,分别是SOUNDER和BUZZER,实验前请查阅资料了解蜂鸣器的使用方法。
三、实验步骤及结果

用Proteus绘制实验电路原理图
蜂鸣器的特点与用法:
1、 BUZZER只是SOUNDER的一种,SOUNDER 可以理解为发声器,本实验采用BUZZER。
2、 电磁式蜂鸣器: 由振荡器电磁线圈、磁铁、振动膜片及外壳等组成,详情如图:
在这里插入图片描述蜂鸣器结构图

图1-1 蜂鸣器原理图

3、 蜂鸣器工作原理:
通过在某一接脚接高电压使线圈产生电流从而产生电磁场。产生磁场后将振动膜片吸附到中间的铁柱上,然后在此接脚接低电压,电流断开,磁场消失,振动膜片回弹。有振荡器的蜂鸣器为有源蜂鸣器,它可以直接将输入的高电压转换为一定频率的方波。无源蜂鸣器则没有振荡器需自己设计频率。
4、 蜂鸣器的用法:
三极管做蜂鸣器的开关应用:
首先不接三级管是不可以的,虽然单片机能直接写1,在输出口输出5V的电压,但是因为P1的I/o口内接上拉电阻,上拉电阻的电压比较大的,所以单片机的输出电流是不足以驱动蜂鸣器的。
在这里插入图片描述
图1-2 三级管原理图
如图:当IB>1mA时,E到C接通。
所以蜂鸣器的应用如图所示:
在这里插入图片描述
图1-3 蜂鸣器应用图

5、 试验电路原理图如图1-4所示:
在这里插入图片描述
图1-4 实验电路原理图
表1-1 所用元器件及其参数
序号 器件编号 Proteus器件名称 器件性质 参数及说明 数量
1 U1 AT89C51 单片机 12MHz 1
2 R1、R2、R3 RES 8排电阻(限流) 1KΩ 3
3 BUZ1 BUZZER 电磁蜂鸣器 5v有源 1
4 S1、S2 BUTTON 按钮 2
5 Q1 PNP 三 极管 1

在Keil µVersion中创建C51项目及文件
代码: #include #define uchar unsigned char #define uint unsigned int uchar i=1; sbit S1=P3^0; sbit S2=P3^1; sbit Buzzer=P1^0; /*------------------------------- 10ms延时程序 -------------------------------*/ void delay10ms(int x) { int i,j; // 声明变量 for (i=1;i<x;i++) // 执行x次,延迟X*10ms for (j=1;j<1200;j++);// 执行120次,延迟10ms } /*--------------------------- 蜂鸣器驱动程序 ---------------------------*/ void BUZZER1k(uint x) //0.24ms半周期蜂鸣器程序 { while(x--) { Buzzer=~Buzzer; //蜂鸣器谐振频率2048Hz for(i=0;i<167;i++); //1KHz } Buzzer=1; //复位 } void BUZZER500(uint x) //0.24ms半周期蜂鸣器程序 { while(x--) { Buzzer=~Buzzer; //蜂鸣器谐振频率2048Hz for(i=0;i<84;i++); //500Hz } Buzzer=1; //复位 } void main() { while(1) { if((S1==0) ) { BUZZER500(500); delay10ms(100);//延时1s S1==1; } if(S2==0) { BUZZER1k(500); delay10ms(50);//延时0.5s S2==1; } } } Proteus和Keil 51的联机调试
在Keil µVersion3中编辑、编译程序,排除语法错误后,将编译生成的.hex文件加载至Proteus的单片机中,选择仿真运行,查看运行结果,记录运行现象并分析。
【说明】每次对程序进行修正后,都需要重新生成.hex文件,同时也要在Proteus中停止单片机的运行,只有再次运行时,修改才能起作用。
查看Proteus连上后的c语言对应的汇编语言
在这里插入图片描述 大概如图,方便计算频率实验也可以通过sounder器件实现:
相关电路图如图所示 图1-5 方法二的电路图
作者:‾͟͟͞(((ꎤ✧曲✧)̂—̳͟͞加油哟



蜂鸣器 方法 s1

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章