请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 382|回复: 3

如何让蜂鸣器只响0.5s

[复制链接]

1

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2019-5-22 22:36:09 | 显示全部楼层 |阅读模式
请问怎么修改代码,让蜂鸣器在函数运行时只响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   通过修改此延时时间达到不同的发声效果       
        }
       
}
回复

使用道具 举报

1

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2019-5-22 22:37:22 | 显示全部楼层
请问不用中断可以实现吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2019-9-8 11:24:40 | 显示全部楼层
#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);                                                                                                                       

}
回复 支持 反对

使用道具 举报

0

主题

62

帖子

215

积分

中级会员

Rank: 3Rank: 3

积分
215
发表于 2019-9-8 11:42:12 | 显示全部楼层
普中的板用的是无源蜂鸣器吧,必须用方波驱动发声,还要响一定的时间,最好是用中断来操作,这样才不会阻塞。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|51开发板专区 STM32开发板专区 PLC工控专区 PLC学习机专区 ( 粤ICP备18101765号 )

GMT+8, 2019-9-22 06:18 , Processed in 0.155526 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表