6231|7

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

单片机控制蜂鸣器发声的问题 [复制链接]

C51程序是这样的
#include
sbit BUZ=P2^6;
void main(void){
P2=0;
BUZ=1;
}
蜂鸣器长响,作如下修改:
#include
sbit BUZ=P2^6;
void main(void){
P2=0;
BUZ=1;
while(1);
}
蜂鸣器只发出‘嗒’的一声,时间极短,不仔细听都听不到
将P26线接到共阴极LED上,两段程序都可使灯常亮,说明两段程序运行时P26上确实是高电平

又怀疑蜂鸣器是无源的,但是直接接到开发板Vcc引脚上却又长响

有懂的请回答下这是什么原因,刚学单片机,顺便拜个师

最新回复

结帖~  详情 回复 发表于 2008-2-3 14:05
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你第一段程序,跑一下,系统就停了
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
#include    
sbit BUZ =P2^6;   
void main(void)
{   
  P2 =0;   
  while(1)
    {   
      BUZ =1;   
      Delay(100);
      BUZ =0;  
      Delay(100);  
    }
}   

嘿嘿,这样就会 哔哔。。。。你调整延迟可以做到 DO LEI MI FA SO LA QI DUO
Delay()就自己写吧,另外建议您多看看C语言编程风格,把程序写清爽些,不要搞得自己都看不懂。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
while(1)
  {
    ......;
  }

do
  {
    .....;
  }while(1);

for (;;)
   {
     .....;
   }

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
回复wanyeye:
调试时,main返回时,会自动跳转到0000地址重新运行,不会停下来

回复lhddomain:
代码可能是复制的原因,显示得有点乱,呵呵,你写的程序我也明白,我自己已经写程序控制蜂鸣器发声演奏国歌了。问题是Vcc上的高电平跟P2.6引脚出来的高电平不一样吗,为什么Vcc的高电平能使蜂鸣器长响,而P2.6的高电平只能是蜂鸣器发生一次震动

再回复lhddomain:
语法上也没问题,完整是这样的
while(1)
{
        ;
}
单语句可以省略大括号,再把空白字符省掉就成:
while(1);
了,习惯这样写死循环,呵呵


我现在是这样猜想的,不知道对不对:可能跟蜂鸣器的谐振频率有关系,由端口出来的高电平因为引脚复用的原因出来的并不一直是高电平,应该是有一定频率的方波信号,频率很高,所以接到LED上这种闪烁,人眼看不出来,而蜂鸣器不同,当输入信号频率高到一定程度蜂鸣器就不会发生震动,或者是发生震动了,人耳听不到,以下程序可以证实:
#include         
sbit   BUZ   =P2^6;      
void   main(void)
{      
    P2   =0;      
    while(1)
        {   
            int i=0;//慢慢修改i的值,使增大
            BUZ   =0;        
            BUZ   =1;   
            while(i--);
        }
}  
以上程序随着i的增大,先是无声,然后是‘嗒嗒’声,然后是‘嗒嗒’声渐快形成一定频率的声音,然后频率再慢慢降低,最后由变成‘嗒嗒’声。

我原来问题中第一个程序之所以发声是因为main返回后又重新执行,而整个的main执行要花费一定时间,加上Keil编译出来的程序在main之前要初始化RAM这一段时间,两个时间加一块相当于把上面那段程序的i刚好调到了蜂鸣器可以发声的值


不知是不是这个原因,现在手头没有示波器,只是个猜想,回到学校有机会试试端口出来持续高电平到底跟Vcc有什么不同
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
51端口和vcc的驱动能力是不一样的,一般的蜂鸣器都是加驱动电路的。。。。。不是直接的
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

7
 
回复hiproz:
开发板上,蜂鸣器不是直接连Vcc或端口引脚的,中间经由一个ULN2003驱动,驱动能力应该是足够的
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
结帖~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表