• 大小: 765KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2022-06-20
  • 语言: 其他
  • 标签: STC89C51、  

资源简介

本系统是基于STC89C51的实时自动报警装置,本系统通过人体感应模块检测人类的接近,并将其传递至STC89C51中处理,一方面在LCD1602显示模块中显示报警信息,另一方面将实时得到的信息进行监督。当无人接近时时,LED显示电路显示正常。当检测到人体接近时,LED显示显示红灯,蜂鸣器报警。以此实现了自动滴灌。 此文件中包含 : 设计报告word文档 keilC51程序 protues仿真原理图

资源截图

代码片段和文件信息


#include           //调用单片机头文件

#include 

#define uchar unsigned char  //无符号字符型 宏定义 变量范围0~255
#define uint  unsigned int  //无符号整型 宏定义 变量范围0~65535

#define key_io P3
uchar key_can;

//   红外热释电平时为0  有输出为1

sbit beep = P1^0;    //蜂鸣器定义
sbit red  = P1^3;    //红色发光二极管定义
sbit green = P1^2;    //绿色发光二极管定义
sbit yellow = P1^1;    //黄色发光二极管定义
sbit hw    = P1^4;    //红外热释传感器定义
bit flag_300ms = 0;

sbit RS = P2^5;
sbit RW = P2^6;
sbit EN = P2^7;

#define RS_H       RS = 1
#define RS_L       RS = 0

#define RW_H       RW = 1
#define RW_L       RW = 0

#define EN_H       EN = 1
#define EN_L       EN = 0

#define READ_DATA  P0


void DelayMs(unsigned int z)
{
   unsigned int x;
   for(;z>0;z--)
     for(x=110;x>0;x--);
}
/***************************LCD1602液晶写命令*****************************/
void LCDWriteCom(unsigned char com)
{
RS_L;
RW_L;
READ_DATA = com;
EN_H;
DelayMs(5);
EN_L;
}

/***************************LCD1602液晶写数据*****************************/
void LCDWriteData(unsigned char dat)
{
RS_H;
RW_L;
READ_DATA = dat;
EN_H;
DelayMs(5);
EN_L;
}

void LcdWriteStr(unsigned char hangunsigned char addchar*s)
{
    unsigned char i;
    unsigned char length = 0;
if(hang==1)   
LCDWriteCom(0x80+add);
else
LCDWriteCom(0x80+0x40+add);
    length = strlen(s);
    for(i=0;i      LCDWriteData(*s++);          //指针送完数据后自加一
}


void Init_1602(void)
{
 LCDWriteCom(0x38); //1602 5x7点阵
 LCDWriteCom(0x0c); //液晶开显示
 LCDWriteCom(0x06);  //光标右移
 LCDWriteCom(0x01);  //清屏
 DelayMs(2);
}

//独立按键处理函数
void key()
{
static uchar key_new = 0key_old = 0key_value = 0;
if(key_new == 0)  //按键松开
{
if((key_io & 0x07) == 0x07)
key_value ++;
else 
key_value = 0;
if(key_value >= 5)  //按键松开松手检测
{
key_value = 0;
key_new = 1; //按键松开后进入等待按键状态
}
}
else 
{
if((key_io & 0x07) != 0x07)  //按键按下
key_value ++;
else 
key_value =0;
if(key_value >= 5) //按键按下消抖
{
key_value = 0;
key_new = 0;    //按键松开后进入等待松开按键状态
}
}
key_can = 20;
if((key_new == 0) && (key_old == 1))
{
switch(key_io & 0x07)
{
case 0x06: key_can = 1; break;   //得到按键值 
case 0x05: key_can = 2; break;   //得到按键值 
case 0x03: key_can = 3; break;   //得到按键值 
}
}  
key_old = key_new;  
}

void time_init()   
{
EA   = 1;     //开总中断
TMOD = 0X01;   //定时器0工作方式1
ET0  = 1;   //开定时器0中断 
TR0  = 1;   //允许定时器0定时
}

uchar flag_alarm ;     //报警标志位
uchar flag_bufang ;    //布防标志位
uchar flag_bufang_en ; //布防标志位使能
uint  flag_value;      //用做定时器的变量
uchar shige; 
uchar num;
//红外报警处理   
void hongwai_dis()
{
    static uchar flag_num=0flag_va=1;   //
    
if(flag_alarm == 1)    //报警
{
red = ~red;    //红灯报警
beep = ~beep;    //蜂鸣器报警
}
if(flag_bufang_en == 1) //准备开始布防
{
green = ~green;    //绿灯闪

}  
if(flag_bufang == 1)   //确认布防
{
green = 0;         //如果延时布防成功 绿灯长亮

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-26 15:48  上交文件\
     文件      162889  2018-03-26 15:42  上交文件\Last Loaded 红外热释电.DBK
     文件      709198  2018-03-26 15:43  上交文件\基于STC89C51的防盗报警器.docx
     目录           0  2018-03-26 15:42  上交文件\源代码\
     文件       11775  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器
     文件        4796  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.c
     文件        2673  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.hex
     文件          86  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.lnp
     文件       11793  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.LST
     文件       16076  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.M51
     文件       13659  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.OBJ
     文件         194  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.plg
     文件       55319  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.uvopt
     文件       13331  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器.uvproj
     文件       55319  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器_uvopt.bak
     文件           0  2018-03-26 15:42  上交文件\源代码\基于51单片机 红外热释报警器_uvproj.bak
     文件      162763  2018-03-26 15:42  上交文件\红外热释电.DSN
     文件         742  2018-03-26 15:42  上交文件\红外热释电.PWI

评论

共有 条评论