1 / 22
文档名称:

单片机密码锁设计.docx

格式:docx   大小:110KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机密码锁设计.docx

上传人:doc2088 2017/1/10 文件大小:110 KB

下载得到文件列表

单片机密码锁设计.docx

文档介绍

文档介绍:这款基于 51 单片机的电子密码锁系统, 单片机用 STC89C52RC 单片机,电路简单,制作过程中不需要进行调试, 支持密码掉电保存功能!密码储存于单片机内部自带的的 EEPROM 中,不需要外置 AT24C01 保存密码,是学****电子密码锁比较好的教学试验系统,主要功能如下: 1、 1602 液晶菜单显示。 2、6 位密码,密码可重置,重置密码时,先输入原始密密,正确后输入新密码,再交输入新密码,两次输入的密码一致辞时, 密码修改成功。***时, 密码通过键盘输入, 若密码正确, 则将锁打开, 诺密码不正确时, 无法***,密码输入错误三次时,蜂鸣器报警并且锁定键盘, 10 分钟。 3 、支持掉电保存密码功能。单片机中的密码是储存于单片内部的 EEPROM 中,在密码锁系统断电时, 储存在密码锁系统中的密码不会丢失。 4 、密码锁系统采用 5V 继电器模拟***过程。 5 、输入的正确时,继电器吸合 2-3 秒,***指示灯亮 2-3 秒,模拟***。 6 、密码错误报警且有错误提示(显示 Error) 。 7 、密码正确***指示。 8、 4X4 矩阵键盘输入。 9 、随时可修改密码存储,支持掉电保存密码功能,功能更为实用。 10、密码可以由用户自己修改设定( 只支持 6 位密码), 锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。源程序如下:1. #include<> 2. #define uint unsigned int 3. #define uchar unsigned char 4. void key_scan(); 5. uchar count0,count1,count3,num,n=0,temp,a,j,count4; 6. uchar mima[8]; // 初始密码存储区 7. uchar tab_key[50]; //输入密码存储区 8. uchar code table[]={ 9. 0x3f,0x06,0x5b,0x4f, 10. 0x66,0x6d,0x7d,0x07, 11. 0x7f,0x6f,0x77,0x7c, 12. 0x39,0x5e,0x79,0x71}; 13. bit enterflag; // 确认键按下与否的标志 14. bit mimaflag; // 密码正确与否的标志 15. bit xiugaiflag; // 修改密码标志 16. bit enter1flag; // 修改密码确认键标志17. sbit red=P3^7; 18. sbit bell=P3^6; 19. sbit rs=P2^0; 20. sbit rw=P2^1; 21. sbit lcden=P2^2; 22. sbit scl=P3^4; 23. sbit sda=P3^5; 24. uchar code table1[]="input the passco"; 25. uchar code table2[]="de: --------"; 26. uchar code table3[]="*"; 27. uchar code table4[]="right (^_^) "; 28. uchar code table5[]="first error!!!!"; 29. uchar code table6[]="second error!!!!"; 30. uchar code table7[]="third error see "; 31. uchar code table8[]="u tomorrow (^_^)"; 32. uchar code table9[]="define the passc"; 33. uchar code table10[]="ode: --------"; 34. uchar code table11[]="code is new"; 35. //****************************** 键盘消抖函数******************************* 36. void delay1() 37. { ;;}38. void delay2(uchar x) 39. {40. uchar a,b; 41. for(a=x;a>0;a--) 42. for(b=100;b>0;b--); 43. }44. 45. void delay(uint z) 46. {47. uint x,y; 48. for(x=z;x>0;x--) 49. for(y=110;y>0;y--); 50. }51. 52. //****************************e^2room 的初始化