历史上的今天
返回首页

历史上的今天

今天是:2025年07月26日(星期六)

正在发生

2021年07月26日 | 51单片机学习笔记【七】——蜂鸣器和继电器

2021-07-26 来源:eefocus

一.蜂鸣器

1.蜂鸣器基础

蜂鸣器按驱动方式分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内部带振荡器,接入一个低电平便会响;无源蜂鸣器不带振荡器,让它响要接500HZ~4.5KHZ之间的脉冲信号来驱动才会响。很实验采用的是无源蜂鸣器。


2.电路原理图

蜂鸣器

3.实验说明

本实验通过控制蜂鸣器分别在4KHZ和1KHZ频率下发声,实验接线为JP8接P1.5。


4.程序源代码

/**************************************

  > File Name: 蜂鸣器实验

  > Author: pengshp

  > Mail: pengshp3@outlook.com

  > Date: 2015年 7 月 25 日

***************************************/

#include

#define uchar unsigned char

#define uint unsigned int


sbit BUZZ = P1^5;


unsigned char T0RH=0;

unsigned char T0RL=0;

void OpenBuzz(unsigned int frequ); 

void StopBuzz();


void main()

{

    unsigned int i;

    EA =1;                          //使能全局中断

    TMOD = 0x01;                    //配置T0工作模式1


    while(1)

    {

        OpenBuzz(4000);             //以4KHZ频率启动蜂鸣器

        for(i=0; i<40000; i++);

        StopBuzz();                 //停止蜂鸣器

        for(i=0; i<40000; i++);

        OpenBuzz(1000);             //以1KHZ频率启动蜂鸣器

        for(i=0; i<40000; i++);

        StopBuzz();

        for(i=0; i<40000; i++);


    }

}


void OpenBuzz(unsigned int frequ)

{

    unsigned int reload;            //计算所需定时器重载值


    reload = 65536 - (11059200/12)/(frequ*2); 

    T0RH = (unsigned char)(reload >>8);

    T0RL = (unsigned char)reload;


    TH0 = 0xFF;

    TL0 = 0xFE;


    ET0 = 1;                        //使能T0中断

    TR0 = 1;                        //启动T0

}


void StopBuzz()

{

    ET0 = 0;

    TR0 = 0;

}


void InterruptTimer0() interrupt 1

{

    TH0 = T0RH;

    TL0 = T0RL;

    BUZZ = ~BUZZ;

}


二.继电器

1.继电器原理

通过输出不同的电平,控制继电器的开合,实现对电路的控制,不通电是闭合于常开引脚,通电时闭合于常闭引脚。主要参数有额定工作电压,额定工作电流,触点负荷,可控制交流和直流电。


2.电路原理图

继电器

3.实验说明

本实验通过按键K1控制继电器的开与合,开始继电器工作,按下K1继电器停止工作,再按下继电器又开始工作,如此重复。接线为J2接P1.4,K1接P0.0。


4程序源代码

/**************************************

  > File Name: 继电器实验

  > Author: pengshp

  > Mail: pengshp3@outlook.com

  > Date: 2015年 7 月 25 日

***************************************/

#include

#define uchar unsigned char

#define uint unsigned int


sbit RELAY=P1^4;              //继电器位声明

sbit K1=P0^0;                 //开关K1位声明


void Delay(uint ms)

{

    uchar i;

    while(ms--)

    {

        for(i=120;i>0;i--);

    }

}

void main()

{

    RELAY=0;                  //继电器工作

    K1=1;

    while(1)

    {

        if(!K1)

        {

            Delay(50);

            if(K1==0)

            {

                while(!K1);   //等待按键释放

                RELAY=~RELAY; //继电器取反

            }

        }

    }

}

推荐阅读

史海拾趣

DRS Technologies公司的发展小趣事

近年来,DRS在红外探测器技术领域取得了重要进展。公司在12μm像元尺寸非制冷红外探测器技术的基础上,成功研制出10μm像元尺寸的产品。这一技术的突破不仅展示了DRS在红外探测领域的实力,也为其在未来的市场竞争中提供了有力的技术支撑。

Clover Display Limited公司的发展小趣事

Clover Display Limited的创始团队最初是Kontoy Products Company Limited的成员,专注于电子板组装。随着技术的不断进步和市场需求的转变,团队意识到液晶显示技术的巨大潜力。于是,在1983年,他们决定成立一家专注于显示器研发与销售的新公司——Clover Display Limited。初期,公司面临着资金短缺、技术壁垒等多重挑战,但凭借着对技术的热情和市场的敏锐洞察力,他们逐步攻克难关,开始在液晶显示领域崭露头角。

