实验十蜂鸣器应用
- 格式:docx
- 大小:39.42 KB
- 文档页数:2
实验十蜂鸣器应用
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。本单片机实验板通过一个三极管9015来放大驱动蜂鸣器。
蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻后由单片机的P2.1引脚控制,当P2.1输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P2.1输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P2.1脚的电平来使蜂鸣器发出声音和关闭。
程序中改变单片机P2.1引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P2.1输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。
(1) 实验任务
产生500Hz的音频信号驱动扬声器,作报警信号。
学习板默认是没有接通蜂鸣器,需要用跳线帽短接SPcon。本实验需要产生一个500Hz的报警声,即可以通过计算1S内开关蜂鸣器500次。
(2) 实验电路
(3)实验目的:
●掌握蜂鸣器的使用
●学会编写软件延时函数
(4)实验步骤
●分析设计内容,设计软硬件设计方法
●编写C语言代码
●编译代码
●下载可执行文件
●硬件调试
●观察现象
/**************************头文件***********************/ #include"regx52.h"
#include
#define uchar unsigned char
#define uint unsigned int
sbit buzzer=P2^1; //控制蜂鸣器
uchar i; //全局变量
/*********************毫秒级延时函数*****************/ void delayms(uint ms)
{
uchar b;
while(ms--)
{
for(b=0;b<125;b++);
}
}
/***********************主函数***********************/ main()
{
while(1) //大循环
{
buzzer=~buzzer;
delayms(1); //延时1MS
}
}
(7)现象
500HZ音调发生。
(8)扩展任务
自行改变频率,例如可以播放一首简短的歌曲。