门禁电子密码锁说明书(3)

2020-02-22 12:09

开始

送位控码

刚启动? 否 是

送全1段码 送正常段码

缓冲区地址加1

用for循环通过变量是

i来判断

是否到最高位

否 是

返回

图6

4、 核对密码程序 代码如下: void open_lock() {

uint i,i1; uchar j;

if((y==2&&w==1)&&v<8) {

mima[v]=keyvalue; //开锁模式下把输入的密码逐个存入输入缓冲单元 jm_disp[v]=0x40;//界面显示‘-’ w=0; v=v+1; //指向下一位数码管 }

if((ent==1)&&((lock==6)||(lock==8)))//进行密码的核对 {

for(i=0;i

11

{ j=0x00; tmima[i]=At24c02Read(j); //从24C02读取用户密码存入读取缓冲单 //元 } else { j=0x06; tmima[i]=At24c02Read(j); //从24C02读取管理员密码存入读取缓冲 //单元 } j=j+1; } for(i=0;i

12

mima[i]=0x00; } } lock=0; }

ent=0;//密码没输完,确认标志重新清零 }

程序流程如图: 否 是 否 密码存入缓冲单元 是 否 错误提示 是 否 是

开始 密码输入完成? 是用户密码? 读取正确用户密码 读取正确管理员密码 核对用户密码 核对管理员密码 密码正确? 继电器工作(开门) 错误提示 密码正确? 进入管理员模式 返回 13

图7

核对密码程序先判断密码是否输入完成,用户密码6位,管理员密码8位,若输入完成则判断是用户密码还是管理员密码,然后从24C02读取所存的正确密码进行核对,若密码是6位则进行用户密码的核对,若是8位则进行管理员密码的核对,用户密码正确则继电器工作开门,管理员密码正确则进入管理员模式,管理员模式下可进行用户密码和管理员密码的修改,若密码输入错误则数码管提示错误信息‘E’,3s后返回常态。

5、 中断服务程序 代码如下:

void time0() interrupt 1 {

n1=n1-1; if(n1==0) //是否满1s? { n1=16; //n1重装初值 clk_value[2]=clk_value[2]+1; //秒单元加1 if(y==2) //开锁模式下长时间不输密码则开始计数 count=count+1; if(clk_value[2]==60) //满1分? { clk_value[2]=0; //秒单元清零 clk_value[1]=clk_value[1]+1; //分单元加1 if(clk_value[1]==60) //满1小时? { clk_value[1]=0; //分单元清零 clk_value[0]=clk_value[0]+1; //时单元加1 if(clk_value[0]==24) //满一天? { clk_value[0]=0; //时单元清零 } } } } }

T0计数中断一次时间还达不到1s,通过n1变量循环控制达到1s后再执行中断服务程序,秒单元加1,满60s后分单元又加1,满60小时时单元加1,满24小时时单元清零。 程序流程如图: 开始

14

否 是 否 是 否 否

图8

五、 系统资源分配 表1: 硬件资源分配 名称 P0口 P1口 P2.4口 P2.5、P2.6、P2.7口 P2.0口 P2.1口

表2:

满1秒? 秒单元加1 满1分? 分单元加1 满1小时? 是 时单元加1 满1天? 是 时单元清零 返回 功能 数码管段码控制 键盘接口 驱动继电器 138译码器输入端,输出端控制数码管位选 I2C通信24C02时钟线(SCL) I2C通信24C02数据线(SDA) 15


门禁电子密码锁说明书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:洛阳牡丹通讯股份有限公司生产实习方案2015

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: