精华内容
下载资源
问答
  • 本文主要为51单片机按键控制蜂鸣器启停程序,下面起来学习一下
  • 实战篇 按键控制蜂鸣器(按键消抖)ppt,实战篇 按键控制蜂鸣器(按键消抖)
  • 通过这主要学习STM32的输入,其中也包括对一些难懂的名词进行解释,有任何不懂得,我觉得看这笔记应该都能懂。
  • 按键控制蜂鸣器.rar

    2019-05-23 15:27:19
    按键控制蜂鸣器 使用无缘蜂鸣器
  • 第一次按下按键按键key后,蜂鸣器响; 第二次按下按键按键key后,蜂鸣器停。 #include <reg52.h> sbit beep=P1^5; sbit key=P3^1; unsigned int mode; //定义一个模式 void delay(unsigned int i) { ...

    第一次按下按键按键key后,蜂鸣器响;

    第二次按下按键按键key后,蜂鸣器停。

    #include <reg52.h>
    sbit beep=P1^5;
    sbit key=P3^1;
    unsigned int mode;                 //定义一个模式
    
    void delay(unsigned int i)
    {
    	while(i--);
    }
    
    void voice()
    {
    	if(mode)
    	{
    	  beep=~beep;
    		delay(100);                //更改delay可以让蜂鸣器发出不同的声音
    	}
    	else
    	{
    		beep=0;
    	}
    }
    
    void main()
    {
    	while(1)
    	{
    		voice();
    	  if(key==0)
    	  {
    	    delay(1000);
    		  if(key==0)
    		  {
    		    mode=!mode;
    		    while(!key);
    		  }
    	  }
    	}
    }

    展开全文
  • 单片机c语音程序keil编程
  • 2独立按键控制蜂鸣器发出不同声音 汇编
  • 按键 控制蜂鸣器

    2012-07-06 20:07:52
    按键 控制蜂鸣器 具有暂停与鸣叫的功能 内附有Keil程序和Proteus仿真 可以调试看效果 绝对可以运行。
  • Arduino按键控制有源蜂鸣器,发现移动电源供电很方便。只剩下焊在板上的蜂鸣器了,取下来的话针脚就太短了,焊了两条线,先凑合用用,下次买元件的时候再更新,并计划做一个蜂鸣器检验的治具。
  • //按k1蜂鸣器响 再按k1蜂鸣器关闭 #include<reg52.h> typedef unsigned int u16; typedef unsigned char u8; sbit beep=P1^5; sbit k1=P3^1; u16 y=0; //用于判断蜂鸣器的开关 void delay(u16 i) //...

    下面展示一些 内联代码片

    // A code block
    var foo = 'bar';
    
    // An highlighted block
    //按k1蜂鸣器响   再按k1蜂鸣器关闭
    
    #include<reg52.h>
    typedef unsigned int u16;
    typedef unsigned char u8;
     
    sbit beep=P1^5;
    sbit k1=P3^1;
    
    u16 y=0;   //用于判断蜂鸣器的开关
    
    void delay(u16 i)				//延时函数
    {
    	   while(i--);
    }
    
    void key()				 //独立按键k1函数
    {
    	if(k1==0)														
    	{
    		delay(1000);		   //软件消抖
    		if(k1==0)
    		{
    			y++;
    		}
    		while(!k1);			 //松手检测
    	}
    }
    
    void fmq()						  //蜂鸣器函数
    {
    	while(y%2)			   //当y%2==1时蜂鸣器响    ==0时蜂鸣器关闭
    	{
    	  beep=~beep;
    	  delay(100);
    	  key(); //此处必须有独立按键检测
    	}
    }
    
    void main()
    {
    	while(1)
    	{	
       key();
       fmq();
    	}
    }
    
    展开全文
  • 按键控制蜂鸣器

    千次阅读 2021-09-16 19:42:48
    /* 实验说明: 此程序兼容了有源和无源蜂鸣器 ... 按下K1键,蜂鸣器发出声音,按下K2键,蜂鸣器停止发声 */ #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; /...

    /*
    实验说明:
        此程序兼容了有源和无源蜂鸣器
    实验接线:
        独立按键模块-->单片机管脚
        K1-->P31
        K2-->P30
        蜂鸣器模块-->单片机管脚
        BEEP-->P15
    实验现象:
        按下K1键,蜂鸣器发出声音,按下K2键,蜂鸣器停止发声
    */

    #include "reg52.h"             //此文件中定义了单片机的一些特殊功能寄存器

    typedef unsigned int u16;      //对数据类型进行声明定义
    typedef unsigned char u8;

    sbit k1=P3^1;
    sbit k2=P3^0;

    sbit beep=P1^5;

    u8 start=0;

    /*******************************************************************************
    * 函 数 名         : delay
    * 函数功能           : 延时函数,i=1时,大约延时10us
    *******************************************************************************/
    void delay(u16 i)
    {
        while(i--);    
    }

    void sound()
    {
        u8 i=100;
        while(i--)
        {
            beep=~beep;
            delay(100);    
        }
    }
    void keypros()
    {
        if(k1==0)             //开始
        {
            delay(1000);
            if(k1==0)
            {
                start=1;        
            }
            while(!k1);
        }
        if(k2==0)              //停止
        {
            delay(1000);
            if(k2==0)
            {
                start=0;        
            }
            while(!k2);
        }
    }
    /*******************************************************************************
    * 函 数 名       : main
    * 函数功能         : 主函数
    * 输    入       : 无
    * 输    出         : 无
    *******************************************************************************/
    void main()
    {    
        while(1)
        {
            keypros();
            if(start==1)
            {
                sound();
            }
            else
            {
                beep=1;
            }        
        }        
    }


     

    展开全文
  • dsp按键控制蜂鸣器

    2013-06-10 15:33:10
    利用CCS和dsp实验箱实现按键切换音乐和暂停控制
  • #includesbit spek=P3^7;//声音输出端sbit set=P3^2;//设定及退出键,按奇数次为设定功能;偶数次为退出功能sbit up=P3^1;//上一曲sbit down=P3^0;//下一曲bit flag1,flag2;... //音符频率对应的二分之周期值...

    #include

    sbit spek=P3^7;  //声音输出端

    sbit set=P3^2;  //设定及退出键,按奇数次为设定功能;偶数次为退出功能

    sbit up=P3^1;  //上一曲

    sbit down=P3^0;  //下一曲

    bit flag1,flag2;  //按键扫描标志位,新键值标志位

    unsigned char f_t,n,i,key,k_max; //音符频率对应的二分之一周期值,节拍常数值,查表用计数器,键值,最大键值

    unsigned char *p_music;  //指向音乐数据数组的指针

    void timer_ms(unsigned char tim);  //毫秒级延时函数声明

    void timer_us(unsigned char t);  //微秒级延时函数

    void key_scan(void);  //按键扫描函数

    void key_manage();  //键值处理函数

    //格式为:频率常数,节拍常数,频率常数,节拍常数

    unsigned char code music_table1[]={

    0x18,0x30,0x1c,0x10,0x20,0x40,0x1c,0x10,0x18,

    0x10,0x20,0x10,0x1c,0x10,0x18,0x40,0x1c,0x20,

    0x20,0x20,0x1c,0x20,0x18,0x20,0x20,0x80,0xff,

    0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,

    0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,

    0x26,0x20,0x20,0x20,0x30,0x80,0xff,0x20,0x20,

    0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,

    0x20,0x30,0x20,0x2b,0x40,0x20,0x20,0x1c,0x10,

    0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,

    0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,

    0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,

    0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,

    0x20,0x30,0x1c,0x10,0x20,0x10,0x1c,0x10,0x20,

    0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,

    0x20,0x15,0x1f,0x05,0x20,0x10,0x1c,0x10,0x20,

    0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,

    0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,

    0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,

    0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1c,

    0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x26,0x40,

    0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,

    0x80,0x00}; //八月桂花香

    unsigned char code music_table2[]={

    0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,

    0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,

    0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,

    0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,

    0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,

    0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,

    0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,

    0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,

    0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,

    0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,

    0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,

    0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,

    0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,

    0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,

    0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,

    0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,

    0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,

    0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,

    0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,

    0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,

    0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,

    0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,

    0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,

    0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,

    0x00};  //祝你平安

    unsigned char code music_table3[]={

    0x20,40,0x26,20,0x20,20,0x17,80,0x1c,40,0x17,40,

    0x20,80,0x20, 40,0x2f,20,0x2a,20,0x26,40,0x2a,20,

    0x2f,20,0x2a,80,0xff,0x20,40,0x26,20,0x20,20,0x17,60,

    0x19,20, 0x1c,40,0x17,40,0x20,80,0x20,40,0x2a,20,

    0x26,20,0x24,60,0x32,20,0x2f,80,0xff,0x1c,40,0x17,40,

    0x17, 80,0x19,40,0x1c,20,0x19,20,0x17,80,0x1c,20,

    0x19,20,0x17,20,0x1c,20,0x1c,20,0x20,20,0x26,20,0x2f,20,

    0x2a,80,0xff,0x20,40,0x26,20,0x20,20,0x17,60,0x19,20,

    0x1c,40,0x17,40,0x20,80,0x20,40,0x2a,20,0x26, 20,

    0x24,60,0x32,20,0x2f,80,0xff,0x20,40,0x26,20,0x20,20,

    0x17,80,0x1c,40,0x17,40,0x20,80,0x20,40, 0x2f,20,0x2a,20,

    0x26,40,0x2a,20,0x2f,20,0x2a,80,0xff,0x20,40,0x26,20,

    0x20,20,0x17,60,0x19,20,0x1c, 40,0x17,40,0x20,80,0x20,40,

    0x2a,20,0x26,20,0x24,60,0x32,20,0x2f,80,0};  //送别

    main()

    {

    spek=0;

    P3=0x7f;

    TMOD=0x01;  //T0工作于方式1,即16位定时器模式

    IE=0x82;  //开总中断,T0中断

    flag2=0;  //

    flag1=0;

    key=1;

    k_max=3;  //最大键值(取值范围1~254)

    n=0;

    i=0;

    p_music=music_table1;  //指针赋初值

    while (1)

    {

    switch (p_music[i])

    {

    case 0x00: i=0;  //歌曲完,则停止0.5S后重新开始

    timer_ms(250);  //延时0.25ms

    timer_ms(250);

    break;

    case 0xff: i++;  //遇到休止符则停止100us

    timer_ms(250);

    timer_ms(250);

    break;

    default:   f_t=p_music[i++];

    n=p_music[i++];

    spek=1;

    TR0=1;

    while (n!=0)

    {

    spek=~spek;

    timer_us(4*f_t);  //改变f_t前面的系数可以调整音符频率的高低

    }

    TR0=0;

    spek=0;

    if(set==0)

    {

    key_scan();

    key_manage();

    }

    }

    }

    }

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

    函数名称: 定时器0的中断处理程序 函数功能: 完成10毫秒定时 入口参数:

    出口参数:  其      它:   **************************************************************/

    void timer0() interrupt 1 using 2

    {

    TH0=(65536-10000)/256;  //定时10毫秒

    TL0=(65536-10000)%256;

    n--; }

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

    函数名称: 延时程序  函数功能: 完成微秒级的延时  入口参数:

    t为需延时的时间(取值范围1~255;延时时间5~1275us) 出口参数:

    其      它:   **************************************************************/

    void timer_us(unsigned char t)

    {

    while (--t);  //本语句执行一次需5us的时间

    }

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

    函数名称: 按键扫描函数 函数功能: 完成按键扫描处理  入口参数:

    应为在中断函数中被调用,所以不能有参数传递 出口参数:  其      它:

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

    void key_scan(void)

    {

    timer_ms(10);  //延时10ms等待按键状态稳定

    if (set==0)  //再次确认

    {

    while (set==0);  //等待按键松开

    flag1=1;  //该位为1,表示进入按键扫描处理;为0,表示本次按键扫描处理完成

    while (flag1)

    {

    if (up==0)  //加一键

    {

    timer_ms(10);

    if (up==0)

    {

    while (!up);

    key++;

    if (key>k_max) key=1;

    }

    }

    if (down==0)  //减一键

    {

    timer_ms(10);

    if (down==0)

    {

    while (!down);

    key--;

    if (key<1) key=k_max;

    }

    }

    if (set==0)  //退出键

    {

    timer_ms(10);

    if (set==0)

    {

    while (set==0);

    flag1=0;  //表示本次按键扫描处理完成

    flag2=1;  //该位置1,表示有新键值要处理

    }

    }//以上键值处理的范围为1到254个键值

    }

    }

    }

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

    函数名称: 键值处理函数  函数功能: 完成按键键值的处理

    入口参数: 应为在中断函数中被调用,所以不能有参数传递

    出口参数:  其      它:

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

    void key_manage()

    {

    flag2=0;

    switch (key)

    {

    case 1: p_music=music_table1;  //键值为1 播放第一首乐曲

    goto kh1;

    case 2: p_music=&music_table2[0];  //键值为2 播放第2首乐曲

    goto kh1;

    case 3: p_music=&music_table3[0];  //键值为3 播放第3首乐曲

    goto kh1;

    default:  key=1;

    p_music=music_table1;

    kh1: TH0=(65536-10000)/256;

    TL0=(65536-10000)%256;

    break;

    }

    n=0;

    i=0;

    }

    /*----------------------------------------------------------------------------------------------------

    函数名称: timer_ms  函数说明: 1ms延时子程序  入口参数: tim为接收主调传来需延时的毫秒数,取值范围1~256,定时时间1~256ms

    出口参数: 其    它:  ----------------------------------------------------------------------------------------------------*/

    void timer_ms(unsigned char tim)

    {

    unsigned char j;

    while(tim--)

    {

    for(j=0;j<200;j++);   //延时1ms

    }

    }

    展开全文
  • STM32代码
  • FPGA-03FPGA按键控制蜂鸣器

    千次阅读 2019-08-28 22:37:07
    使用按键控制蜂鸣器发声。初始状态为蜂鸣器鸣叫,按下开关后蜂鸣器停止鸣叫,再次按下开关,蜂鸣器重新鸣叫。 (3)硬件设计 可以直接将蜂鸣器接到FPGA引脚,同样STM32也可以,设置为推挽输出即可。 需要...
  • 满意答案0fhk92017.12.30采纳率:53%等级:7已帮助:1961人T0HEQU30HT0LEQU31HORG0000HLJMPMAINORG000BHLJMPT0ISRORG0030HMAIN:MOVSP,#5FHMOVTMOD,#01HSETBET0SETBEALOOP:MOVDPTR,#...控制高中低音区MOVR1,#0AN...
  • 本代码是基于tiny210开发板实现的
  • FPGA实战篇——【3】按键控制蜂鸣器

    千次阅读 2021-03-02 08:25:34
    FPGA实战——按键控制蜂鸣器 目录FPGA实战——按键控制蜂鸣器实验任务:蜂鸣器硬件设计程序设计rtl文件按键消抖ucf文件编译RTL图补充——例化模块 的软件操作:下载及debug仿真 实验任务: 复位后蜂鸣器发声,按下...
  • 按键控制led闪烁和蜂鸣器唱歌.zip
  • 树莓派使用按键元件控制蜂鸣器发声,按下案件后触发蜂鸣器蜂鸣。
  • 来自正点原子的学习笔记 上一个博客是这个哦可以去看看 链接: FPGA实战(二)按键控制LED实验. 这里写目录标题1 按键简介2 硬件设计3 程序设计 1 按键简介 2 硬件设计 3 程序设计
  • FPGA之按键控制蜂鸣器实验篇

    千次阅读 2020-12-16 22:46:17
    本实验的实验任务为:使用按键控制蜂鸣器发声。初始状态为蜂鸣器关闭,按下开关后蜂鸣器停止鸣叫,再次按下开关,蜂鸣器重新鸣叫。 由于蜂鸣器需要的驱动电流较大,使用默认8mA的驱动电流有可能出现蜂鸣器发声较小...
  • viewplaincopy1.#defineLED132.#defineKEY23.#defineBuzzer34.intKEY_NUM=0;//按键键值变量5.6.voidsetup()7.{8.pinMode(LED,OUTPUT);//LED为IO输出9.pinMode(KEY,INPUT_PULLUP);//按键为IO带上拉输入10....//蜂鸣...
  • 按键均没按下时,LED和蜂鸣器均不工作。按键1按一次依次亮一个灯;蜂鸣器播放一首音乐。按键1按两次:逆序依次亮一个灯;蜂鸣器播放另外一首音乐。按键1按三次:从亮一个灯依次逐渐增加到到亮八个灯并循环;蜂鸣器...
  • FPGA之按键控制蜂鸣器

    千次阅读 2020-02-05 16:24:25
    目的:按键按下的时候,改变蜂鸣器的状态(本次采用有源蜂鸣器蜂鸣器,根据有无震荡源分为有源蜂鸣器和无源蜂鸣器。从背面有无电路板可以区分,背面封起来的为有源蜂鸣器,背面有电路板的为无源蜂鸣器。 判断正...
  • 单片机中级项目9丨按键控制蜂鸣器 #include<reg51.h> //宏定义 #define uchar unsigned char #define LED P2 //全局变量 uchar Time; void main(void) { uchar data1=0xfe; TMOD = 0x01; //选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,151
精华内容 2,460
关键字:

如何用一个按键控制蜂鸣器