找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2737|回复: 6
收起左侧

单片机初学者想知道为啥下面的程序led灯亮,但是蜂鸣器不响,蜂鸣器是P1^5

[复制链接]
ID:728433 发表于 2020-4-14 09:36 | 显示全部楼层 |阅读模式
#include<reg52.h>
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
sbit beep=P1^5;
uchar temp;
void delay( uint z)
{
unsigned int x,y;
for(x=z;x>0;x--)
   for(y=114;y>0;y--);
}

void main()
{
temp=0xf0;
P2=temp;
delay(100);
while(1)
{
beep=0;
temp=_crol_(temp,1);
P2=temp;
beep=~beep;
delay(100);
}

}

回复

使用道具 举报

ID:169549 发表于 2020-4-14 11:09 来自手机 | 显示全部楼层
看看你的硬件电路,蜂鸣器怎么驱动的
回复

使用道具 举报

ID:169549 发表于 2020-4-14 11:16 来自手机 | 显示全部楼层
给你个蜂鸣器驱动函数void Beep()       {       unsigned char i  ;       for (i=0  ;i<100  ;i++)         {           delay(100)  ;           BEEP=!BEEP  ;                //Beep取反         }      BEEP=1  ;                            //关闭蜂鸣器      delayms(100);   }
回复

使用道具 举报

ID:548322 发表于 2020-4-14 11:39 | 显示全部楼层
你把延时放大点 0.1s可能听不出来
回复

使用道具 举报

ID:728921 发表于 2020-4-14 13:47 | 显示全部楼层
while(1)
{
beep=0;
temp=_crol_(temp,1);
P2=temp;
beep=~beep;
delay(100);
}
把delay(100)改成500或更高试试,不行的话检查硬件
回复

使用道具 举报

ID:213173 发表于 2020-4-14 14:00 | 显示全部楼层
驱动无源蜂鸣器最好单独写一个驱动子程序供主程序调用。
#include<reg52.h>
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
sbit beep=P1^5;

void delay( uint z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)
           for(y=114;y>0;y--);
}

void Ring(unsigned int t)        //半周期无源蜂鸣器驱动程序
{
        unsigned char i;
        while(t--)
        {
                beep=~beep;                                //蜂鸣器端口取反
                for(i=0;i<25;i++);        //延时0.234ms
        }                                        //约=蜂鸣器谐振频率2.135KHz,占空比50%方波
        beep=1;                                                //蜂鸣器端口复位
}
void main()
{
        P2=0xfe;
        Ring(500);
        delay(1500);
        while(1)
        {
                P2=_crol_(P2,1);
                Ring(500);//响铃约120ms
                delay(1500);//延时1.5s
        }
}
回复

使用道具 举报

ID:270740 发表于 2020-4-14 15:09 | 显示全部楼层
延时时间太短了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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