77范文网 - 专业文章范例文档资料分享平台

51单片机课程设计 电子密码锁 - 图文(4)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

TwoAlam(); for(i=0;i<6;i++) {InputData[i]=0;} KEY=1;

//提示音

//关闭锁 //报警关

ALAM=1; operation=0; pass=0;

//操作标志位清零

//密码正确标志清零

ReInputEn=0; ErrorCont=0; CorrectCont=0; ReInputCont=0; open_led=1; s3_keydown=0; key_disable=0; N=0;}

//重置输入充许标志清零 //密码错误输入次数清零 //密码正确输入次数清零 //重置密码输入次数清零

void Ensure(void) {

unsigned char i,j;

RdFromROM(CurrentPassword,0,6);

//从24C02里读出存储密码

if(N==6)

{if(ReInputEn==0)

{for(i=0;i<6;)

{if(CurrentPassword[i]==InputData[i])

{i++;} else

{ErrorCont++;

if(ErrorCont==3) {write_1602com(er); else

{ TR0=1;

//开启定时 //锁定键盘

for(i=0;i<16;i++)

{write_1602dat(Error[i]); } do

Alam_KeyUnable(); while(1);}

//错误输入计数达三次时,报警并锁定键盘

//重置密码功能未开启

key_disable=1; pass=0; break;}}}

if(i==6)

{CorrectCont++;

if(CorrectCont==1) {write_1602com(er);

for(j=0;j<16;j++)

{write_1602dat(Locktrue[j]); TwoAlam();

}

//正确输入计数,当只有一次正确输入时,开锁,

//操作成功提示音

KEY=0; pass=1; TR0=1;

//开锁 //置正确标志位 //开启定时

open_led=0; for(j=0;j<6;j++)

//开锁指示灯亮

//将输入清除

{InputData[i]=0;}}

//当两次正确输入时,开启重置密码功能

else

{write_1602com(er);

for(j=0;j<16;j++)

{write_1602dat(SetNew[j]); TwoAlam(); ReInputEn=1; CorrectCont=0;}}

}

//操作成功提示

//允许重置密码输入

else

{if((InputData[0]==1)&&(InputData[1]==3)&&(InputData[2]==1)&&(InputData[3]==4)&&(InputData[4]==2)&&(Input

Data[5]==0))

{WrToROM(initpassword,0,6); else

{write_1602com(er);

for(j=0;j<16;j++)

{write_1602dat(Error[j]); } ThreeAlam(); pass=0;}}}

//错误提示音

write_1602com(er); for(j=0;j<16;j++)

{write_1602dat(initword[j]);} TwoAlam(); Delay400Ms(); TwoAlam(); N=0;}

//强制将初始密码写入24C02存储

else

{write_1602com(er); else

for(j=0;j<16;j++) {write_1602dat(Er_try[j]); ThreeAlam();}}

}

{write_1602com(er);

for(j=0;j<16;j++)

{write_1602dat(Error[j]); } ThreeAlam();

//错误提示音

pass=0;}

N=0;

operation=1;}

void main(void)

{ unsigned char KEY,NUM;

KEY=keynum(); if(KEY!=0) {if(key_disable==1)

{second=0;} else

{NUM=coding(KEY);

{switch(NUM)

{ case ('A'): ;

case ('B'):

break;

break;

unsigned char i,j; P1=0xFF; TMOD=0x11; TL0=0xB0; TH0=0x3C; EA=1; ET0=1; TR0=0; Delay400Ms();

//启动等待,等LCM讲入工作状态

lcd_init(); //LCD初始化

write_1602com(yi);//日历显示固定符号从第一行第0个位置之后开始显示 for(i=0;i<16;i++) {write_1602dat(name[i]);}

write_1602com(er);//时间显示固定符号写入位置,从第2个位置后开始显示 for(i=0;i<16;i++)

{write_1602dat(start_line[i]);} write_1602com(er+9); write_1602com(0x0f);

//设置光标位置 //设置光标为闪烁

Delay5Ms(); //延时片刻(可不要) N=0; while(1)

{if(key_disable==1)

else

ALAM=1;

//关报警

Alam_KeyUnable();

//初始化数据输入位数

;

case ('C'): ; break;

case ('D'): ResetPassword(); case ('*'): Cancel(); case ('#'): Ensure(); default: {

write_1602com(er); for(i=0;i<16;i++)

break; //重新设置密码 break; //取消当前输入

break;

//确认键,

{write_1602dat(Input[i]);}

operation=0; if(N<6) { OneAlam();

for(j=0;j<=N;j++) {write_1602com(er+6+j);

write_1602dat('*');}

InputData[N]=NUM;

void time0_int(void) interrupt 1 { TL0=0xB0; TH0=0x3C; //TR0=1; countt0++; if(countt0==20) { countt0=0; second++; if(pass==1) {if(second==1) { open_led=1; TR0=0;

TL0=0xB0; TH0=0x3C;

second=0;}}

else

{if(second==3) { TR0=0; second=0; key_disable=0; s3_keydown=0; TL0=0xB0; TH0=0x3C;}

else

TR0=1;}}}

N++;}

else

{N=6;

break;}}}}}} }}

//关指示灯

//关定时器

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库51单片机课程设计 电子密码锁 - 图文(4)在线全文阅读。

51单片机课程设计 电子密码锁 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/546215.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: