51单片机这段代码怎么实现点击一下按键后蜂鸣器自己就一直响。

/*******************************************************************************
* 实验名 : 蜂鸣器实验
* 使用的IO : P2^1
* 实验效果 : 蜂鸣器响。
* 注意 :无源蜂鸣器,需要给脉冲信号才会响
*******************************************************************************/

#include <reg51.h>
#define GPIO_LED P2 //宏定义P2口
sbit Beep = P2^1 ;
sbit K1 = P1^4;
void Delay(unsigned int i) ;
void Delay10ms( ); //延时10ms

void main()
{ while(1){
if(K1==0) //检测按键K1是否按下
{
Delay10ms(); //消除抖动
if(K1==0)
{ GPIO_LED = 0xfe; //1111 1110 第一个灯亮
Beep= 1; //给高电平
Delay(5); //延时
Beep= 0; //给低电平
Delay(5); //延时
}
}
}
}

void Delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}

void Delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}

蜂鸣器分为两种 一种有源蜂鸣器 只需要给他一个高电平他就会一直响,还有着一种是无源的蜂鸣器,这就需要你给他一个脉冲就是指高低电平的互换,每互换一次就响一次
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-28
山8Al14、你来过一下子.我想念一辈子

51单片机用三个按键控制报警,任意按两个按键蜂鸣器就报警的程序_百度知 ...
1. 程序的主要功能是通过三个按键(k1、k2、k3)来控制蜂鸣器的报警。2. 在主函数main()中,定义了一个字符变量beepflag,用于表示蜂鸣器的状态,初始值为0。3. 进入一个无限循环,等待用户操作。4. 首先检查k1按键是否被按下,如果是,将beepflag的最低位设置为1;否则,将其设置为0。5. 接着...

前辈们,请问如何编写使蜂鸣器只响一声的程序,试过了很...
你好!!你在蜂鸣器一直再响,是因为你的单片机程序一直在重新启动;你的程序少了while 的循环,在程序的结尾加上:while(1){}完整的代码是:include <reg51.h>sbit Beep = P1^5 ;void delay(unsigned int i) ;void main(){ unsigned int m,n=1; for(m=0;m<2000; m++) { ...

求51单片机蜂鸣器程序
开关C语言程序:sbit P2^0=KEY;sbit P2^1=BEEP;unsigned char KEYNUM=0;void main(){while(1){if(KEY==0)\/\/开关按下;{KEYNUM++; }if(KEYNUM==1)\/\/第一次按下;{BEEP=1; \/\/蜂鸣器响 }if(KEYNUM==2)\/第二次按下;{BEEP=0; \/\/蜂鸣器不响KEYNUM=0; }}} 51单片机,编写延时程...

51单片机 使用两个独立按键k1,k2,实现按下一个蜂鸣器响,按下另一个蜂 ...
\/\/假设你是 按开关时为0电平 \/\/具体IO口 自己配置 \/\/简单的就可以这么写 如果要求消抖 我们再讨论while(1){ if(k1==0)beep=1; if(k2==0)beep=0;}

为什么我的51单片机一开机,蜂鸣器不不停的响啊,这是为什么啊
可能是接至你蜂鸣器的I\/O口内部加了上拉电阻,输出了高电平,所以会响。你用万用表测测那个I\/O口上电时输出的电平就可以知道是什么情况了

51单片机这段代码怎么实现点击一下按键后蜂鸣器自己就一直响。
蜂鸣器分为两种 一种有源蜂鸣器 只需要给他一个高电平他就会一直响,还有着一种是无源的蜂鸣器,这就需要你给他一个脉冲就是指高低电平的互换,每互换一次就响一次

51 单片机 蜂鸣器播放音乐 用按键控制暂停
没一个是进入外部中断的 可以用定时器间隔扫描,有按键按下时,在定时器中断函数内,用1个while(XX)把程序停在那里 可以是等这个键放开再跳出中断,又或者等其他某个键按下,再跳出中断,这样就OK了 当然,进入while(XX)之前,应该先停止定时器XX可以是局部变量,扫描到有按键按下的时候,置1 ...

51单片机,怎么样使蜂鸣器响一下,流水灯闪烁一个。
MOV R1,#28 \/\/高音键按下基址=28 LOOP0:JB P0.0,LOOP1 MOV A,R1 \/\/“1”键按下 MOVC A,@A+DPTR MOV T0H,A INC DPTR MOV A,R1 MOVC A,@A+DPTR MOV T0L,A LJMP LOOP LOOP1:JB P0.1,LOOP2 MOV A,R1 \/\/“2”键按下 ADD A,#2 MOVC A,@A+DPTR MOV T0H,A INC...

51单片机,让发光二极管由亮变灭时蜂鸣器响一声的程序该怎么写?
你们给问题总是条件不全面!假设P1.1控制LED,低电平亮;P1.2控制蜂鸣器,低电平响。sbit p11=p1^1;sbit p12=p1^2;if((p11=!p11) && (p11==1)){ p12=0;\/\/此处延时50毫秒 p12=1;}

51单片机蜂鸣器一直响怎么办?
你往单片机里写入一个程序,控制这个引脚分别为高低电平各1S钟,看看是不是还一直响,如果还一直响,那有可能是蜂鸣器的和单片机相连的引脚被短路到电源上或者地上了

相似回答