设计具有防盗并且兼有防火,防煤气,防盗毒等功能的小区防盗报警系统,无疑可以使家庭保安自动化。系统采用体积小巧,功能强大,价格便宜的单片微型计算机作为居民家庭第一监视端,与单片机连接各种用于家庭安保的传感器作为收集信号并送给单片机初步处理。
单片机实时与远方主监控计算机通信,将从传感器接受来的信号实时传给主机,主机端就可以知道小区各个居民家庭的异常情况,从而进行实时处理。
报警器硬件由温度烟雾信号采集模块、煤气信号采集模块、防盗报警模块、光报警模块,键盘显示模块以及单片机与CAN总线模块组成。集成数字温度传感器DS18B20和烟雾传感器NIS-09C。气敏传感器TP-1.1A。热电释红外传感器RE200B。
#include "lcd1602.h"
void delay_uint(uint i)
{
while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(20);
e=1;
delay_uint(20);
e=0;
}
/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '�') break;
write_data(*p);
p++;
}
}
/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{
write_com(0x38); //数据总线为8位,显示2行,5x7点阵
write_com(0x0c); //开显示,有光标,光标闪烁
write_com(0x06); //光标自动右移
delay_uint(1000); //等待设置完成
}
资料借鉴于此纷传