ZIP基于51单片机的电子密码锁-程序+仿真 146.9KB

u010102747需要积分:1(1积分=1元)

资源文件列表:

电子密码锁2.zip 大约有29个文件
  1. 电子密码锁2/程序/
  2. 电子密码锁2/程序/elock 9.98KB
  3. 电子密码锁2/程序/elock.build_log.htm 1019B
  4. 电子密码锁2/程序/elock.hex 2.79KB
  5. 电子密码锁2/程序/elock.lnp 42B
  6. 电子密码锁2/程序/elock.M51 13.35KB
  7. 电子密码锁2/程序/elock.plg 363B
  8. 电子密码锁2/程序/elock.uvgui.23882 89.21KB
  9. 电子密码锁2/程序/elock.uvgui.Sylvia 69.78KB
  10. 电子密码锁2/程序/elock.uvgui_Sylvia.bak 69.75KB
  11. 电子密码锁2/程序/elock.uvopt 5.61KB
  12. 电子密码锁2/程序/elock.uvproj 14.08KB
  13. 电子密码锁2/程序/elock_uvopt.bak 5.74KB
  14. 电子密码锁2/程序/elock_uvproj.bak 13.25KB
  15. 电子密码锁2/程序/lock.c 4.45KB
  16. 电子密码锁2/程序/lock.LST 8.49KB
  17. 电子密码锁2/程序/lock.OBJ 11.1KB
  18. 电子密码锁2/程序/STARTUP.A51 6.23KB
  19. 电子密码锁2/程序/STARTUP.LST 13.72KB
  20. 电子密码锁2/程序/STARTUP.OBJ 749B
  21. 电子密码锁2/仿真/
  22. 电子密码锁2/仿真/Backup Of 新工程.pdsbak 25.53KB
  23. 电子密码锁2/仿真/Last Loaded 新工程.fv8.14.pdsbak 25.55KB
  24. 电子密码锁2/仿真/Last Loaded 新工程.pdsbak 20.99KB
  25. 电子密码锁2/仿真/新工程.pdsprj 20.99KB
  26. 电子密码锁2/仿真/新工程.pdsprj.DESKTOP-COSQF4C.Sylvia.workspace 2.19KB
  27. 电子密码锁2/仿真/新工程.pdsprj.HJH.HJH.workspace 2.2KB
  28. 电子密码锁2/仿真/新工程.pdsprj.LAPTOP-VUJG7SUF.liumuhan.workspace 3.12KB
  29. 电子密码锁2/仿真/新工程.pdsprj.YALI.23882.workspace 2.2KB

资源介绍:

