❶ 单片机密码锁怎么判断密码正确
假设你用的是最基础的51单片机,
首先你要知道你的密码是不是可以修改的,如果想设计成密码能修改的,要加上非易失存储器,就是掉电以后也能存储数据的,类似于24系列的存储器。如果只是4位密码的话,24C02完全足够了,也可以用一个18B20,用里面的两个非易失高低温存储字节保存,不过四位密码你要保存成BCD格式了。这个你自己斟酌了。
如果设计成不用修改密码的,那就在程序初始化的时候,用一个数组保存密码,然后依次判断输入的密码和你保存的密码就行了。给你写个大概的框框,你参考吧
不能修改密码的程序
code
uchar
password[4]={2,3,6,8};
//保存密码的数组
密码
2,3,6,8,
uchar
Getinput(void);//读取一次有效输入的值,按照你的实际硬件自己编写
main()
{
uchar
i;
uchar
input[4]={0,0,0,0};
for(i=0;i<4;i++)
{
input[i]=Getinput();//读取输入的密码
if(input[i]!=password[i])//如果密码输入错误
{
i=0;
break;//退出循环
}
}
if(3==i)
//判断是否4为密码都输入正确
{
i=0;
open();//这里是你的开锁函数
}
}
这只是简单的实现,你还要考虑很多细节问题,比如输入错误密码的次数,还有开锁与关锁的相关提示等。
❷ 51单片机密码锁原理
你的密码是通过按键和单片机直接连接来进行输入的吗?还是通过遥控之类的啊?如红外。
❸ 单片机密码程序
那密码怎么输入呢。。。矩阵键盘?
unsigned int finish_flag=0,i=0;
unsigned long int secret=0;
while(!finish_flag){
if(P0==0x04){i++; secret=10*secret+0;}
if(P0==0x05){i++; secret=10*secret+1;}
if(P0==0x06){i++; secret=10*secret+2;}
if(P0==0x07){i++; secret=10*secret+3;}
if(P0==0x14){i++; secret=10*secret+4;}
if(P0==0x15){i++; secret=10*secret+5;}
if(P0==0x16){i++; secret=10*secret+6;}
if(P0==0x17){i++; secret=10*secret+7;}
if(P0==0x24){i++; secret=10*secret+8;}
if(P0==0x25){i++; secret=10*secret+9;}
if(i==6){finish_flag=1;}
}//假设为4*4矩阵键盘输入,竖着的口为P0_0到P0_3,横着的为P0_4到P0_7
if(secret==123456){ //假设密码为123456
P1_0='1'";}//假设P1_0为LED