- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自己做的基于单片机的密码锁设计(c语言设计)
时间:2011-08-16 21:08:01 来源: 作者:
自己做的基于单片机的密码锁设计(c语言设计)
系统说明
???? 该系统如图所示使用了80C51单片机、普通键盘、排阻、1602液晶。
该系统的功能:
??? ①该系统输入正确的密码LED灯会亮(其实就是很多操作都可以,用LED只是代表作用,主要是操作简单,效果明显。)
②系统可以修改密码;(系统断电后重启后必须用初始密码(初始密码是:000000)重新改密,当然修改的密码可以与掉电前的一样。)
具体操作:
????? ①系统开机时显示请输入密码的提示,直接输入密码#键确认
②系统会自动提醒密码错误,数秒后系统会再次提醒重新输密码。
③在系统提醒输入密码的界面可以按*键修改密码,系统会提醒输入两次密码,并且会检查两次密码是否相同。同则修改成功。否则在数秒后可以重新按*键修改。
④在改密前(就是按了*键后系统)会提醒身份识别,请输入旧密码,系统判断旧密码正确方可更改密码。
源程序
#includereg52.h#define uchar unsigned char#define uint unsigned intsbit lcdrs=P3^0;sbit lcdrw=P3^1;sbit lcden=P3^2;sbit h1=P1^0;sbit h2=P1^1;sbit h3=P1^2;sbit sa=P1^3;sbit sb=P1^4;sbit sc=P1^5;sbit sd=P1^6;sbit kd=P3^7;uchar code table[]=? PLEASE INPUT ;uchar code table1[]=CODE:??????? ;uchar code table2[]= *****WIN*****;uchar code table3[]= PLEASE AFFIRM;uchar code table4[]= *****FAIL*****;uchar code table5[]=?? MODIFICATION;uchar code table6[]= IDENTITY LIMITS ;uchar unm,M1,M2,M3,M4,M5,M6,sex,k1,k2,k3,k4,k5,k6,flge,flge1;uchar q1,q2,q3,q4,q5,q6,w1,w2,w3,w4,w5,w6,g;
void delay(int z){?int x,y;?for(x=z;x0;x--)? for(y=110;y0;y--);}
void delay1(int z){?int x,y;?for(x=z;x0;x--)? for(y=20000;y0;y--);}
void writen_com(uchar com)?? //1602写命令{?lcdrs=0;?P0=com;?delay(1);?lcden=1;?delay(1);?lcden=0;}
void writen_dat(uchar dat)?? //1602写数据{?lcdrs=1;?P0=dat;?delay(1);?lcden=1;?delay(1);?lcden=0;}
void main();
void cheak_mima()??? //检查第二次确认密码是否与第一次相同{if(q1==w1){?if(q2==w2)?{? if(q3==w3)? {?? if(q4==w4)?? {??? if(q5==w5)?{? if(q6==w6)? {??? writen_com(0x01);??? writen_com(0x0f);?????? writen_com(0x06);?????? writen_com(0x80);????? for(unm=0;unm14;unm++)????? {??????? writen_dat(table5[unm]);??????? delay(5);????? }?????? writen_com(0x80+0x40+1);??????? for(unm=0;unm14;unm++)???????? {????????? writen_dat(table2[unm]);??? delay(5);???????? }??????????? M1=w1;??M2=w2;??M3=w3;??M4=w4;??M5=w5;??M6=w6;
??delay1(6);??main();?? }/*------------------------------
文档评论(0)