代码中有一个此处改密码,更改那个密码数字就可以了。
#include <reg52.h>
sbit lowlight=P1^0;
sbit highsounder=P1^7;
void delay(unsigned int x,unsigned int y)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<y;j++);
}
unsigned char quansaomiao()
{
unsigned char x;
P3=0xf0;
delay(1,10);
x=P3;
x=0xf0 & ~x;
return x;
}
unsigned int hangsaomiao()
{
unsigned char x,y=0xfe;
unsigned int i,j=0,k=0;
for(i=0;i<4;i++)
{
P3=y;
x=P3;
x=y & ~x;
if(x==0)
y=y<<1 | 0x01;
else
{
if(x==0x10)
k=0;
else if(x==0x20)
k=1;
else k=2;
while(1)
{
P3=0xf0;
delay(1,50);
x=P3;
x=0xf0 & ~x;
if(x==0)
{
x=1;
break;
}
}
break;
}
j++;
}
j=3*j+k;
return j;
}
void display(unsigned int j)
{
unsigned char x,a[16]={0x3F, 0x06, 0x5B, 0x4F,
0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x3F, 0x71};
unsigned int i=0;
P2=0xfe;
P0=0x73;
delay(1,50);
P2=0xfd;;
P0=0x79;
delay(1,50);
x=0xfd;
for(i=0;i<j;i++)
{
x=x<<1 | 0x01;
P2=x;
P0=0x40;
delay(1,50);
}
}
void main()
{
unsigned char k;
unsigned int j=0,i=0,n=0,m=0,b=0,a[6]={0,0,0,0,0,0};
highsounder=0;
lowlight=1;
while(1)
{
display(m);
k=quansaomiao();
if(k)
{
j=hangsaomiao();
if(j!=11)
{
if(j!=10)
{
if(m!=6)
{
a[m]=j;
m++;
}
else
{
a[m]=j;
}
}
else
{
if(m!=0)
m--;
}
}
else
{
P2=0xff;
if(a[0]==4&&a[1]==1&&a[2]==0&&a[3]==2&&a[4]==1&&a[5]==8)//此处改密码,原密码是410218.
{
lowlight=0;
delay(1000,125);
lowlight=1;
m=0;
a[0]=0;
a[1]=0;
a[2]=0;
a[3]=0;
a[4]=0;
a[5]=0;
}
else
{
for(i=0;i<3;i++)
{
highsounder=1;
delay(500,100);
highsounder=0;
delay(500,100);
m=0;
a[0]=0;
a[1]=0;
a[2]=0;
a[3]=0;
a[4]=0;
a[5]=0;
}
}
}
}
}
}