欢迎来到天天文库
浏览记录
ID:26473628
大小:323.00 KB
页数:13页
时间:2018-11-27
《基于51单片机的多功能电子密码锁(仿真图+完整程序)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、主要功能:当输入密码时,只显示“*”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色LED发光二极管亮一秒钟做为提示,;若密码不正确,禁止按键输入3秒,同时绿色发光二极管亮;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。#include#defineuintunsignedint#defineucharunsignedchar#defineKEYP3 //键盘输入端口#defineNo_key20 //无按键时的返回值#definelcddataP2 //1602的数据输入端口sb
2、it lcden=P1^2;sbit lcdrs=P1^0;sbit lcdrw=P1^1;sbit light=P1^3;sbit light1=P1^4;ucharj;//用来统计输入个数的全局变量ucharaa;//用来在定时器中计数的全局变量ucharcodetable[]="Hello!";ucharcodetable1[]="OK! ";ucharcodetable2[]="Enterplease:" ;ucharcodekey_table[16]= { 1,2,3,10, 4,5,6,11, 7,8,9,12,
3、 0,13,14,15 };ucharpassword[]={2,0,1,0,9,3}; //设定初始密码ucharsave[6]; //保存输入的数据ucharconflag; //确认标志ucharlockflag; //锁键盘标志ucharstartflag; //开始标志 voiddelay(uintz); //延时子函数voidwright_com(ucharcom); //写指令函数voidwright_da
4、ta(uchardate); //写数据函数voidinit(); //初始化voiddisplay_OK(); //显示OKvoiddelete(); //删除输入的最后一个数ucharkeyscan(); //带返回值的键盘扫描程序voidenter_code(uchart); //输入密码函数,把输入的数据存入数组中并在屏幕上显示相应的东西,void confirm(); //确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,void succeed
5、_an(); //输入密码成功时的响应,void fail_an(); //输入密码失败时响应void lockkey(); //锁键盘三秒void alarm(); //发出警报声void reset(); //复位函数void display_enter(); //显示输入voidmain(void){ uchartemp; init(); while(1) { if(lockflag) { temp=keyscan(); //锁键期间也要进行键盘扫描 if(temp!=N
6、o_key)//重新记时三秒 { aa=0; //重新在定时器中计数 } } else { temp=keyscan(); //反复扫描输入,等待随时输入 if(temp!=No_key)//有按键按下才进行下面的操作 { if(temp==10) { reset(); startflag=1;//开始标志置位 } if(startflag)
7、{ enter_code(temp); //每扫描一次键盘就要进行一次处理,保存输入的数值 if(temp==13) //按下确认键盘就要进行密码确认 { confirm(); //进行确认判断 if(conflag) //密码确认为正确 { succeed_an(); //密码正确,作出相应的反应 }
此文档下载收益归作者所有