关于家庭防盗系统的设计

2019-03-24 18:50发布

我是一个单片机初学者,现在学校要求做基于89c51家庭防盗系统的设计,也就是毕业设计,其中经过我的努力,只能实现基本检测的功能,能检测有人经过时,报警灯能亮,也能正常熄灭,问题是蜂鸣器不报警且无法编入频率,希望大家能出谋划策,我把我自己做的程序上传上来,希望高手们能帮我改进或者重新制作一个,里面包含C语言程序和仿真程序,另外由于刚学,汇编还没掌握,只懂得c语言,希望大家能费点时间帮我写出c语言~不胜感激~非常感谢
基本原理是正常工作时,工作指示灯常亮,当热释电传感器检测到有人经过时,会直接输出信号给单片机,由单片机判断并发出警告,工作指示灯熄灭,此时报警灯跳动且蜂鸣器鸣叫,十秒钟后警报停止,恢复正常(仿真程序中使用一个按键开关充当热释电传感器,此设计不需要GSM模块) 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
yipengjiusui
2019-03-25 07:29
我记得PIR里面用的IC是BIS0001,里面有个双运放,自动处理红外型号,检测到红外信号某个引脚就输出一个高电平,具体应用电路图芯片手册里面就有,后面的就可以随意根据这个信号进行处理了。你这个还是相当简单的。
假设你用单片机的P1^1作为蜂鸣器输出,当然之前端口定义你已经定义过它了。
sbit BELL = P1^1;
uchar bell(uchar mode)
{
  static uint time = 0;
  static uchar mode_buf = 0;

  if(mode != 0)
  {
    mode_buf = mode;
    return 0;
  }
  if(mode_buf == 1)
  {
    BELL = 0;
  }
  else if(mode_buf == 3)
  {
    time++;
    if(time < 300)
    {
      BELL = 1;
    }
    else if(time < 1000)
    {
      BELL = 0;
    }
    else
    {
      time = 0;
    }
  }
  else if(mode_buf == 4)
  {
    time++;
    if(time < 200)
    {
      BELL = 1;
    }
    else if(time < 500)
    {
      BELL = 0;
    }
    else
    {
     time = 0;
    }
  }
}

一周热门 更多>