赞
踩
电子密码锁系统使用STM32单片机主控,系统内使用按键可以进行重置密码、设置密码、密码开锁以及密码错误提醒和密码存储等功能。
1. 进入系统可以直接重置密码为000000
2.此时输入密码000000并点击确认就可以开锁,显示屏提示成功
3. 密码输入错误则不能开锁且还会显示屏端提醒,当密码输入错误次数为3次时会提示等待
4.点击设置按键开始重新设置密码,输入合适密码并点击确认就可以设置完毕,输入的密码会保存到EEPROM内,即使仿真重开密码也不会重置
5.输入重新设置好的密码后就能直接控制开锁
6. 此时再输入000000后则提示密码错误
- #include <main.h>
- //
- u8 Key;//按键检测
- u8 pass;//密码是否正确标志
- u8 passflag=0;//确认按键标志
- u8 error=0;//错误次数
- u8 enterflag=0;//输入数量标志
- u8 num=0;//键盘数字
- u8 set=0;
- u8 r=1;
- u8 password[6] ={1,2,3,4,5,6,};//正确密码
- //u8 enter[6] ={1,2,3,4,5,6};//输入的密码
- u8 enter[6];
-
- //
-
-
- //
- void Init(void);
- void Test(void);
- void entpswd(void);
- void setentpswd(void);
- void pswdconfirm(void);
- //
-
-
- int main(void)
- {
-
- Init();
- Test();
- while(1)
- {
- KeyXY_Scan(&Key);
-
- if(r==1)
- {
- for(u8 i=0;i<7;i++)//加载密码
- {
- password[i]=AT24CXX_ReadOneByte(i);
- }
- r=0;
- }
-
- if(Key==4)//重置
- {
- for(u8 i=0;i<7;i++)
- {
- AT24CXX_WriteOneByte(i,0);
- }
- r=1;
- }
-
- if(Key==16)
- {
- set++;
- if(set>1) set=0;
- Key=0;
- }
-
- entpswd();
-
- if(set==1)
- {
- Lcd1602_Write_String(0xcd,3,(u8*)"set");
-
-
- if(Key==15&&set==1&&enterflag==6)
- {
- for(u8 i=0;i<7;i++)//保存
- {
- AT24CXX_WriteOneByte(i,enter[i]);
- }
- Lcd1602_Write_String(0xc0,6,(u8*)"set ok");
-
- Lcd1602_Write_String(0xc0,6,(u8*)" ");
-
- Key=0;set=0;enterflag=0;r=1;
- }
- }
- else if(set==0)
- {
- Lcd1602_Write_String(0xcd,3,(u8*)" ");
- pswdconfirm();//输入密码 确认
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。