单片机/MCU论坛
直播中

wangka

13年用户 5636经验值
擅长:基础元器件 模拟与电源 操作系统/软件
私信 关注

单片机电子密码锁C程序完整代码【独家分享】

单片机电子密码锁C程序完整代码【独家分享】
这里提供电子密码锁设计的完整代码程序,可以满足电子密码锁毕业设计、电子密码锁产品设计的要求。欢迎大家提出改进建议。


QQ截图20120106155846.jpg
完整代码程序这里下载:
游客,如果您要查看本帖隐藏内容请回复


  1. #include
  2. #include"intrins.h"
  3. #include"key.h"
  4. #include"xsh.h"
  5. #include"24c02.h"
  6. #define ulong unsigned long
  7. bit BJCB=0;//报警标志      
  8.      XG=0,//修改密码标志位
  9.      BJ=0,//报警标志位
  10.      SJ=0;//锁键盘标志位
  11.     // xg=0;//修改密码标志位
  12. uchar PSWD0_0[16]={0};//密码输入缓存存储单元
  13. //uchar code PSWD0_1[16]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//用户初始密码存储单元
  14. //uchar PSWD1_0[16]={0};//读出密码缓存存储单元
  15. uchar PSWD1_1[16]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//管理员初始密码存储单元
  16. ***it OUT=P3^5;//输出端口
  17. ***it L1=P0^2;//上电指示
  18. ***it L2=P0^1;//开锁指示
  19. ***it L3=P0^0;//报警指示
  20. uint   mg=0,//密码个数
  21.        KSC=0,//开锁次数
  22.        BJC=0,//报警次数
  23.     TCNTY=0,//用户按键定时次数累加
  24.     TCNTG=0,//管理员输入密码定时次数
  25.     yhsh,//用户输入标志位
  26.     glsh,//管理员输标志位
  27.     shw;//密码输完标志位
  28. void yhmimaxig();//密码修改程序
  29. void glmimaxig();//管理员修改程序
  30. void bjyin(ulong t)
  31. {
  32. ulong c;
  33. uint n;
  34. for(c=0;c
  35. {
  36. for(n=0;n<50;n++); //延时
  37. BEEP=~BEEP; //取反输出到喇叭的信号
  38. }
  39. }
  40. void delay_10ms(void)
  41. {
  42. uint i = 1000;
  43. while(i--);
  44. }
  45. //////////////定时中断服务函数//////////////////////////////////////
  46. void timer0() interrupt 1
  47. {
  48. uint i;
  49. TH0=(65536-50000)/256; //对TH0 TL0赋值50MS定时
  50. TL0=(65536-50000)%256; //重装计数初值
  51. if(yhsh==1)
  52. {
  53. TCNTY++;//用户定时计数
  54. if(shw==1)
  55. {
  56. TR0=0;
  57. TCNTY=0;
  58. }
  59. if(TCNTY==200)
  60. {
  61.    TR0=0;//关闭T0定时器
  62.    TCNTY=0;
  63.     mg=0;//密码个数清零
  64. L1=1;
  65. for(i=0;i<2;i++)//声光报警电路
  66. {
  67.     L3=0;
  68.     bjyin(1000);
  69.     L3=1;
  70.     delay(1000);
  71.    }
  72.    L1=0;
  73.      }
  74.     }
  75. else if(glsh==1)
  76.      {
  77.    TCNTG++;//管理员定时计数
  78.          if(shw==1)
  79.         {
  80.            TR0=0;
  81.            TCNTG=0;
  82.          }
  83.        if(TCNTG==160)
  84.        {
  85.         TR0=0;//关闭T0定时器
  86.         TCNTG=0;
  87.         mg=0;//密码个数清零
  88. L1=1;
  89.       for(i=0;i<2;i++)//声光报警电路
  90.      {
  91.     L3=0;
  92.     bjyin(1000);
  93.     L3=1;
  94.     delay(1000);
  95.    }
  96.    L1=0;
  97. }
  98. }   
  99. }        
  100.      
  101. void main()
  102. {
  103.    uint i;
  104.    TMOD=0x01; //定时器工作在方式1
  105.    ET0=1;
  106.    EA=1;
  107.    TH0=(65536-50000)/256; //对TH0 TL0赋值
  108.    TL0=(65536-50000)%256; //使定时器0.05秒中断一次
  109. //Read_page24c02(0x00,PSWD1_1,16);//向24c02里读用户初始密码
  110.    //i2cWrite24LC16B(0,0X20);
  111. /////////////第一次向24c02里写入初始管理员密码、用户密码、开锁次数/////////////////////
  112. KSC=i2cRead24LC16B(0X20);
  113. loop: L1=0;//上电红灯亮
  114. L2=1;//开锁成功后绿灯亮
  115. L3=1;//输错时黄灯亮报警
  116. OUT=0;//开信号关闭
  117.        display_0(KSC);//开锁前显示
  118.             
  119. ///////////密码输入/////////////////
  120. if(SJ==0)//锁键盘标志位为0
  121. {
  122. do
  123.    {
  124.     flag=0;//键盘标志位
  125.     key();
  126. if(flag==1&&num==12) //判断是否为管理员功能键按下
  127. {
  128. goto gl;
  129.     }
  130.     if(flag==1&&num<=9)
  131. {
  132.    PSWD0_0[mg]=num;
  133.    mg++;//密码个数
  134. }
  135. if(flag==1&&num==14&&mg>=1)//输入错误删除
  136. {
  137.     mg=mg-1;
  138.     }
  139. if(mg==1) //有密码键按下开定时器限时
  140. {
  141.    TR0=1;
  142.    yhsh=1;
  143.    }
  144.    }
  145.    while(num!=15);
  146.    if(mg!=16)
  147.    {
  148.     for(i=mg;i<16;i++)
  149. {
  150. PSWD0_0=0;
  151. }
  152.    }   
  153. /////////////////密码比较电路////////////////////////////


回帖(872)

keruiqi

2012-1-6 12:00:49
谢谢
1 1 举报

qop3412

2012-1-6 12:08:10
嗯哼 不错哦
举报

qop3412

2012-1-6 12:09:06
多谢!
举报

z061403

2012-1-6 12:25:36
下载学习一下不错

举报

潜移默化

2012-1-6 19:36:31
举报

shu_007

2012-1-6 21:13:32
good!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
举报

cdy_shenhua

2012-1-6 23:13:08
ddddsss
举报

ckchiu

2012-1-6 23:28:08
good
举报

cantmakeit

2012-1-10 23:28:15
看看
举报

lvku

2012-1-12 09:13:33
收藏了
举报

小艾AI

2012-1-12 11:19:30
来学习下呵呵
举报

dengfeng84

2012-1-12 11:43:07
这个是好东西啊
举报

334212704

2012-1-12 13:59:50
good
举报

占伟辉

2012-1-12 14:09:38
好啊

举报

1652914288.570900

2012-1-12 15:28:22
谢谢 分享
举报

yzz5117

2012-1-13 08:58:20
{:soso_e179:}
举报

吴耿建

2012-1-13 09:03:30
试试
举报

陈维林

2012-1-13 09:08:32
看看是否有价值

举报

朽木

2012-1-13 09:56:09
很感兴趣的,看看。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分