- 16
- 0
- 约3.32千字
- 约 6页
- 2016-11-29 发布于重庆
- 举报
基于单片机的智能密码门系统设计报告
基
于
单
片
机
的
智
能
密
码
门
系
统
一、项目目的:为了既方便人们进出门也可以保证房间安全
二、项目原理及方案:此项目主要分为两部分:1、密码系统;2、感应门系统。
具体的输入密码环节是:用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则启动感应门系统,此时用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
具体的门感应情况是:输对密码,人推门而入之后,门在弹簧作用下关闭,此时光电开关感应到门后向单片机发出信号,然后单片机通过控制电机转动使门拴自动关闭。当人出门时首先门上的红外感应器感应到人之后向单片机发出指令,单片机控制电机使门拴打开。人拉开门出去后,门再次靠弹簧弹力关上,之后过程同上次门关闭过程。
三、所需器材:单片机,蜂鸣器,红外传感器,霍尔原件,电机,电阻,电容等器件。
四、各模块使用介绍
1.键盘部分
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
图3-4 按键操作面板示意图
2.显示部分
用1602液晶显示。
3.电机部分
用步进电机来控制门栓的打开与关闭。
4.感应部分
用到热释电红外传感器和霍尔传感器。
五、操作说明
人进入时,看到屏幕显示hello,先摁“进入”,屏幕显示“input please”,输入六位密码,然后摁下“确认”键,蜂鸣器响一秒钟,屏幕显示:“enter please”,此时即可推门进入。
人出来时,门栓会自动打开,人拉开门出去,而后门自动闭合,门栓自动关闭。
六、部分源程序
#include reg52.h
#define uint unsigned int#define uchar unsigned char#define KEY P3????? //键盘输入端口#define No_key 20??? //无按键时的返回值#define lcddata P2?? //1602的数据输入端口
sbit?? lcden= P1^2;sbit?? lcdrs= P1^0;sbit?? lcdrw= P1^1;sbit?? light= P1^3;sbit?? light1= P1^4;
uchar j ; //用来统计输入 个数的全局变量uchar aa; //用来在定时器中计数的 全局变量
uchar code table[]= Hello!;uchar code table1[]= OK!?????? ;uchar code table2[]=Enter please:?? ;uchar code key_table[16] = ????? { ?????? 1,2,3,10,??? 4,5,6,11,??? 7,8,9,12,??? 0,13,14,15????? };uchar password[]={2,0,1,0,9,3} ;?? //设定初始密码uchar save[6];???????? //保存输入的数据
uchar conflag ;?????????????????? //确认标志uchar lockflag;????? //锁键盘标志uchar startflag;???? //开始标志?? ???
void delay(uint z);??????????????????????? //延时子函数void wright_com(uchar com);?????????????? //写指令函数void wright_data(uchar date) ;????? //写数据函数void init();????????????????????????? //初始化void display_OK();??????? // 显示OKvoid delete();??????? //删除输入的最后一个数uchar keyscan() ;????? //带返回值的键盘扫描程序
void enter_code(uchar t);?????? //输入密码函数,把输入的数据存入数组中并在屏幕上显示相应的东西,void?? confirm();???? //确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,
void?? succeed_an()
原创力文档

文档评论(0)