欢迎来到天天文库
浏览记录
ID:21838402
大小:86.21 KB
页数:11页
时间:2018-10-25
《密码锁的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、密码锁的设计1.数字式密码锁2.4-6位组成3.可修改密码4.三次输入错误报警include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitbuzzer=P3A0;sbitrs=P2A6;//1602的数据/指令选择控制线sbitrw=P2A5;sbit//1602的读写控制线sbiten=P2A7;//1602的使能控制线keyO=P3A7;uchartable[10];ucharkeycmp[4];ucharkeyword[4]={0,0,0,0};ucharnum=0,flg
2、=0,key=0,ala=0,in=0;voidflagpd();voiddelay(uintx){}uintij;for(i=x;i>O;i-)for(j=110;j>0;j-);voidalarm(){}voidlcd_wcom(ucharcom)//1602写命令函数rs=O;//选择指令寄存器rw=0;//选择写P0=com;//把命令字送入POnum=0;buzzer=O;delay(lOOOO);buzzer=l;delay(5);//延时一小会儿,让1602准备接收数据en=l;//使能线电平变化,命令送入1602的8位数裾口en=O;
3、}voidlcd_wdat(uchardat)//1602写数据函数rs=l;//选择数据寄存器rw=0;//选择写PO=dat;//把要显示的数据送入P0delay⑸;//延时一小会儿,让1602准备接收数据en=l;//使能线电平变化,数据送入1602的8位数据口en=0;}voidlcd_init()//1602初始化函数Icd_wcom(0x38);//8位数据,双列,5*7字形Icd_wcom(0x0c);//开启显示屏,关光标,光标不闪烁Icd_wcom(0x06);//显示地址递增,即写一个数据后,显示位置右移一位Icd_wcom(0x01);"清
4、屏}voiddisplay(){}voidright(){ucharij;j=num+0x46;Icd_wcom(0x80+j);i=keycmp[num];i=i+0x30;table[O]=i;lcd_wdat(table[O]);}ucharn=0;ucharcodetablel[]=Hwelcome";Icd_wcom(0x01);Icd_wcom(0x84);for(n=0;n<7;n++){led一wdat(tablel[n]);delay(200);}num=0;flg=2;in=l;voidindisplay(){ucharn=0;ucha
5、rcodetable5[]="inputpassword";Icd_wcom(0x01);Icd_wcom(0x80);}for(n=0;n<14;n++){Icd_wdat(table5[n]);delay(200);}voidsetdisplay(){}ucharn=O;ucharcodetable2[]="changepassword";led一wcom(OxOl);Icd_wcom(0x80);for(n=0;n<15;n++){Icd_wdat(table2[n]);delay(2OO);}voiderror(){ucharn,m;ucha
6、rcodetable3[]="ERROR!";ucharcodetable4[]="inputagain";Icd_wcom(0x01);Icd_wcom(0x85);for(n=0;n<6;n++){Icd_wdat(table3[n]);delay(200);}Icd_wcom(0x80+0x42);for(m=0;m<ll;m++){Icd_wdat(table4[m]);delay(200);}ala=ala+l;num=0;}flg=2;voidset(){}voidokdisplay(){if(in==l){}else{error();f
7、lagpd();}num=0;flg=l;setdisplay();in=0;}ucharn;ucharcodetable6[]="OK";led—wcom(0x01);Icd_wcom(0x87);for(n=0;n<2;n++){Icd_wdat(table6[n]);delay(200);}voidok(){if(keyword[i]!=keycmp[i]){error();}elsereturn;}if(num==4){right();return;}if(flg==l){if(num==4){num=O;for(i=0;i<4;i++)ke
8、yword[i]=key
此文档下载收益归作者所有