安防课程设计说明书.docx
- 文档编号:6944892
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:18
- 大小:91.43KB
安防课程设计说明书.docx
《安防课程设计说明书.docx》由会员分享,可在线阅读,更多相关《安防课程设计说明书.docx(18页珍藏版)》请在冰豆网上搜索。
安防课程设计说明书
课程设计说明书
学生姓名:
学号:
学院:
班级:
题目:
校园安防系统
指导教师:
职称:
2015年7月17日
校园安防系统
摘要:
本设计为基于STC89C52单片机实现的红外检测兼密码锁智能家居防盗系统,本系统的硬件模块包括单片机主控制系统、人体热释感应模块、密码锁模块、显示模块、报警模块等模块。
热释红外感应模块,采用红外热释电处理芯片BISS0001专门处理芯片设计的人体热释红外检测模块,具有较高的灵敏度与较高的分辨度,通过检测的信号使用蜂鸣器与GSM手机终端通信功能报警。
密码门禁及报警模块部分采用了4×4矩阵键盘输入以及采用EEPROM芯片AT24C04作为掉电后可以存储密码,从而保证了系统的安全性与实用性。
关键词:
STC89C52单片机人体热释红外检测密码门禁GSM
前言
随着计算机的普及和信息技术的迅猛发展,智能校园安防警系统,系统的首要任务是根据住宅小区的类型、使用功能及防护风险等要求,为保障小区人身财产安全,本设计为红外检测兼密码锁智能家居防盗系统,主要包括单片机主控制系统、热释红外报警系统、密码门禁模块、数据存储模块等部分。
根据选择方案的需要,现分析各个方案的优劣性。
当遇到盗窃、火灾等各种险情的时候,该系统可以通过电话网络自动向相关部门发出语音求救信号,从而达到保护用户生命财产的目的。
2.系统硬件结构
2.1单片机最小系统模块
方案
(1):
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
方案
(2):
STC89C52是一个8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
综合比较上述两种方案,单片机最小系统模块应采用STC89C52。
本次设计中采用12MHZ的晶振,负载电容相应的选为30pf。
在晶振电路中主要用到了XTAL1和XTAL2两个引脚:
(1)XTAL1:
反向振荡放大器的输入及内部时钟电路工作电路的输
(2)XTAL2:
来自反向振荡器的输出
为了保证上电瞬间,RST脚的高电平能持续两个机器周期以上,一般选C3为10uf,R1为10K左右较好。
图1.1单片机最小系统图
2.2温度传感电路
2.2.1DS18B20介绍
本设计的测温元件采用DS18B20数字温度传感器。
DS18B20采集的数据为数字信号,可以直接发送至单片机进行处理。
DS18B20数字温度计提供9位温度读数,指示器件的温度。
信息经过单线界面送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线(和地)。
读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。
2.2.2DS18B20工作电路
本设计DS18B20与单片机的P3-3相连,采集到温度信号后,将数据传输给单片机当温度达到预先设定的上限值(本文的上限值是:
50℃),则LED红灯点亮,蜂鸣器报警,数码管显示当前的温度值。
图4.4DS18B20仿真图
2.3密码门禁系统模块
方案
(1):
采用Intel公司6264芯片,该芯片容量为8KB,是28引脚双列直插式芯片,采用CMOS工艺制造。
该芯片搭建电路,操作时序复杂,不适合作为单片机外部数据存储器。
方案
(2):
AT24C04是一个4K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
AT24C04有一个16字节页写缓冲器。
该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
它支持IC芯片使用简单,外部电路容易实现。
2.41DYP-ME003红外人体传感器
传感器使用DYP-ME003红外人体传感器,该传感器输出信号为高电平时有人入侵,为低电平时表示无人入侵。
因在仿真软件Proteus7Professional里没有DYP-ME003红外人体传感器,故使用按键代替。
2.5报警模块
普通单色发光二极管具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点。
但是发光二极管发光强度小,难以引起注意,用于报警功能。
2.5.1蜂鸣器
当单片机接收到超额温度信号或气体信号时,输出脚BELL输出高电平,Q1导通,致使蜂鸣器BELL得电工作,发出报警声。
如图4.9所示:
图4.9蜂鸣器报警电路
1.6液晶显示模块
方案
(1):
数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。
使数码管正常显示就得有驱动电路驱动相应的段码,数码管现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此设计应采用动态显示方式。
由于动态显示方式利用人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。
方案
(2):
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。
1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:
清屏、左移右移、光标显示。
而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。
综合比较上述两种方案,应采用1602液晶组成本设计的显示模块。
图4.12显示电路
3电路的设计
本设计为红外检测兼密码锁智能家居防盗系统,总共分为以下几个模块
2.1硬件总体框图间的构成框图如下图2.1所示:
图2防火防盗报警系统结构框图
3.1仿真电路系统电路图:
总结
随着计算机技术、网络技术和信息技术的发展,校园智能安防系统将向着数字化、集成化、和国产化发展,系统设备向智能化、数字化、模块化和网络化的方向发展。
同时随着红外线射频技术、微波精确定位技术、数字数据服务、无线通信、电子数据交换、识别技术、条码技术等发展,也必将在智能小区得到广泛应用,如用电子周边防越精确定位的同轴电缆电磁感应技术、通过颤噪效应的原理来精确定位的微波电缆.智能小区的安防系统将对人们的生活提供更安全、信息随身的设备,为人们的日常生活带来更大的便利。
参考文献
[1]鞠红.谈燃气报警系统的设计和应用[J],工程建设与设计,2005
[2]肖景和.<<实用报警电路300例>>.北京:
中国电力出版社,2005
[3]刘舒祺.施国梁.<<基于热释电红外传感器的报警系统>>.<<国外电子元器件>>.2005.3
[4]吴英才.林华清.热释电红外传感器在防盗系统中的应用.传感器技术,2002
[5]吕俊芳.潘军,陈巍.光电感烟火灾探测器的电路设计.航空计测技术,1999
[6]刘世良.潘一平.火灾多元复合探测技术的现状与发展.消防技术与产品信息,1998
[7]秦兆海.周鑫华.智能楼宇安全防范系统.清华大学出版社,北京交通大学出版社,2005
[8]王芳.马幼军,蒋国平.智能化住宅防盗防火报警系统设计[J].传感器技术,2002
[9]张福学.传感器应用及其电路精选.电子工业出版社,1992
[10]邓凯.智能化住宅安防系统的应用.冶金矿山设计与建设,2000
[11]张金泉.一种新型民用防火防盗报警器的研制.燕山大学学报,2000
附录:
源程序:
/***************writer:
shopping.w******************/
#include
#include
#include"18b20.h"
#defineucharunsignedchar
#definedelayNOP(){_nop_();_nop_();_nop_();_nop_();}
sbitLCD_RS=P2^0;
sbitLCD_RW=P2^1;
sbitLCD_EN=P2^2;
unsignedintuiTemp_Set=500;//用户设定的温度报警值50.0
unsignedintuiTemp_Get=0;//获得当前的温度值
unsignedcharucDis_Flag=0;
unsignedcharucTmep_Flag=0;
unsignedintuiTime_Hold=0;//显示切换时间
unsignedcharucKEY_Press_Flag=0;//按键按下的标志位
sbitLED_0=P1^5;
sbitLED_1=P1^6;
sbitLED_2=P1^7;
sbitLED_3=P3^7;
sbitLED_4=P3^6;
sbitBEEP=P3^5;
sbitKEY_REN=P1^0;
sbitKEY_YAN=P1^1;
sbitKEY_CE=P1^2;
sbitKEY_TEMP_SET_NEW=P1^3;
sbitKEY_TEMP_SET=P1^4;
ucharucKEY_DOWM_Time[5]={0};
ucharucKEY_SET=0;//温度设置
ucharReadTempFlag=0;
#defineKEY_Down_DO10//按键按下有效的时间长度
ucharcodeTemp_Disp_Title[]={"CurrentTemp:
"};
ucharCurrent_Temp_Display_Buffer[]={"TEMP:
"};
ucharcodeTemperature_Char[8]=
{
0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00
};
ucharcodedf_Table[]=
{
0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
};
ucharCurrentT=0;
voidDelayXus(unsignedintx)
{
uchari;
while(x--)
{
for(i=0;i<200;i++);
}
}
bitLCD_Busy_Check()
{
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
delayNOP();
result=(bit)(P0&0x80);
LCD_EN=0;
returnresult;
}
voidWrite_LCD_Command(ucharcmd)
{
while(LCD_Busy_Check());
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
_nop_();
_nop_();
P0=cmd;
delayNOP();
LCD_EN=1;
delayNOP();
LCD_EN=0;
}
voidWrite_LCD_Data(uchardat)
{
while(LCD_Busy_Check());
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delayNOP();
LCD_EN=1;
delayNOP();
LCD_EN=0;
}
voidLCD_Initialise()
{
Write_LCD_Command(0x01);
DelayXus(5);
Write_LCD_Command(0x38);
DelayXus(5);
Write_LCD_Command(0x0c);
DelayXus(5);
DelayXus(5);
}
voidSet_LCD_POS(ucharpos)
{
Write_LCD_Command(pos|0x80);
}
voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s)
{
if(y==0)
{
Write_LCD_Command(0x80+x);//表示第一行
}
else
{
Write_LCD_Command(0xC0+x);//表示第二行
}
while(*s)
{
Write_LCD_Data(*s);
s++;
}
}
voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData)
{
if(y==0)
{
Write_LCD_Command(0x80+x);
}
else
{
Write_LCD_Command(0xC0+x);
}
Write_LCD_Data(Data);
}
voidSHow_Num(unsignedcharx,unsignedchary,unsignedintData)
{
unsignedcharucDis[6],ucII=0;
ucDis[0]=Data/1000+0x30;
ucDis[1]=Data%1000/100+0x30;
ucDis[2]=Data%100/10+0x30;
ucDis[3]='.';
ucDis[4]=Data%10+0x30;
ucDis[5]='\0';
LCD_Write_String(x,y,ucDis);
}
voidSHOW_WARRY(void)
{
if(KEY_REN==0)//有人
{
ucKEY_DOWM_Time[0]++;
if(ucKEY_DOWM_Time[0]>KEY_Down_DO)
{
LED_0=0;
ucKEY_DOWM_Time[0]=5;
}
}
else
{
ucKEY_DOWM_Time[0]=0;
LED_0=1;
}
///////////////
if(KEY_YAN==0)//有烟
{
ucKEY_DOWM_Time[1]++;
if(ucKEY_DOWM_Time[1]>KEY_Down_DO)
{
LED_1=0;
ucKEY_DOWM_Time[1]=5;
}
}
else
{
ucKEY_DOWM_Time[1]=0;
LED_1=1;
}
///////////////温度报警
if(uiTemp_Set { LED_3=1; ucTmep_Flag=0; if(ucDis_Flag==0) { LCD_Write_String(0,1,"TEMPISSOHOT"); ucDis_Flag=0x01; BEEP=0; } } else { LED_1=1; ucTmep_Flag=0; BEEP=1; if(ucDis_Flag==0x01) { ucDis_Flag=0; LCD_Write_String(0,2,"TEMP_SET: .C"); SHow_Num(9uiTem); } } ////////////////// if(ucKEY_SET==0) { if(KEY_TEMP_SET_NEW==0) { ucKEY_DOWM_Time[2]++; if(ucKEY_DOWM_Time[2]>KEY_Down_DO) { ucKEY_SET=1; ucKEY_Press_Flag=1; ucKEY_DOWM_Time uiTime_Hold=0; if(uiTemp_Set<1250) { uiTemp_Set++; } if(ucDis_Flag==0x01) { ucDis_Flag=0x02; LCD_Write_String(0,1,"TEMP_SET: .C"); } SHow_Num(9,1,uiTemp_Set); } } else ucKEY_DOWM_Time[2]=0; ////////// if(KEY_TEMP_SET==0) { ucKEY_DOWM_Time[3]++; if(ucKEY_DOWM_Time[3]>KEY_Down_DO) { ucKEY_SET=1; ucKEY_Press_Flag=1; ucKEY_DOWM_Time[3]=0; uiTime_Hold=0; if(uiTemp_Set>0) { uiTemp_Set--; SHow_Num(9,1,uiTemp_Set); } } } else ucKEY_DOWM_Time[3]=0; } else { if((KEY_TEMP_SET_NEW==1)&&(KEY_TEMP_SET==1)) { ucKEY_SET=0; ucKEY_DOWM_Time[2]=0; ucKEY_DOWM_Time[3]=0; } } if(ucKEY_Press_Flag==1) { if(++uiTime_Hold>1000) { ucDis_Flag=0; uiTime_Hold=0; ucKEY_Press_Flag=0; } } ///////////////ucKEY_DOWM_Time /////////////// if(KEY_CE==0)//有车 { ucKEY_DOWM_Time[4]++; if(ucKEY_DOWM_Time[4]>KEY_Down_DO) { LED_4=0; ucKEY_DOWM_Time[4]=5; } } else { ucKEY_DOWM_Time[4]=0; LED_4=1; } } unsignedcharucKEY_Flag=0; voidInit_Timer0(void) { TMOD|=0x01;//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 //TH0=0x00;//给定初值 //TL0=0x00; EA=1;//总中断打开 ET0=1;//定时器中断打开 TR0=1;//定时器开关打开 } /*------------------------------------------------ 定时器中断子程序 ------------------------------------------------*/ voidTimer0_isr(void)interrupt1 { staticunsignedintnum; TH0=(65536-2000)/256;//重新赋值2ms TL0=(65536-2000)%256; num++; ucKEY_Flag=1; if(num==300)// { num=0; LED_3=~LED_3; ReadTempFlag=1;//读标志位置1 } //SHOW_WARRY(); } voidmain() { inttemp; floattemperature; LCD_Initialise(); LCD_Write_String(0,0,"TEMP_NEW: .C"); LCD_Write_String(0,1,"TEMP_SET: .C"); SHow_Num(9,1,uiTemp_Set); Init_Timer0(); BEEP=1; while (1) { if(ReadTempFlag==1) { ReadTempFlag=0; temp=ReadTemperature(); if(temp>=0) { temperature=(float)temp*0.0625; temperature*=10; uiTemp_Get=temperature; } DelayXus(100); SHow_Num(9,0,temperature); } //温度检测 if(ucKEY_Flag==1) { SHOW_WARRY(); ucKEY_Flag=0; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明书