#include "STC15Fxxxx.H"
#include "intrins.h"
#include "stdio.h"
#include "string.h"
#include "JYGDriver.h"
#include "w25qxx.h"
#include "keyboard.h"
#include "IIC.h"
unsigned char key = 20;
unsigned char i;
unsigned char Ypassword[7] = {0,0,0,0,0,0,0};
unsigned char password[7] = {0,0,0,0,0,0,0};
unsigned char superkey[7] = {6,6,6,6,6,6,6};
unsigned char mimacun[7] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06};
static unsigned int m = 0,tt = 0,m1 = 0;
unsigned char flag = 0,key_data = 0,flaga = 0;
unsigned char number = 0,number1 = 0,a = 0x20;
unsigned char sun = 0x20;
void UartInit(void)
{
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xFE;
TMOD &= 0x0F;
TL1 = 0xE0;
TH1 = 0xFE;
ET1 = 0;
TR1 = 1;
ES =1;
EA = 1;
REN=1;
}
void main()
{
UartInit();
Delaylong(500);
PortInit();
DS1302Reset();
lcd_int();//设置液晶显示器
LCD_Clr();//清屏
P6 = 0xff;
Delaylong(65500);
Print(0,46,kaiti,"你 好");
Print(2,15,yuanti," 欢 迎 使 用");
Print(4,10,songti,"蓝 牙 密 码 锁");
Delaylong(65500);
Delaylong(65500);
Delaylong(65500);
Delaylong(65500);
Delaylong(65500);
LCD_Clr();//清屏
P6 = 0xff;
Delaylong(65500);
Print(0,0,songti,"按下设定键进行设置");
Delaylong(65500);
for(i =0;i<6;i++)
Ypassword[i]=At24c02Read_2(mimacun[i]);
while(1)
{
while(1)
{
HEE:
if(a!=0x20)
goto ALL;
key = keyscan();
if(key!=20)
{
if(key=='O')
{
LCD_Clr();//清屏
Print(0,0,songti,"设定新密码");
Print(2,0,songti,"按下0~9进行输入密码");
LCD_Clr();//清屏
Print(0,0,songti,"输入新密码");
while(1)
{
if(a!=0x20)
goto ALL;
key = keyscan();
if(key!=20)
{
if(key=='Q')
{
while(P0!=0x0f); //松手检测
m--;
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
for(i =0;i<m;i++)
Print(2,i*10,kaiti,"*");
}
if(key=='O')
{
while(P0!=0x0f); //松手检测
m =0;
LCD_Clr();//清屏
Print(0,0,songti,"设定成功");
Delaylong(65500);
Delaylong(65500);
Delaylong(65500);
LCD_Clr();//清屏
P6 = 0xff;
Print(0,0,songti,"按下设定键进行设置");
break;
}
if((key>=0)&&(key<=9)&&(m<6))
{
while(P0!=0x0f); //松手检测
Print(0,0,songti,"输入新密码");
Print(2,m*10,kaiti,"*");
Ypassword[m] = key;
At24c02Write_2(mimacun[m],Ypassword[m]);
Delay3ms();
m++;
}
}
}
}
if(key=='R')
{
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
Print(4,0,songti,"按下0~9进行输入密码");
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
Delaylong(65500);
while(1)
{
if(a!=0x20)
goto ALL;
key = keyscan();
if(key!=20)
{
if(key=='Q')
{
while(P0!=0x0f); //松手检测
m1--;
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
for(i =0;i<m1;i++)
Print(2,i*10,kaiti,"*");
}
if(key=='O')
{
while(P0!=0x0f); //松手检测
for(i = 0;i<6;i++)
{
if(Ypassword[i]!=password[i])
{
flag = 10;
}
}
if(flag == 10)
{
flag = 0;
m1 =0;
number++;
LCD_Clr();//清屏
Print(0,0,songti,"密码错误");
Delaylong(65500);
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"请重新输入");
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
}
else
{
flag = 0;
m1 = 0;
LCD_Clr();//清屏
Print(0,0,songti,"密码正确");
Print(4,0,songti,"gongxi");
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"按下设定键进行设置");
break;
}
}
if((key>=0)&&(key<=9))
{
while(P0!=0x0f); //松手检测
Print(0,0,songti,"输入密码");
Print(2,m1*10,kaiti,"*");
password[m1] = key;
m1++;
}
}
if(number==3)
{
number = 0;
LCD_Clr();//清屏
Print(0,0,songti,"按下设定键进行设置");
break;
}
}
}
if(key=='P')
{
LCD_Clr();//清屏
Print(0,0,songti,"输入超级密码");
Print(4,0,songti,"按下0~9进行输入密码");
Delaylong(65500);
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
while(1)
{
if(a!=0x20)
goto ALL;
key = keyscan();
if(key!=20)
{
if(key=='Q')
{
while(P0!=0x0f); //松手检测
m1--;
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
for(i =0;i<m1;i++)
Print(2,i*10,kaiti,"*");
}
if(key=='O')
{
while(P0!=0x0f); //松手检测
for(i = 0;i<6;i++)
{
if(password[i]!=superkey[i])
break;
}
if(i>=6)
flag = 1;
else
flag = 0;
if(flag == 1)
{
flag = 0;
for(i =0;i<6;i++)
Ypassword[i]=0;
LCD_Clr();//清屏
Print(0,0,songti,"已还原密码");
break;
}
else
{
m1 =0;
number1++;
LCD_Clr();//清屏
Print(0,0,songti,"密码错误");
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"请重新输入");
Delaylong(65500);
LCD_Clr();//清屏
Print(0,0,songti,"输入密码");
}
}
if((key>=0)&&(key<=9)&&(m<6))
{
while(P0!=0x0f); //松手检测
Print(0,0,songti,"输入密码");
Print(2,m1*10,kaiti,"*");
password[m1] = key;
m1++;
}
}
if(number1==3)
{
number1 = 0;
LCD_Clr();//清屏
Print(0,0,songti,"按下设定键进行设置");
break;
}
}
}
}
}
while(1)
{
ALL:
sun = a;
key = keyscan();
if(key=='B')
goto HEE;
if(sun!=0x20)
{
if(sun==0x11)
{
LCD_Clr();//清屏
Print(0,0,songti,"设定新密码");
Print(2,0,songti,"按下0~9进行输入密码");
LCD_Clr();//清屏
Print(0,0,songti,"输入新密码");