多功能电子密码锁设计报告(6)

2019-01-12 15:04

/************************************** **函数名称:codein

**函数功能:完成密码输入,并判断密码是否正确 **入口参数:无 **出口参数:无

***************************************/ void codein() {

uchar t=0; write_com(0x80+0x40+0x02);//重新设置LCD数据地址指针

for(t=0;t<6;t++) {

temp1=keyscan();

while(temp1==no_key)//若相等则此时没有键按下

{ P1=0xdf;//判断是否要删除输入的密码

if(enter==0) {

delay(5);

if(enter==0) { write_com(0x80+0x41+t); //确定删除对象 write_date(' '); //显示空格即为删除 t--; } while(!enter);//判断按键是否释放

delay(5); while(!enter);

} // P1=0xff

temp1=keyscan();//继续扫描按键直至有键按下 }

table5[t]=temp1;//实时保存输入密码值 write_com(0x80+0x41+t); //重新设置数据地址指针 write_date('*');//LCD显示“******”

delay(5); jz=20; }

t=0;

for(t=0;t<6;t++) {

if(table5[t]!=table0[t])//对数组中的内容进行逐一比较,一旦有数据不对马上退出循环

{

break; } }

if(t==6)//要是条件退出的话说明六个数全对密码 {

conflag=1; // 进行标志密码正确 } }

/************************************** **函数名称:codeout

**函数功能:根据密码输入正确与否作出相应的反应 **入口参数:无 **出口参数:无

***************************************/ void codeout() {

uchar t;

if(conflag) {

t=0;

write_com(0x01);//显示清屏:数据指针、所有显示清0 write_com(0x80+0x07);//设置数据地址指针

for(t=0;t<3;t++)

{ write_date(table4[t]);//LCD显示“OK!”

delay(5); }

key=0;

while(1); }

if(!conflag) {

keyflag--;

t=0;

write_com(0x01);//显示清屏:数据指针、所有显示清0

write_com(0x80+0x05);//设置数据地址指针 for(t=0;t<5;t++)

{ write_date(table6[t]);//LCD显示“ERRO!”

delay(5);

}

write_com(0x01);//显示清屏:数据指针、所有显示清0 write_com(0x80+0x02);//设置数据地址指针 for(t=0;t<12;t++)

{

write_date(table7[t]);//LCD显示“Enter again:” delay(5); }

}

}

/************************************** **函数名称:codeen

**函数功能:当密码输入错误次数达到3次时,要按下解锁键,输入万能密码,此函数能判断万能密码正确与否并做出相应反应 **入口参数:无 **出口参数:无

***************************************/ void codeen() {

uchar t=0; write_com(0x80+0x40+0x02);//重新设置LCD数据地址指针 for(t=0;t<6;t++) { temp1=keyscan();

while(temp1==no_key)//若相等则此时没有键按下

{

//P1=0xdf; P1=0<<5|1<<0|1<<1|1<<2|1<<3|1<<4|1<<6|1<<7; if(enter==0) {

delay(5);

if(enter==0)

{ write_com(0x80+0x41+t); //确定删除对象 write_date(' '); //显示空格即为删除 t--;

} while(!enter);//判断按键是否释放

delay(5); while(!enter);

} P1=0xff; temp1=keyscan();//继续扫描按键直至有键按下

}

table5[t]=temp1;//实时保存输入密码值 write_com(0x80+0x41+t); //重新设置数据地址指针 write_date('*');//LCD显示“******”

delay(5); }

jz=20;

t=0;

for(t=0;t<6;t++)

{

if(table5[t]!=table9[t])//对数组中的内容进行逐一比较,一旦有数据不对马上退出循环 { break; }

}

if(t==6)//要是条件退出的话说明六个数全对密码

{

t=0; write_com(0x01);//显示清屏:数据指针、所有显示清0

write_com(0x80+0x03);//设置数据地址指针 for(t=0;t<9;t++) {

write_date(table10[t]);//LCD显示“UNLOCKED!”

delay(5); }

while(1) key=0; } else

{

t=0; write_com(0x01);//显示清屏:数据指针、所有显示清0 write_com(0x80+0x03);//设置数据地址指针

for(t=0;t<11;t++) { write_date(table11[t]);//LCD显示“Can't open!”

delay(5); } key=1;

while(1)

}

}

void main() {

uchar i=0; uchar j=0; init();

while(keyflag) {

codein(); }

codeout();

write_com(0x01);//显示清屏:数据指针、所有显示清0 write_com(0x80+0x04);//设置数据地址指针 for(i=0;i<7;i++) { write_date(table8[i]);//LCD显示“LOCKED!”

delay(5);

} {

while(1)

P1=0xbf; //判断解锁键是否按下 if(enter==0) {

delay(5); if(enter==0) {

write_com(0x01);//显示清屏:数据指针、所有显示清0

write_com(0x80+0x02);//设置数据地址指针 for(i=0;i<13;i++) { write_date(table3[i]);//LCD显示“Seeting code:”

delay(5);

} } while(!enter);//判断按键是否释放


多功能电子密码锁设计报告(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:产后第一次来月经的三大困惑

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: