#include<reg52.h>
#include <intrins.h>
#define INT8U unsigned char
#define Int166U unsigned int
INT8U Pre_KeyNo=16,KeyNo=16;
INT8U DSY_BUFFER[10]="";
INT8U UserPassword[7];
INT8U IIC_Password[7];
extern void Initialize_LCD();
extern void LCD_ShowString(INT8U,INT8U,INT8U*);
extern void IIC_Init();
extern INT8U Random_Read(INT8U,INT16U);
extern void Write_IIC(INT8U,INT16U,INT8U);
extern void delay_ms(INT16U x);
extern INT8U Keys_Scan();
void Beep();
sbit LED_OPEN=P2^7;
sbit BEEP=P3^7;
INT8U i;
void Beep()
{
INT8U i;for(i=0;i<100;i++){delay_ms(1);BEEP=~BEEP;}
BEEP=0;
}
void Clear_Pwd(){UserPassword[0]='\0';DSY_BUFFER[0]='\0';}
void Read_IIC_Pwd()
{
INT8U i=-1;
do{i++;IIC_Password[i]=Random_Read(0xA0,i);}
while(IIC_Password[i]!='\0'&&i<6);
if (IIC_Password[i]!='\0')IIC_Password[i]='\0';
}
void Write_IIC_Pwd()
{
INT8U i=0;
while(i<6)
{
Write_IIC(0xA0,i,UserPassword[i]);delay_ms(5);
if(UserPassword[i]=='\0')break;
i++;
}
if(UserPassword[i]!='\0')Write_IIC(0xA0,i,'\0');
}
void main()
{
INT8U i=0;
INT8U IS_Valid_User=0;
P0=0xFF;P1=0xFF;P2=0xFF;
delay_ms(10);
Initialize_LCD();
LCD_ShowString(0,0"Your Password...");
Read_IIC_Pwd();
while(1)
{
P1=0xF0;
if(P1!=0xF0)KeyNo=Keys_Scan();
switch(KeyNo)
{case 0;case 1;case 2;case 3;case 4; case 5; case 6; case 7;case 8; case 9;
if(i<=5)
{
if(i==0) LCD_ShowString(1,0," ");
UserPassword[i]=KeyNo+'0';
UserPassword[i+1]='\0';
DSY_BUFFER[i]='*';
DSY_BUFFER[i+]='\0';i++;
LCD_ShowString(1,0,DSY_BUFFER);
}
break;
case 10:
if(strcmp(UserPassword,IIC_Password)==0)
{ LED_OPEN=0;
Clear_Pwd();
LCD_ShowString(1,0,"ERROR ! ");
IS_Valld_User=1;
}
i=0;break;
case 11:
LED_OPEN=1;
Clear_Pwd();
LCD_ShowString(0,0"Your Password...");
LCD_ShowString(1,0" ");
i=0;IS_Valid_User=0;break;
case 12:
if(!IS_Valid_User)
LCD_ShowString(1,0,"No rights!");
else
{
i=0;
LCD_ShowString(0,0,"New Password:...");
LCD_ShowString(1,0" ");
Write_IIC_Pwd();delay_ms(5);Read_IIC_Pwd();
case 13:
if(!IS_Valid_User)
LCD_ShowString(1,0,"No rights!");
else
{
Write_IIC_Pwd();delay_ms(5);Read_IIC_Pwd();
i=0;
LCD_ShowString(0,0"Your Password...");
LCD_SHowString(1,0"Password Saved!");
}
break;
case 14:
i=0;Clear_Pwd();
LCD_ShowString(1,0," ");
}
Beep();delay_ms(100);P1=0xF0;
while (P1!=0xF0);
while (P1==0xF0);
}
}
#include <intrins.h>
#define INT8U unsigned char
#define Int166U unsigned int
INT8U Pre_KeyNo=16,KeyNo=16;
INT8U DSY_BUFFER[10]="";
INT8U UserPassword[7];
INT8U IIC_Password[7];
extern void Initialize_LCD();
extern void LCD_ShowString(INT8U,INT8U,INT8U*);
extern void IIC_Init();
extern INT8U Random_Read(INT8U,INT16U);
extern void Write_IIC(INT8U,INT16U,INT8U);
extern void delay_ms(INT16U x);
extern INT8U Keys_Scan();
void Beep();
sbit LED_OPEN=P2^7;
sbit BEEP=P3^7;
INT8U i;
void Beep()
{
INT8U i;for(i=0;i<100;i++){delay_ms(1);BEEP=~BEEP;}
BEEP=0;
}
void Clear_Pwd(){UserPassword[0]='\0';DSY_BUFFER[0]='\0';}
void Read_IIC_Pwd()
{
INT8U i=-1;
do{i++;IIC_Password[i]=Random_Read(0xA0,i);}
while(IIC_Password[i]!='\0'&&i<6);
if (IIC_Password[i]!='\0')IIC_Password[i]='\0';
}
void Write_IIC_Pwd()
{
INT8U i=0;
while(i<6)
{
Write_IIC(0xA0,i,UserPassword[i]);delay_ms(5);
if(UserPassword[i]=='\0')break;
i++;
}
if(UserPassword[i]!='\0')Write_IIC(0xA0,i,'\0');
}
void main()
{
INT8U i=0;
INT8U IS_Valid_User=0;
P0=0xFF;P1=0xFF;P2=0xFF;
delay_ms(10);
Initialize_LCD();
LCD_ShowString(0,0"Your Password...");
Read_IIC_Pwd();
while(1)
{
P1=0xF0;
if(P1!=0xF0)KeyNo=Keys_Scan();
switch(KeyNo)
{case 0;case 1;case 2;case 3;case 4; case 5; case 6; case 7;case 8; case 9;
if(i<=5)
{
if(i==0) LCD_ShowString(1,0," ");
UserPassword[i]=KeyNo+'0';
UserPassword[i+1]='\0';
DSY_BUFFER[i]='*';
DSY_BUFFER[i+]='\0';i++;
LCD_ShowString(1,0,DSY_BUFFER);
}
break;
case 10:
if(strcmp(UserPassword,IIC_Password)==0)
{ LED_OPEN=0;
Clear_Pwd();
LCD_ShowString(1,0,"ERROR ! ");
IS_Valld_User=1;
}
i=0;break;
case 11:
LED_OPEN=1;
Clear_Pwd();
LCD_ShowString(0,0"Your Password...");
LCD_ShowString(1,0" ");
i=0;IS_Valid_User=0;break;
case 12:
if(!IS_Valid_User)
LCD_ShowString(1,0,"No rights!");
else
{
i=0;
LCD_ShowString(0,0,"New Password:...");
LCD_ShowString(1,0" ");
Write_IIC_Pwd();delay_ms(5);Read_IIC_Pwd();
case 13:
if(!IS_Valid_User)
LCD_ShowString(1,0,"No rights!");
else
{
Write_IIC_Pwd();delay_ms(5);Read_IIC_Pwd();
i=0;
LCD_ShowString(0,0"Your Password...");
LCD_SHowString(1,0"Password Saved!");
}
break;
case 14:
i=0;Clear_Pwd();
LCD_ShowString(1,0," ");
}
Beep();delay_ms(100);P1=0xF0;
while (P1!=0xF0);
while (P1==0xF0);
}
}