网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 杭州晶控电子有限公司 >> 文章中心 >> 手把手学PIC单片机 >> 文章正文
  [组图]手把手教你使用PIC单片机驱动蜂鸣器           ★★★ 【字体:
手把手教你使用PIC单片机驱动蜂鸣器
作者:admin    文章来源:本站原创    点击数:    更新时间:2008-01-04    

手把手教你使用PIC单片机驱动蜂鸣器(C语言版)——站长原创,如需引用请注明出处

    我们来回顾一下,什么是声音?记得在中学的物理课上,老师就教导我们,声音是由震动所产生的。一定频率的震动就产生了一定频率的声音。在我们的增强型PIC实验板中,实验板的RD7口接了一个蜂鸣器,如果我们往它那里送一个高电平,再马上送一个低电平,他就会发出滴嗒的声音。从实验板照片上,我们可以看到一个圆形白色不干胶贴着的东西,它就是蜂鸣器,使用时,我们将其撕掉即可。

在实验板的右上部,1602液晶屏接口下方,有一个形状如图1所示的部件,叫做蜂鸣器,也就是BUZZER,它和普通喇叭相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比起喇叭简单,所以在一些报警要求不高的场合有所使用,还有一个很常见的用法是,当按下按键操作的时候,很多单片机构成的系统会发出声音提示,一般而言,也主要是由它来做的,但是它不能发出语音。虽然它有自己的固有频率,但是它也可以被加以不同频率的方波,从而编制一些简单的音乐。

图1:

独立的蜂鸣器原始照片

    从上面的描述中,很容易就等到一个结论,那就是蜂鸣器的控制和LED的控制对单片机而言是没有区别的,再加上原理图 图2中 三极管的接法,更加使得控制和第一小节LED的控制完全一致了:低电平有效,即I/O口输出“0”就响,反之则不响。

下面是一个蜂鸣器发生的实例程序:

#include<pic.h>

void delay_1ms(void)
{
unsigned int n;
for(n=0;n<50;n++)
{
NOP();
}
}
void delay_ms(unsigned int time)
{
for(;time>0;time--)
{
delay_1ms();
}
}

void main(void)
{
TRISD=0X00;
while(1)
{
PORTD=0x00;
delay_ms(1000);
PORTD=0x80;
delay_ms(1000);
}
}

    这个程序的核心代码其实只有二句,分别为: PORTD=数值; delay_ms(数值); 前面的语句已在前面的教程中讲过功能与作用,while(1)循环中,即通过语句 PORTD=0x00; delay_ms(1000); PORTD=0x80; 来实现RD7口间断地输出低电平和高电平,中间的delay_ms()为毫秒延时函数,程序中应用为delay_ms(1000);即表示为延时1秒钟时间。因此,程序最终的作用为每隔1秒钟在单片机RD7口输出不现的电平值,我们也由此可以听到蜂鸣器周而复始的“滴嗒”、“滴嗒”响声。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    杭州晶控电子有限公司 版权所有 站长:hificat