本帖最后由 meetof4 于 2013-2-28 22:22 编辑
#include<reg51.h>
void delay(unsigned int z);//声明延时函数
sbit k1=P3^2; //
sbit beep=P3^7;
void main()
{
while(1){
if(k1==0)
{
beep=0;//蜂鸣器响
delay(1);//调用1ms延时
beep=1;//蜂鸣器不响
delay(1);//调用1ms延时
}
}
}
void delay(unsigned int z)//1ms延时,通过z值改变延时
{
unsigned int x;
for(;z>0;z--)
for(x=110;x>0;x--);
}
烦请帮忙把上面的程式
修改成一个按钮(K1)控制蜂鸣器的开启和停止
望各位高手帮忙 谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#include<reg51.h>
void delay(unsigned int z);//声明延时函数
sbit k1=P3^2; //
sbit beep=P3^7;
bit key = 1; //----加一个按键标志
void Key_Scan(void)
{
if(k1 == 0)
{
delay(2); //---延时10ms
if(k1 == 0) key = ~key;
while(k1 == 0);
}
}
void main()
{
while(1)
{
Key_Scan();
if(key==0)
{
beep=~beep;//蜂鸣器响
delay(1);//调用1ms延时
}
else
{
beep = 1;//---关闭蜂鸣器
}
}
}
void delay(unsigned int z)//1ms延时,通过z值改变延时
{
unsigned int x;
for(;z>0;z--)
for(x=110;x>0;x--);
}
试过放了 去抖动程序
Key_Scan();
if(key==0)
{
delay(1000);
if(key==0)
{
beep=~beep;//蜂鸣器响
delay(1);//调用1ms延时
}
}
else
{
beep = 1;//---关闭蜂鸣器
}
但不知为何会影响蜂呜器的声音大小?
加了声音变小了很多
#include<reg51.h>
void delay(unsigned int z);//声明延时函数
sbit k1=P3^2; //按钮
sbit beep=P3^7; //蜂鸣器输出
bit key = 1; //按键标志
/********** **********/
void Key_Scan(void)
{
if(k1 == 0)
{
delay(10); //延时10ms
if(k1 == 0) key = ~key;
while(k1 == 0);
}
}
/********** 主 程 序 **********/
void main()
{
while(1)
{
Key_Scan();
if(key==0)
{
beep=~beep; //开蜂鸣器
delay(1); //调用1ms延时
}
else
{
beep = 1; //关蜂鸣器
}
}
}
/********** 1ms延时,通过z值改变延时 **********/
void delay(unsigned int z)
{
unsigned int x;
for(;z>0;z--)
for(x=110;x>0;x--);
}
十分感谢
一周热门 更多>