网站大量收购独家精品文档,联系QQ:2885784924

51单片机密码锁程序.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 int sbit 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)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档