基于单片机的红外电子密码锁程序设计思路

1 使用硬件

  • lcd1602
  • 矩阵键盘
  • 红外遥控
  • 24c02内存存储
  • 蜂鸣器
  • 电磁继电器(模拟锁开关)

2 主要参数

  1. lcd界面标识
  2. 管理员密码
  3. 开锁密码
  4. 输入密码次数

3 各硬件主要函数

LCD

1. 显示界面函数

void ShowPage(uchar page)//显示界面函数

参数为4个界面

  • 输入密码界面 pageInPass
  • 输入管理员密码界面 pageInAdmin
  • 设定密码界面 pageSetPass
  • 开锁成功界面 pageShowOpen

错误界面单独调用一个函数

void ShowError(uchar page,uchar mode)//调用错误界面,两种模式,0为一直显示,1为显示一会儿回复正常

2. lcd输入密码方式设置函数

uchar InputPassword(uchar x,uchar y,uchar num,uchar *dat,uchar mode)

按位输入密码(6位)
- x,y 为输入密码起始位置
- num为输入的数字
- *dat 为存储密码的数组
- mode 输入密码模式

  • 0 为输入的时候显示密码
  • 1 为输入的时候显示*号
  • 2 为输入的时候先显示密码再显示*号

3.按键函数

矩阵键盘扫描

uchar keyScan(void)     

矩阵键盘扫描,返回值为按下按键ID(编号)检测方式:通过行、列四次循环,找到按下的按键,通过按下按键所在行、列计算出按下按键ID

uchar GetKeyNum(uchar ID)   ;
uchar GetFunctionKey(uchar ID)  ;

从识别到的按键ID获得实际要使用的数字键和功能键
功能键分四种

  • 设置 开锁 关锁 清零

4.红外函数

uchar irKeyScan(void)

红外键盘扫描,从获取到的红外按键编码直接返回按键ID

5.24c02存储函数

void write_n_add(unsigned char * p,unsigned char address,unsigned char n);
void read_n_add(unsigned char * p,unsigned char address,unsigned char n);

读写密码函数

6.mian函数中的功能函数

void SwitchPage(uchar keyID)

选择显示界面函数,参数为之前的四个界面

uchar checkPass(uchar *Oldpass,uchar *Newpass)

按位校验密码函数,oldpass为旧密码,newpass为新密码 ,返回值1为密码正确,0为密码错误

4 程序主要逻辑

1.各硬件初始化
2.读取已设置密码
3.显示输入密码开始界面(初始界面)


4.读取各个键(数字键0-9,四个功能键)
5.使用设置键切换显示界面


6.1 当前在输入管理员密码界面且有数字按键输入
—–6.1.1 管理员密码正确→进入设置密码界面
—–6.1.2 管理员密码错误→显示密码错误→返回管理员密码界面
6.2 当前在设置密码界面且数字按键有输入
—–6.2.1 向内存写入新密码→回到输入密码界面(初始界面)
6.3 当前在输入密码界面且数字按键有输入
—–6.3.1 开始接收密码,输入6位密码后返回一个判断值1
6.4 当前在输入密码界面且开锁按键有输入
—–6.4.1 判断值为1(已输入6位密码)且密码正确→开锁成功界面;继电器开;错误计数清零
—–6.4.2 判断值为1且密码错误→密码错误界面;错误计数+1;蜂鸣器报警→一段时间后返回输入密码界面
————6.4.2.1 判断值为1且密码错误且错误次数=3→密码错误界面;蜂鸣器报警;不返回
—–6.4.3 判断值不为1→通过一个LED灯闪烁提示
6.5 开锁成功界面且闭锁按键有输入→返回输入密码界面;继电器关;密码位数清零
6.6 清零按键有输入→当前界面密码位数清零;返回当前界面

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文档的主要内容详细介绍的是使用51单片机设计的遥控红外指纹锁的程序和说明。   工作过程:上电后,1602上显示Selector mode(选择开锁方式)   有三种解锁方式选择 1》:按下矩阵键盘上的A,可以用矩阵键盘来进行解锁,1602上会显示“Please Enter PIN”(请输入密码),密码输入正确后蜂鸣器会提示并且显示”Welcome to here” 2s后接着显示,Selector mode(选择开锁方式) 1—1》:按下矩阵键盘上的B,则可以进行修改密码的操作,1602上会显示“Boss passwordd”(请输入管理员密码(835),),输入密码正确后会显示set new password(请设置新密码),设置完成后按D键确认退出并且显示“successfully set”(设置成功); 1—2》:按下举证键盘上的C:会清空当前输入密码,从新输入; 注(初始密码为123) (在输入密码开锁或设置新密码时,都可以按D退出键盘操作)   2》按下红外遥控上的CH键,可以用红外遥控来进行解锁,1602上会显示Infrared(红外),输入密码正确后蜂鸣器提示并且显示“Welcome to here” 2S后接着显示Selector mode(选择开锁方式) 2—1:》: 按下红外遥控上的CH—键,会清空当前输入密码,从新输入; 注(在输入密码开锁的过程中,可以按CH+键退出遥控操作)   3》按下矩阵键盘上的*号键,稍作等待指纹模块初始化,显示Please finger(按下手指)就可以使用指纹模块进行解锁,(录入指纹的操作是通过电脑和TTL接线板来完成的),指纹符合后蜂鸣器会提示并且显示Search success (扫描成功) ID is xx(您的ID是xx); 3—1》:”长按矩阵键盘上的#号键可以退出指纹解锁,并且会显示Selector mode(选择开锁方式); 注:指纹模块需接3.3V电源供电,不可接5V

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值