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

[精品]基于单片机的数字密码锁设计毕业论文设计(4)

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

附录A

系统主程序

#include\extern char waring_time_flag; uchar Passw_Right_Flag; 密码输入正确标志位 uchar Passw_right,Passw_wrong;

uchar Passw_Set_again; uchar Passw_Finish_Flag; uchar Pass_Save_Flag=1; uchar Clr_Screen_Flag=1;

void display_table() { data uchar k; write_com(0x80+1); for(k=0;k<12;k++) write_data(table[k]); }

void display_table1() { data uchar k; write_com(0x80+0x40+10); for(k=0;k<5;k++) write_data(table1[k]); }

void display_table2() 输入正确 { data uchar k; write_com(0x80+0x40+0); for(k=0;k<16;k++) write_data(table2[k]); }

void display_table3() 输入错误 { data uchar k; write_com(0x80+0x40+0); for(k=0;k<15;k++) write_data(table3[k]);

}

void display_table4() 错误警告 { uchar k; write_com(0x80+0x40+1); for(k=0;k<15;k++) write_data(table4[k]); }

void display_table5() 设置密码 { uchar k; write_com(0x01); write_com(0x80+1); for(k=0;k<13;k++) write_data(table5[k]); write_com(0x80+0x40); for(k=0;k<16;k++) write_data(tableempty[k]); }

void display_table6() 输入正确 { uchar k; write_com(0x80+0x40+0); for(k=0;k<16;k++) write_data(tableempty[k]); }

void display_table7() Set正确 { uchar k; write_com(0x80+0x40); for(k=0;k<16;k++) write_data(table6[k]); }

void Enter_password_try() { keynum=16; 初始化keynum keyscan(); 按键扫描 delay_us(3); if(keynum<10) {

write_com(0x80+0x40+1+address); write_data(0x30+keynum); address++; 输入8个数字 每次显示 password=password*10+keynum; if(address==8) { address=0; display_table1(); 确认sure? Passw_Enter_flag=1; 输入完成标志位置1 } } }

void Passw_save(long int p_s) { write_add(0x12,p_s16777216); 16777216 write_add(0x13,p_s77721665536); write_add(0x14,p_se536256); write_add(0x15,p_s%6); write_add(0x12,p_s1000000); write_add(0x13,p_s0000010000); write_add(0x14,p_s000100); write_add(0x15,p_s0); }

long int Passw_read(void) { long int save_num; uchar save_n1,save_n2,save_n3,save_n4; save_n1=read_add(0x12); save_n2=read_add(0x13); save_n3=read_add(0x14); save_n4=read_add(0x15); save_num=save_n1*16777216+save_n2*65536+save_n3*256+save_n4; return save_num; }

void Enter_password_memory()

{ keynum=16; 初始化keynum keyscan(); 按键扫描 delay_us(3); if(keynum>0&&keynum<9) { write_com(0x80+0x40+1+address); write_data(0x30+keynum); address++; 输入8个数字 每次显示 password_memory=password_memory*10+keynum; if(address==8) 密码输入完毕 { address=0; Passw_Set_again=1; 重新设置密码完成标志 display_table1(); Password_set_flag=0; } } }

void Init_All() { LCD_init(); Time_Init(); IIC_init(); }

void beep(int x){ while(x--) { bee=0; delay_ms(100); bee=1; delay_ms(100); } }

void beep_s(int x) { while(x--) { bee=0; delay_ms(1000); bee=1; }

}

void main() { Init_All(); while(1) { if(Pass_Save_Flag==1) { Passw_save(password_memory); Pass_Save_Flag=0; } if(Passw_Right_Flag==0&&Password_set_flag==0&&Passw_Finish_Flag==0) 不设置密码时检测输入密码 { Clr_Screen_Flag=0; display_table(); if(Passw_Enter_flag==0) { Enter_password_try(); 输入密码 } else if(Passw_Enter_flag==1) 密码输入完毕 { keyscan(); if(keynum==13) { password_memory=Passw_read();先读取初始密码,检查存储密码和输入是否一致 delay_us(2); if(password==password_memory) { display_table2(); 一致时显示table2[]={\ LED =0; LED灯亮 Passw_Finish_Flag=1; 密码输入完毕 Passw_Right_Flag=1; 密码输入正确 relay=0; beep_s(1); 密码输入正确蜂鸣器响1s TR0=0; 关闭定时器 } else { password_memory=0; password=0; 输入错误后 清零 以便判断下次输入 display_table3(); 显示table3[]={\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库[精品]基于单片机的数字密码锁设计毕业论文设计(4)在线全文阅读。

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