Econais公司的发展小趣事

随着技术的不断成熟和市场的日益扩大,Econais开始将目光投向全球市场。公司积极参加各类国际展会和研讨会,与全球各地的客户和合作伙伴建立联系。同时,Econais还针对不同地区的市场需求,推出定制化的产品和解决方案。这些努力使得Econais在全球范围内的市场份额逐渐扩大。

EDSYN公司的发展小趣事

随着智能能源市场的不断发展,Econais也积极拓展该领域的应用。通过与能源公司的合作,Econais的Wi-Fi模块被广泛应用于智能电网、智能家居和分布式能源管理等领域。这些应用不仅提高了能源利用的效率,也为用户带来了更加便捷和舒适的体验。Econais凭借其在超低功耗和高性能无线产品方面的技术优势,成功在智能能源市场占据了一席之地。

德崧电子(D-SWITCH)公司的发展小趣事

在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。

G-Two Inc公司的发展小趣事

背景:随着企业规模的扩大和业务的拓展,福斯特对资金的需求也越来越大。

发展:2014年,福斯特成功在上交所上市,通过资本市场融资,为公司的发展注入了强劲动力。上市后,公司继续加大研发投入和市场开拓力度,加速企业发展步伐。

成果:上市以来,福斯特的营收和利润均保持快速增长态势,企业规模和实力不断提升。同时,公司还通过并购重组等方式,进一步巩固和扩大市场份额。

以上五个故事概述了福斯特在电子行业,特别是光伏材料领域的发展历程和成就。这些故事不仅展现了福斯特的创业精神和创新能力,也反映了中国光伏产业从无到有、从小到大的发展历程。

问答坊 | AI 解惑

开关电源指标的定义

本帖最后由 paulhyde 于 2014-9-15 04:13 编辑 一.描述输入电压影响输出电压的几个指标形式。 1.绝对稳压系数。 A.绝对稳压系数:表示负载不变时,稳压电源输出直流变化量△U0与输入电网变化量△Ui之比。既: K=△U0/△Ui。 B. 相对稳压系 ...…

查看全部问答>

故障问题

[原创]一个查找电路和器件故障机理的好仪器好方法 最近帮助一些客户做电路故障的分析,在了解情况过程中,问起哪里坏了,大都能告诉我“某某器件坏了”,但再问“哪个管脚坏了”“可能是什么原因造成的”“坏到了啥程度”,往往就没人接茬了,即 ...…

查看全部问答>

请教关于电池的问题

大家有知道一次性电池中寿命最长的是那种吗?使用寿命。最大能做到多少mAH呢? 先谢谢了 补充:不知道一次性电池的寿命是不是也是用mAh来衡量呢,如果不是,要怎么判断呢? [ 本帖最后由 silencepiece 于 2010-6-4 16:52 编辑 ]…

查看全部问答>

在驱动程序中操作文件

谁有内核模式下读写文件的源代吗,我想在驱动中写入调试信息到Log文件。…

查看全部问答>

DS1302 GCC程序怎么结果又错

#include #include //寄存器宏定义 #define WRITE_SECOND              0x80 #define WRITE_MINUTE        0x82 #define WRITE_HOUR     &n ...…

查看全部问答>

AT89C2051芯片控制发光二极管

问下各位,一个AT89C2051芯片最多能够驱动多少个发光二极管? 对电压有怎样的要求,用5V的电压可以吗?…

查看全部问答>

求win ce 5.0下能用的usb接口蓝牙模块

如题 最好能详细介绍一下 谢谢…

查看全部问答>

如何使用OSAL的事件?

以前的帖子,重新整理到这个版面。   OSAL通过一个16位宽度的数组来管理事件,意味着OSAL最多可以支持16个事件,其中最高位(0x08000,SYS_EVENT_MSG)系统保留,用户可以使用的事件有15个。事件的使用很简单:1)需要找个地方定义事件的ID ...…

查看全部问答>

电压反馈型运放和电流反馈型运放的电流噪声的区别

求助各位高手: CFB的电流噪声分为同相端的和反相端的,VFB只给出一种电流噪声。那么在VFB噪声计算中,电流噪声只在同相端或反相端添加还是两端都添加,只不过值是相同的?十分感谢! [ 本帖最后由 mazzz 于 2011-11-17 23:36 编辑 ]…

查看全部问答>