电子密码锁C程序

电子密码锁C程序

ID:41286310

大小:36.01 KB

页数:5页

时间:2019-08-21

电子密码锁C程序_第1页
电子密码锁C程序_第2页
电子密码锁C程序_第3页
电子密码锁C程序_第4页
电子密码锁C程序_第5页
资源描述:

《电子密码锁C程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#defineucharunsignedchar#defineuintunsignedintucharcodetable1[]="THEPASSWORD";ucharcodetable2[]="INPUTAGAIN";ucharcodetable3[]="OPEN";ucharcodetable4[]="ERROR";ucharcodetable5[]="SORRY";ucharcodetable6[]="TOMORROWAGAIN";ucharpassword[]={2,0,1,1,1,1};uchar

2、x=0,shuru[6];sbitlcdrs=P0^0;sbitlcden=P0^2;sbitlcdrw=P0^1;voiddelay(uintx)//延时子程序{uinti,j;for(i=x;i>0;i--)for(j=120;j>0;j--);}voidwrite_com(charcom)//写指令{lcdrs=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_data(uchardat)//写数据{lcdrs=1;P2=dat;delay(5);lcden=1;delay(

3、5);lcden=0;}voidinit()//初始化函数{lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);}ucharkeyscan(void)//键盘扫描函数,使用行列反转扫描法{ucharcord_h,cord_l;//行列值中间变量P3=0xf0;//行线输出全为0cord_h=P3&0xf0;//读入列线值if(cord_h!=0xf0)//先检测有无按键按下{delay(10);//去抖if((P3&0xf0)!=0xf0){cor

4、d_h=P3&0xf0;//读入列线值P3=cord_h

5、0x0f;//输出当前列线值cord_l=P3&0x0f;//读入行线值while((P3&0x0f)!=0x0f);//等待松开并输出return(cord_h+cord_l);//键盘最后组合码值}}return(0xff);//返回该值}ucharKeyPro(void)//键盘检测函数{switch(keyscan()){case0xee:return7;break;//7按下相应的键显示相对应的码值case0xde:return8;break;//8case0xbe:re

6、turn9;break;//9//case0x7e:case0xed:return4;break;//4case0xdd:return5;break;//5case0xbd:return6;break;//6//case0x7d:case0xeb:return1;break;//1case0xdb:return2;break;//2case0xbb:return3;break;//3//case0x7b:case0xe7:return0;break;//0//case0xd7://case0xb7://case0x77:default:r

7、eturn0xff;break;}}//////////主函数/////////////voidmain(){ucharnum,mima,wrong;lcdrw=0;init();write_com(0x82);for(num=0;num<12;num++){write_data(table1[num]);delay(1);}while(1){mima=KeyPro();write_com(0xc4+x);write_com(0x0f);if((mima!=0xff)&&(x<6)){write_data('*');shuru[x]=mi

8、ma;x++;if(x==6){x=0;if(shuru[0]==password[0]&&shuru[1]==password[1]&&shuru[2]==password[2]&&//判断密码是否正确shuru[3]==password[3]&&shuru[4]==password[4]&&shuru[5]==password[5])//{write_com(0x01);delay(1);write_com(0x86);for(num=0;num<4;num++){write_data(table3[num]);delay(1);}w

9、rite_com(0x0c);while(1);}else{wrong++;//如果密码输入错误三次if(wrong==3)//则不能再次输入{//write_com(0x01);//dela

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。