如何让蜂鸣器只响0.5s
请问怎么修改代码,让蜂鸣器在函数运行时只响0.5s然后退出呢?下边是程序:
/**************************************************************************************
* 蜂鸣器实验 *
实现现象:下载程序后蜂鸣器发声
注意事项:无
***************************************************************************************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit beep=P1^5;
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
beep=~beep;
delay(1000); //延时大约100us 通过修改此延时时间达到不同的发声效果
}
} 请问不用中断可以实现吗? #include<reg52.h>
#define led P0
sbit d7=P1^5;
void delay(unsigned int a)
{
while(a--);
}
void main()
{
int i;
for(i=0;i<5000;i++)
{
d7=1;
delay(20);
d7=0;
delay(5);
}
while(1);
} 普中的板用的是无源蜂鸣器吧,必须用方波驱动发声,还要响一定的时间,最好是用中断来操作,这样才不会阻塞。
页:
[1]