找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1627|回复: 5
收起左侧

单片机声控开关程序不能正常实现出来,一有声音就灯可以亮,但是很快又熄灭了

[复制链接]
ID:490950 发表于 2019-6-11 21:51 | 显示全部楼层 |阅读模式
单片机源程序如下:

#include<reg52.h>
sbit led=P1^0;
sbit music=P2^0;
sbit beep=P2^3;
char i;
void delay(unsigned int xms)
{
unsigned char x,y;
  for(x=xms;x>0;x--)
   for(y=112;y>0;y--);
}
void time()
{
TMOD=0X01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
ET0=1;
EA=1;
TR0=1;
}
void main()
{
time();
while(1)
{
  if(music==0)
  {
   led=0;
   if(i==20)
    i=0;
  }
}
}
void timer() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
i++;
}

回复

使用道具 举报

ID:123289 发表于 2019-6-12 08:18 | 显示全部楼层
声源消失后,延时一点时间做关灯动作即可(判断条件设为:连续一段时间测不到声源)。
回复

使用道具 举报

ID:490950 发表于 2019-6-12 10:55 | 显示全部楼层
yzwzfyz 发表于 2019-6-12 08:18
声源消失后,延时一点时间做关灯动作即可(判断条件设为:连续一段时间测不到声源)。

可以说得具体一点吗
回复

使用道具 举报

ID:104825 发表于 2019-6-12 12:21 来自手机 | 显示全部楼层
程序里没有led关闭语句,应该常亮才对!定时器在程序里没有意义啊!
回复

使用道具 举报

ID:207421 发表于 2019-6-12 13:38 | 显示全部楼层
瞧瞧你写的  led=0;  这应该是点亮LED吧
如果是,那么  led=1; 怎么没有
结果就是 led 一直亮着, 除非单片机断开电源后,再打开led就灭了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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