华南农业大学单片机课程设计智能家居.docx
- 文档编号:10656899
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:31
- 大小:269.10KB
华南农业大学单片机课程设计智能家居.docx
《华南农业大学单片机课程设计智能家居.docx》由会员分享,可在线阅读,更多相关《华南农业大学单片机课程设计智能家居.docx(31页珍藏版)》请在冰豆网上搜索。
华南农业大学单片机课程设计智能家居
单片机课程设计报告
智能家居报警系统设计
姓名:
班级:
学号:
指导老师:
王卫星、吴敏、姜晟
日期:
2015.12.27~2015.12.29
华南农业大学电子工程学院
摘要
二十一世纪是信息化的年代,在这样的大时代里,“智能”成为一种趋势。
无论日常用品,数码产品,抑或犯罪手法,都以一种“智能”的姿态闯入人类的生活当中。
而人类在享受“智能”带来的方便之时,也活在它所带来的各种隐患之中。
而智能犯罪带来的家居安全问题,也逐渐引起人们的高度关注。
为了解决此问题,本设计采用以单片机为控制核心,用LCD显示状态的密码锁模块为保护探测手段,并利用语音报警为阻吓方法,设计出应用范围较广,智能化水平较高的智能家居报警系统,对各种意欲破坏家居安全的行为给予本地震慑,并通过报警通知为及时制止犯罪提供足够时间。
关键词:
智能;家居安全报警系统;单片机控制
1.1设计方案比较............................................................1
1.2方案最终选择............................................................3
2系统分析.................................................................3
3电路设计与硬件分析.......................................................3
3.1电路设计................................................................4
3.2硬件分析...............................................................4
3.2.1密码锁键盘输入模块...................................................5
3.2.2AT24C02密码存储模块.................................................6
3.2.3LCD显示模块..........................................................6
4改进方案.................................................................8
附件1任务分配表及元件清单
附件2程序代码
1方案比较与选择
1.1设计方案比较
方案一
1单片机控制电路
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
且具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
2LCD显示模块
采用1602液晶模块,它的每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。
同时,能很方便的控制实现清屏、左移右移、光标显示等效果。
而且其显示的字符在下一条指令为到来之前不会改变,能够维持显示的字符并且占用的系统资源也少。
3报警模块
采用蜂鸣器和语音报警。
4下载模块
串品通信则是用USB转串口线。
方案二
1单片机控制电路
用AT89C52作为单片机控制电路,可反复擦写,并且其功能强大,能应用于较复杂的控制场合。
但AT89C52外围电路接线复杂;需要用并行编程器下载程序,并且每次烧写程序都需要握手操作,极不方便。
2密码锁键盘输入模块
通过判断用户输入的密码是否正确,三次错误就报警提示错误。
3LCD显示模块
采用利用发光二极管的特性组合而成的数码管,通过驱动电路驱动相应的段码,控制相应的二极管的状态显示相应的数字,其中静态显示方式只能显示单个数字,而动态显示方式因其扫描时间会占用大量的系统资源。
1.2方案最终选择
为实现本设计,处于各种现实因素如实用性、节能性以及可控性等方面因素的考量,结合上述对比,本小组最终决定采用方案一来完成各模块功能的实现,分别是:
STC89C52实现单片机控制模块,STC89C52单片机的外设键盘实现密码锁模块,1602液晶模块实现LCD模块,串口下载器实现下载模块以及蜂鸣器、喇叭和流水灯模块实现报警功能。
2系统分析
实现密码锁模块作为震慑犯罪的一道坚实防线,防止可疑人物接近以及阻止无关人员进入。
在第一道安全防线被突破后,通过语音报警系统发出警报,阻吓犯罪继续进行,为屋主采取阻止犯罪的行为提供足够时间。
其功能实现流程如图1所示。
图1程序执行流程框图
为实现此功能,本设计分为软件和硬件两部分,硬件电路方面主要由:
密码门禁系统模块(包括键盘控制与LCD控制显示电路)、单片机控制电路、报警器、语音报警模块、流水灯报警模块以及下载模块组成,各部分之间关系如图2所示。
图2模块关系图
3电路设计与硬件分析
3.1电路设计
为实现本组所设计的智能家居报警系统,电路图如图3所示,由密码锁模块、
LCD显示模块、报警模块、LED流水灯模块、通信下载模块和外围功能电路等功能模块组成。
图3原理图
3.2硬件分析
3.2.1密码锁键盘输入模块
电路使用4×4键盘非编码键盘进行密码输入。
键盘为8线,通过单片机P1口输入
单片机内。
行线接高电平,当没有按键按下时行线呈现高电平,当按键按下时,行线电平输出由列线控制。
使用扫描法逐列将列线置低电平并逐行扫面看有否行电平从高变低找出按下的键,并通过查表得出对应键的键值。
如图4所示。
图44X4键盘电路
3.2.2AT24C02密码存储模块
为了保存用户设置的密码,本系统使用AT24C02用来保存用户设置的密码,它的SCL、SDA端分别接单片机的P2.1、P2.0端,用于与单片机之间读写操作的数据传输;WP接低电平表示单片机可以对器件进行正常的读/写操作;E0、 E1、E2是器件地址输入端,都接低电平表示只有一个AT24C02被器件寻址。
用户设置的密码存放在AT24C02中,当需要更改或读取用户密码时,只需对AT24C02里的数据更改或读取,通过IIC总线写入及读取数据进行断电保存以及上电读取。
AT24C02储存密码电路如图3所示
3.2.3LCD显示模块
LCD显示模块用于显示系统状态,密码锁操作状态。
显示模块使用LCD1602,是由
液晶显示屏和其译码电路组成,能显示数字英文,两行显示,界面友好。
16个对外接口,8根数据线使用并行连接方式,接单片机P0口,3根控制线分别接单片机P2.0、P2.1、P2.2引脚,另外5根线用于电源、接地以及控制背光,分别接电源、接地和可调电阻。
如图5所示。
图5LCD显示电路
3.2.4报警模块
语音报警电路由ISD1760芯片、喇叭、麦克风和控制按钮组成,可进行语音的录入、擦除及播放,采用芯片的独立按钮模式。
按SW2按键时开始录音,引脚PLAYL出现由低电平到高电平,控制播放当前录音,持续的高电平可使其循环播放。
播放引脚与单片机的P2.2连接,当报警时,单片机的P2.2脚持续输出高电平,触发语音报警模块,使模块中预先录入的录音自动循环播放,实现语音报警。
如图6所示。
图6语音电路
3.2.5下载模块
使用USB转TTL模块,支持USB1.1或USB2.0通信;全面支持WIN98、WINME、WIN2000、WINXP、VISTA、WIN7等操作系统;采用USB口供电,板内带有500mA自恢复保险丝或保险电阻,保护电脑主板不被意外烧毁;在对芯片编程时可以使用目标系统本身电源,也可以使用编程器从USB口取电供给目标板,但应保证目标电流不大于500mA,以免不能正常编程;编程完成不影响目标板的程序运行;支持STC全系列芯片烧录;编程器提供3.3V与5V的电压输出接口;速度比并口编程更快更稳定,更方便笔记本电脑用户使用;采用进口原装芯片,能进行高速稳定编程。
如图7所示。
图7串口通信下载电路
3.2.6流水灯模块
流水灯报警模块由单片机和八个LED灯组成,八个LED灯是共阴的接法。
当密码输入三次错误时,单片机通过P3的八个引脚循环输出高电平,使流水灯循环闪烁实现报警。
如图8所示。
图8流水灯
4改进方案
由于课程设计时间有限,本组虽实现了一个较为完善的智能家居报警系统,但在其实用性和功能上仍有进步和完善的空间:
一、在实现了语音警报阻吓的基础上,增加摄像头录像功能。
语音报警被启动的时
候触发摄像头的开启,记录犯罪者的样貌,使其使用性大大增加。
一方面能增加该报警系统的阻吓度,另一方面能够将数据交予公安机关协助公安机关捉拿惯犯。
二、可以增加烟雾传感器,用以实现对火灾等突发情况的监控,为主人的生命和财产安全保驾护航。
5心得体会
回顾这次课程设计,至今我们收获慨颇多,自从拿到题目到完成整个编程,从理论到实践,在 整整一个多星期的日子里,可以学到很多很多的东西。
不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考能力。
刚开始,我们对整个设计都是云里雾里的,很多模块都没用过,甚至连用C语言写单片机程序还不熟悉。
通过上网查资料,一步步从小程序开始调试,我们逐渐明白了如何用C语言来编写单片机程序。
对于单片机外设,我们通过编写程序,学会了应用单片机的各个外设模块。
比如说矩阵键盘,IIC总线协议与AT04C02的结合。
这加深了我们对单片机IO口以及总线扩展的知识。
通过结合各个模块的综合使用,我们充分认识到了单片机系统设计的难处及克服方法。
此次的课程设计,让我们深深的认识到了单片机在生活中的应用用是很广泛的。
这次课程设计是对我们所学知识的一次综合运用,提高了我们的动手能力,也提高了我们小组对单片机的兴趣和信心。
SmartAlarmingSystemforSecurity
Abstract:
Twenty-firstCenturyistheeraofinformationtechnology,insuchabigtime,"intelligence"hasbecomeatrend.Regardlessofeverydaygoods,digitalproducts,orcriminalpractices,allwithakindof"intelligent"attitudeintothehumanlife.Whilehumanbeingsenjoytheconveniencebroughtby"intelligence",italsolivesinallkindsofhiddendangers.Thesmartcrimebringshomesecurityproblems,butalsograduallyattractedpeople'sattention.
Inordertosolvethisproblem,thisdesignusesamicrocontrollerasthecontrolcore,usingLCDdisplaystatusofthepasswordlockmodulefortheprotectionofdetectionmeans,andtheuseofvoicealarmasthedeterrentmethod,thedesignofawiderangeofapplications,intelligentlevelofintelligenthomealarmsystemforthevariouskindsofdesiretodestroythehomesecuritybehaviortogivelocalshockandalarmnotificationtostopthecrimeintimetoprovideenoughtime.
Keywords:
SmartAlarmingSystemforSecuritysinglechipmicro-computercontroller
附录1任务分配表及元件清单
姓名
任务分配
余昌振
编写程序、报告撰写
欧阳伟坚
报告撰写、程序调试
吴耀庭
报告撰写、电路焊接、接线
元件清单
矩阵键盘
1
LCD1602
1
M麦克风
1
喇叭
1
附录二程序
#include
#include
#include
#include
#include
#include
#include
#include
voidsingleinput(uintnum);
voidtotal_init();//总初始化
voidlock_process();//密码锁处理过程
/***********************************************************************/
voidmain()//主函数
{
total_init();
while
(1)
{
lock_process();
}
}
voidsingleinput(uintnum)//输入单个数字
{
if(i<=5)//密码限制在6位以内
{
Userpassword[i]=num;
DSY_BUFFER[i]='*';
Display_String(DSY_BUFFER,0xc0);
i++;
}
}
/**********************************************************************/
voidtotal_init()//总初始化
{
P3=0x00;
laba=0;
beep=1;
init();
init_lcd();
delayms(5);
aa=Recstring(0xa0,1,buffer,6);//先从EEPROM中接收数据,存入buffer缓存中,
delayms(5);
if(buffer[0]==0)//如果数组的首个元素为空,则表示EEPROM中未有数据
{
aa=Sendstring(0xa0,1,table2,6);//执行发送语句,将默认密码存入EEPROM中
delayms(5);
aa=Recstring(0xa0,1,buffer,6);//重新接收数据,存入buffer缓存中,
delayms(10);
}
P1=0x0f;
}
/**********************************************************************/
voidlock_process()//密码锁处理过程
{
if(P1!
=0x0f)
{
temp=Keys_Scan();
switch(temp)
{
case0:
//按D键开锁
if(i==6)
{
for(k=0;k<6;k++)
{
if(buffer[k]!
=(Userpassword[k]+48))
{
flag=0;
break;
}
else
flag=1;
}
if(flag==1)
{
flag=0;
i=0;
clear_password();
Display_String("OPENOK!
",0xc0);
IS_valid_user=1;
j=0;
}
else
{
j++;
//relay=1;//关闭LED
clear_password();
Display_String("ERROR!
Havetry",0xc0);
write_com(0xcf);
write_date(0x30+j);
IS_valid_user=0;
}
i=0;}
break;
case1:
//按#键保存新密码
if(!
IS_valid_user)
{
i=0;
Display_String("Norights!
",0xc0);
delayms(1000);
Display_String("InputPassword...",0x80);
Display_String("LockOK!
",0xc0);
}
else
{
i=0;
init();
delayms(50);
for(k=0;k<6;k++)
{
Userpassword[k]=Userpassword[k]+48;
}
aa=Sendstring(0xa0,1,Userpassword,6);
delayms(5);
aa=Recstring(0xa0,1,buffer,6);
delayms(5);
clear_password();
Display_String(table,0x00);
Display_String("PasswordSaved!
",0xc0);
delayms(1000);
Display_String("Dolockagian?
",0xc0);
}
break;
case2:
singleinput(0);break;//输出0
case3:
//按*键设置新密码
if(!
IS_valid_user)//如果是合法用户则提示输入新密码
{
i=0;
Display_String("Norights!
",0xc0);
delayms(1000);
Display_String("InputPassword...",0x80);
Display_String("LockOK!
",0xc0);
}
else
{
i=0;
Display_String("NewPassword:
",0x80);
Display_String("",0xc0);
}
break;
case4:
//按C键清空
i=0;
clear_password();
Display_String("",0xc0);
break;
case5:
singleinput(9);break;
case6:
singleinput(8);break;
case7:
singleinput(7);break;
case8:
//按B键删除一个数
if(i!
=0)
i--;
for(n=0;n
{
DSY_BUFFER1[n]='*';
}
Display_String(DSY_BUFFER1,0xc0);
break;
case9:
singleinput(6);break;
case10:
singleinput(5);break;
case11:
singleinput(4);break;
case12:
//上锁
clear_password();
Display_String(table,0x80);
Display_String("LockOK!
",0xc0);
i=0;
IS_valid_user=0;
break;
case13:
singleinput(3);break;
case14:
singleinput
(2);break;
case15:
singleinput
(1);break;
}
P1=0x0f;
}
if(j==3)//三次输入错误
{
Display_String("THIEF!
!
!
THIEF!
!
!
",0xc0);
j=0;
bell();
}
}
/***********************************END**************************************/
#ifndef__COMPACT_H__
#define__COMPACT_H__
#defineucharunsignedchar
#defineuintunsignedint
bitflag=0,aa;//用户自定义定时溢出标志位
ucharbuffer[6];
ucharDSY_BUFFER[16]="";//数组用于存放显示符号
ucharDSY_BUFFER1[16]="";//数组用于存放显示符号
ucharUserpassword[6]={0};//存放用户密码
ucharcodetable2[]="123456";//初始化密码
ucharcodetable[]="InputPassword...";
uchartemp,i=0,j=0,k=0,n;
ucharIS_valid_user;
#endif
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#definedelay4us()_n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华南 农业大学 单片机 课程设计 智能家居