基于51单片机的电子密码锁,程序+仿真 具体说明:https://blog.csdn.net/u010102747/article/details/123774026?spm=1001.2014.3001.5502
#include <reg52.h> typedef unsigned char u8; typedef unsigned int u16; #define key P1 //按键io口 sbit fen=P3^0; //蜂鸣器io口 sbit rs=P3^1; //LCD控制口 sbit rw=P3^2; sbit e=P3^3; sbit led=P3^4; //LED灯io口 //bit 位变量声明:定义一个位变量的值 u8 keyz=17,j=0,biao1=0,a=10,b=10,c=10,d=10; bit biao=0; u16 zh; u8 shu[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; u8 zi[]={"lnput password:"}; u8 num[]={"0123456789ABCDEF"}; void delay(u16 i){ while(i--); } /*蜂鸣器*/ void Fen(u8 a,b) //蜂鸣器发声函数 { u8 i,j; for(i=0;i<a;i++) { for(j=0;j<100;j++) {fen=~fen;delay(b);} } } /*LCD*/ void writecom(u8 com){ //LCD写指令 rs=0; rw=0; e=0; P0=com; delay(5); e=1; e=0; } void writedat(u8 dat){ //LCD写数据 rs=1; rw=0; e=0; P0=dat; delay(5); e=1; e=0; } void initlcd(){ //LCD初始化函数 writecom(0x38); //显示模式设置 writecom(0x0c); writecom(0x06); } void xian(){ //LCD显示数字函数 writedat(num[keyz]); if(a==10){a=keyz; } //对abcd,四位数的单独赋值 else if(b==10){b=keyz;} else if(c==10){c=keyz;} else{d=keyz;} if(j!=3){j++;}biao=0; } /*键盘*/ void Key(){u8 a=0; //矩形式键盘函数 if(key!=0x0f){delay(1000); if(key!=0x0f){ key=0x0f; switch(key){ case 0x07: keyz=0;biao=1;break; case 0x0b: keyz=1;biao=1;break; case 0x0d: keyz=2;biao=1;break; case 0x0e: keyz=3;biao=1;break; } key=0xf0; switch(key){ case 0x70: keyz=keyz;biao=1;break; case 0xb0: keyz=keyz+4;biao=1;break; case 0xd0: keyz=keyz+8;biao=1;break; case 0xe0: keyz=keyz+12;biao=1;break; } } while((a<50)&&(key!=0xf0)){a++;delay(10000);} } } void shi(){u8 i; // 按键值判断函数 if(biao&&keyz!=15){ //判断标志位biao是否为1,为1则有按键操作并且按键的值不等于15 writecom(0x80+0x40+j); //数字显示位置进行累加操作 if(j<0){j=0;} //数字显示位置边界 switch(keyz){ //switch判断按键并执行对应操作 case 0:xian(); break; case 1:xian(); break; case 2:xian(); break; case 3:xian(); break; case 4:xian(); break; case 5:xian(); break; case 6:xian(); break; case 7:xian(); break; case 8:xian(); break; case 9:xian(); break; case 10:writedat(num[keyz]); j++;biao=0;break; case 11:writedat(num[keyz]); j++;biao=0;break; case 12: biao1=0; //重置标志位biao1,上锁 biao=0;break; case 13:writecom(0x01); delay(1000); //全屏清除 for(i=0;i<sizeof(zi);i++){ writecom(0x80+i); writedat(zi[i]); } j=0;biao=0;break; case 14: //对当前数字位删除的操作 writedat(' '); j--; writecom(0x80+0x40+j);writedat(' '); biao=0;break; case 15: //确定按键 j++;biao=0;break; } } if(keyz==15){ //判断按键值如果等于15,便视为按下确定键 writecom(0x01);delay(1000); zh=a*1000+b*100+c*10+d; //将ABCD,四位数合并并进行判断是否为正确密码 if(zh==1234){ //设密码为1234 j=0; biao1=1; //将biao1标志位置1便为密码正确 keyz=17; //使按键值跳出最大值15便不会循坏显示 } else{ j=0; biao1=0; //反之密码错误 keyz=17; Fen(20,200); //蜂鸣器报警 } zh=0;a=10,b=10,c=10,d=10; //重置ABCD变量 for(i=0;i<sizeof(zi);i++){ writecom(0x80+i); writedat(zi[i]); } } } void main(){u8 i; led=1; initlcd(); //LCD初始化函数 for(i=0;i<sizeof(zi);i++){ writecom(0x80+i); writedat(zi[i]); } while(1){ Key(); //定义键盘函数 shi(); //按键判断函数,灯亮或报警 P2=shu[keyz]; //数码管显示当前输入值 if(biao1==1){ led=0; //判断标志位biao1 为1则密码正确显示ok writecom(0x80+0x40+10); writedat('O'); writecom(0x80+0x41+10); writedat('K'); } else if(biao1==0){led=1; //biao1为0则显示密码错误显示no writecom(0x80+0x40+10); writedat('N'); writecom(0x80+0x41+10); writedat('O');} } }
100+评论
captcha
    类型标题大小时间
    ZIP图像处理常用的Kodak24数据集 免积分下载9.88MB4年前
    ZIPWishRecy数据恢复软件9.09MB3年前
    ZIP自定义spinner1.79MB11年前
    ZIPVisual C++ MFC编程实例16.42MB17年前
    ZIPeasyexplorer6.96KB14年前
    ZIPC# 条形码操作 winform17.59MB9年前
    ZIP一个简单的PHP购物车系统1.02MB9年前
    ZIPAndroid仿微信、支付宝钱包宫格界面Demo2.68MB9年前