




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西民大课程设计报告 题目:实用密码锁设计 班级:10电子信息工程 学号:110263010 姓名: 指导老师:李 起始日期:2013.2.282012.3.15一、系统功能1、使用4X4矩阵键盘作为密码的输入方法,输入6位数字密码,密码对则声光显示正确并驱动继电器导通吸合3秒,密码错误则给三次机会,每次错误都给出声光提示,三次都错的,封锁键盘1分钟,防止密码恶意猜测。2、输入密码期间允许删除输错的密码。输入完6位密码就自动比对。3、允许用户通过特殊的按键方式(输入6位的超级密码)进入系统设置状态,修改密码锁的密码和封锁键盘时间,并能断电保存。4、键盘被按下30秒内没有进一步操作的,应该退回初始等待输入密码状态。二、硬件设计1、系统构成框图 4x4键盘输入密码,LCD1602 显示输入的数值,在从AT24C02调出原始密码,然后与4x4矩阵键盘输入的数比较,相同而且在规定次数之内则驱动继电器,不然蜂鸣器报警。密码输入正确后若再次输入一系列的数字(超级密码),与超级密码相同,则可以修改密码或锁键盘的时间,新密码和锁键盘的时间存入AT24C02中。 若输入密码错误超过3次,或输入新密码不相同3次,蜂鸣器报警。1234 56789取消0确定 4x4键盘的按键分布 硬件电路图单片机的P0.0P0.7接LCD液晶显示屏 P1.0P1.7接4X4矩阵键盘的8个口 P2.0接蜂鸣器,P2.1接继电器,P2.2接24C02-SDA ,P2.3接24C02-SCL P2.6 接LCD-RS ,P2.7接LCD-EN,一个蜂鸣器功能是当用户输入密码错误的次数超过了3次,鸣笛以示报警。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装。 三、软件设计主程序 初始化 从24c02调密码 扫描键盘 状态0 Y 待机状态函数 zt=0? N 状态1 Y 密码输入处理函数 zt=1? N 状态2 Y 密码修改函数 zt=2? N 状态3 Y 锁键盘处理函数 zt=3? N 扫描键盘,看是否有键按下,没有键按下,处于待机状态,通过判断变量zt的数值来决定调用哪个函数。在待机状态时,如果有键按下,变量xiugai=0,则为状态1;如果有键按下,变量tong=1,则为状态2;密码输入处理函数 密码比较 N 密码正确 N 错误次数3? Y 报警且锁 键盘zt=3Y 比较与 超级密码 开锁函数 与超级密码 N 比较正确? 修改密码或时 时 zt=2 返回 输入密码且在输入次数内密码正确则开锁,如果密码错误超过3次,则锁键盘1分钟且报警zt=3如果输入密码正确后,再次输入一系列的数与超级密码比较,相同则可以修改密码或时间密码修改函数 (new=1) 输入两次新密码 N Y密码相同? N 不同次数3? 报警且锁 键盘zt=3 存入24c02中返回输入两次新密码,然后比较,看是否相同,相同则存入24c02中,如果不同,可以再次输入要修改的新密码;如果输入两次新密码不相同的次数超过了3次则报警锁键盘 zt=3时间修改函数(new=3) 输入调整锁键盘的时间存入24c02中返回输入锁键盘的时间,然后按下确定键,存入24c02中。4、 总结在课程设计的过程中,没有很好的完成老师的基本要求,在修改新密码中,在输入第六位密码时,想删掉时,删到了第一位的密码去了,是因为数组指针在第六位时,指针指向第一位了,到现在为止,没有想出方法解决。硬件知识得到了巩固,许多模糊的知识也渐渐的清晰了。附录源程序:#include#include #include#include#includesbit relay=P21;sbit beepp=P20;unsigned char password=0,0,0,0,0,0; /存入原始密码unsigned char super1=6,5,4,3,2,1; /修改密码的超级密码unsigned char super2=1,1,1,1,1,1; /修改时间的超级密码unsigned char passwordtest=0,0,0,0,0,0 ; / 存输入时的数值unsigned char newone=0,0,0,0,0,0 ; /存第一次输入的新密码unsigned char newtwo=0,0,0,0,0,0 ; /存第二次输入的新密码unsigned int fen=0,0,0; / 存锁键盘的时间unsigned char xiugai=0; /区分是zt=1,还是zt=2unsigned char tong=0;unsigned char chang=0; /区分输入密码是初始密码 还是超级密码unsigned char new=0; /控制在修改密码时,是第一次输入密码,还是第二 /次输入密码,还是修改锁键盘的时间unsigned char errotime=0; /密码输入错误的次数unsigned char erronew=0; /重新输入新密码,2次新密码不相同的次数unsigned int xms; /锁键盘的时间的变量unsigned char zt=0; unsigned char q=0; /第一次输入的新密码时的指针变量unsigned char p=0; /第二次输入的新密码时的指针变量unsigned char i=0;unsigned char n=0;unsigned int s=0; /定时所用的变量/*void daiji(); /先声明待机状态函数void mima_shuru();/先声明密码输入处理函数void mima_suop();/先声明锁键盘处理函数void mima_xiugai();/先声明密码修改函数void clok_key(uint xms) ; /延时子函数 xms=1时ms=10s void set_passw(); /设置新密码和锁键盘的时间void new_cmp(); /两次新密码比较void psw_cmp(); /输入密码比较void sure_time(); /确定调整时间void tiao_shi();/ 设置调整时间void sound_bao(); /报警声void erro_sound(); /密码错误,提醒声光void open_relay(); /开继电器/*/-主函数-void main(void) unsigned char z=0; unsigned char zz=0; EA=1; ET0=1; TMOD=0x01;TH0=0x4c;TL0=0x00;TR0=1;/write_add_24c02(1,9);/delay_lcd(100); /write_add_24c02(2,9);/delay_lcd(100); /write_add_24c02(3,9);/delay_lcd(100); /write_add_24c02(4,9);/delay_lcd(100); /write_add_24c02(5,9);/delay_lcd(100); /write_add_24c02(6,9);/delay_lcd(100);/write_add_24c02(7,60); / delay_lcd(100); lcd_int(); lcd_write_com(0x01); lcd_locate(1,1); lcd_string(welcom!); lcd_locate(2,1); lcd_string(2013 3 15); delay_lcd(10000); for(z=0;z=0&key=9) if(i=0) disp_input(); if(i=0&key=9) set_passw(); if(key=11) q-; if(new=1) disp_one(); if(new=2) disp_two(); if(key=10) if(new=2) new_cmp(); /两次新密码比较 if(new=3) sure_time();/ 确定调整时间 /-=-锁屏处理函数-void mima_suop() sound_bao(); errotime=0;xiugai=0;tong=0; TR0=0; disp_clok(); clok_key(xms); disp_open(); TR0=1; zt=0;/*/-输入密码比较-void psw_cmp()unsigned char j,m; bit true=1;bit sure1=1;bit sure2=1; for(j=0;j6;j+) true=true&(passwordj=passwordtestj); if(true=1) errotime=0;chang=1;zt=0;i=0;disp_cmp();open_relay();if(true=0) i=0;zt=0; errotime+;disp_erro();erro_sound(); if(errotime=3) zt=3; /错误超过3次 if(chang=1) for(m=0;m6;m+) sure1=sure1&(passwordtestm=super1m);/判断超级密码for(m=0;m6;m+) sure2=sure2&(passwordtestm=super2m);/判断超级密码if(sure1=1) new=1;errotime=0;zt=2; xiugai=1;tong=1;chang=0;key=88;disp_super();/ 是超级密码 / zt=2if(sure2=1) new=3;errotime=0;zt=2; xiugai=1;tong=1;chang=0;key=88;disp_super();/ 是超级密码 /zt=2if(sure1=0&sure2=0) chang=0;/-erro_sound()密码输入错误时发出声音提醒-void erro_sound()unsigned char nn=0; for(nn=0;nn5;nn+) beepp=0;P0=0x00;delay_lcd(1000);beepp=1;P0=0xff; /-开和关继电器-void open_relay() relay=0;delay_lcd(3000);relay=1;/-设置新密码和锁键盘的时间-void set_passw() if(new=1) /第一次输入密码 if(q=0) lcd_write_com(0x01);lcd_locate(1,1);lcd_string(one:);delay_lcd(9000); if(key!=88) if(q6) newoneq=key;disp_psone();q+; if(q=6) new=2;key=88;q=0; if(new=2) /第二次输入密码 lcd_locate(2,1);lcd_string(two:); if(key!=88) if(p6) newtwoq=key;disp_pstwo();q+; if(p=6) key=88;q=0; if(new=3) /输入调整时间 if(key!=88)zt=2;tiao_shi();/-两次新密码比较-void new_cmp()unsigned char same=1,t=0,p=0; q=0;p=0; for(t=0;t6;t+) same=same&(newonet=newtwot ); if(same=0) new=1;zt=2;xiugai=1;tong=1;erronew+; /两次密码比较错误 次数加1 disp_cmperro(); if(erronew=3) zt=3;xiugai=0;tong=0; disp_changerro();/新密码输入3次都不能相同,则返回 /zt=0 if(same=1) new=0;zt=0;xiugai=0;tong=0;disp_cmpsame(); for(p=0;p6;p+)/相同,则存入数组中和24c02中 passwordp=newonep; write_add_24c02(p+1,newonep); delay_lcd(100); /-调整-锁键盘的时间-void tiao_shi() if(i=0) lcd_write_com(0x01); lcd_locate(1,1); lcd_string(tiao shi:); delay_lcd(7000); if(i3) feni=key;i+;lcd_locate(2,i+1);lcd_1_char(key); delay_lcd(7000); /-确定调整时间-void sure_time()lcd_write_com(0x01);lcd_locate(1,1); lcd_string(tiao shi ok);delay_lcd(7000); if(i=3) xms=fen0*100+fen1*10+f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 局部解剖学模拟题库含答案1
- 沉浸式花园施工方案
- 护理药物学中职试卷题库及答案
- 曲靖基坑支护施工方案
- 施工方案的配合工作
- 住宅明沟施工方案
- 2025年心电监测技术在智能可穿戴设备中的创新应用与挑战应对
- 森林观鸟旅游创新创业项目商业计划书
- 工业冷却塔能效提升创新创业项目商业计划书
- 油料作物新型保鲜技术创新创业项目商业计划书
- T/CAPE 12004-2022草酸二甲酯加氢制备乙二醇催化剂
- 低压电工安全培训
- DB44-T 2452-2023 高速公路服务设施建设规模设计规范
- 商业商场保洁合同协议
- 岩移观测施工方案
- 2025-2030中国汽车减震器市场战略规划及竞争力策略分析研究报告
- 2025济南市厂房租赁合同
- 矿山工程企业制定与实施新质生产力战略研究报告
- 麻精药品管理培训
- 吹灰器维护考试题及答案
- 常见病护理常规
评论
0/150
提交评论