• 大小: 96KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-22
  • 语言: 其他
  • 标签:

资源简介

51单片机密码锁PROTEUS仿真,51单片机密码锁PROTEUS仿真,51单片机密码锁PROTEUS仿真。

资源截图

代码片段和文件信息

#include 
#include“intrins.h“
#include“key.h“
#include“xsh.h“
#include“24c02.h“
#define ulong unsigned long
bit  BJCB=0;//报警标志   
     XG=0//修改密码标志位
     BJ=0//报警标志位
     SJ=0;//锁键盘标志位
    // xg=0;//修改密码标志位
uchar PSWD0_0[16]={0};//密码输入缓存存储单元
//uchar code PSWD0_1[16]={1234567812345678};//用户初始密码存储单元
//uchar PSWD1_0[16]={0};//读出密码缓存存储单元
uchar PSWD1_1[16]={1234567812345678};////管理员初始密码存储单元
sbit OUT=P3^5;//输出端口
sbit L1=P0^2;//上电指示
sbit L2=P0^1;//开锁指示
sbit L3=P0^0;//报警指示
uint   mg=0//密码个数
       KSC=0//开锁次数
       BJC=0//报警次数
   TCNTY=0//用户按键定时次数累加
   TCNTG=0//管理员输入密码定时次数
   yhsh//用户输入标志位
   glsh//管理员输标志位
   shw;//密码输完标志位
void yhmimaxig();//密码修改程序
void glmimaxig();//管理员修改程序
void bjyin(ulong t)
{
 ulong c;
 uint n;
 for(c=0;c{
 for(n=0;n<50;n++); //延时
 BEEP=~BEEP; //取反输出到喇叭的信号
}
}
 void delay_10ms(void)
{
uint i = 1000;
while(i--);
}
//////////////定时中断服务函数//////////////////////////////////////
 void timer0() interrupt 1 

 uint i;
 TH0=(65536-50000)/256; //对TH0 TL0赋值50MS定时
 TL0=(65536-50000)%256; //重装计数初值
 if(yhsh==1) 
 {
  TCNTY++;//用户定时计数
  if(shw==1)
 {
  TR0=0;
  TCNTY=0;
  }
  if(TCNTY==400)
  { 
   TR0=0;//关闭T0定时器
   TCNTY=0;
    mg=0;//密码个数清零
L1=1;
for(i=0;i<2;i++)//声光报警电路
 {
  L3=0;
  bjyin(1000);
  L3=1;
  delay(1000);
  } 
  L1=0; 
     }
    } 
else if(glsh==1)
    {
 TCNTG++;//管理员定时计数
         if(shw==1)
        {
           TR0=0;
           TCNTG=0;
         }
       if(TCNTG==400)
       { 
        TR0=0;//关闭T0定时器
        TCNTG=0;
        mg=0;//密码个数清零
L1=1;
     for(i=0;i<2;i++)//声光报警电路
    {
  L3=0;
  bjyin(1000);
  L3=1;
  delay(1000);
 }
 L1=0; 
}
}   
}        
    
void main()
{  
   uint i;
   TMOD=0x01;  //定时器工作在方式1
   ET0=1; 
   EA=1;
   TH0=(65536-50000)/256; //对TH0 TL0赋值
   TL0=(65536-50000)%256; //使定时器0.05秒中断一次
  //Read_page24c02(0x00PSWD1_116);//向24c02里读用户初始密码
   //i2cWrite24LC16B(00X20);
 /////////////第一次向24c02里写入初始管理员密码、用户密码、开锁次数/////////////////////
   for(i=0;i<16;i++) //用一次写一个向24c02里写
  {
   i2cWrite24LC16B(PSWD1_1[i]i);
   delay_10ms;  
  } 
   for(i=0;i<16;i++) //用一次写一个向24c02里写
  {
   i2cWrite24LC16B(PSWD1_1[i]0x10+i);
   delay_10ms;  
  }  //proteus仿真时用,烧程序时,第一次用,第二次不用。
  KSC=i2cRead24LC16B(0X20);
 loop:  L1=0;//上电红灯亮
L2=1;//开锁成功后绿灯亮
L3=1;//输错时黄灯亮报警
OUT=0;//开信号关闭
       display_0(KSC);//开锁前显示
            
///////////密码输入/////////////////
 if(SJ==0)//锁键盘标志位为0
 { 
  do
   {
    flag=0;//键盘标志位
    key();
if(flag==1&&num==12) //判断是否为管理员功能键按下
{
 goto gl;
    }
    if(flag==1&&num<=9)
 {
  PSWD0_0[mg]=num;
  mg++;//密码个数
 }
 if(flag==1&&num==14&&mg>=1)//输入错误删除
 {
   mg=mg-1;
   } 
 if(mg==1) //有密码键按下开定时器限时
 {
  TR0=1;
  yhsh=1; 
  }
   }
   while(num!=15);
   if(mg!=16)
   {
    for(i=mg;i<16;i++)
{
 PSWD0_0[i]=0;
}
   }   
/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2946  2008-12-11 15:58  0029、密码锁\24c02.h

     文件     156202  2008-12-16 18:32  0029、密码锁\Last Loaded mms.DBK

     文件       6376  2005-03-22 15:22  0029、密码锁\STARTUP.A51

     文件      14048  2009-03-12 22:29  0029、密码锁\STARTUP.LST

     文件        749  2009-03-12 22:29  0029、密码锁\STARTUP.OBJ

     文件       2148  2008-12-02 16:27  0029、密码锁\key.h

     文件      34179  2009-03-12 22:29  0029、密码锁\mms

     文件     156476  2009-06-03 12:48  0029、密码锁\mms.DSN

     文件      20363  2009-03-12 22:29  0029、密码锁\mms.LST

     文件      48300  2009-03-12 22:29  0029、密码锁\mms.M51

     文件      41346  2009-03-12 22:29  0029、密码锁\mms.OBJ

     文件       2427  2009-04-05 08:22  0029、密码锁\mms.Opt

     文件       1171  2010-05-18 20:23  0029、密码锁\mms.PWI

     文件       2247  2008-12-02 19:14  0029、密码锁\mms.Uv2

     文件       8780  2009-03-12 22:29  0029、密码锁\mms.c

     文件       9235  2009-03-12 22:29  0029、密码锁\mms.hex

     文件         39  2009-03-12 22:29  0029、密码锁\mms.lnp

     文件        170  2009-04-05 08:22  0029、密码锁\mms.plg

     文件       2423  2009-03-12 22:40  0029、密码锁\mms_Opt.Bak

     文件       2131  2008-12-08 10:06  0029、密码锁\xsh.h

     目录          0  2010-05-21 14:25  0029、密码锁

----------- ---------  ---------- -----  ----

               511756                    21


评论

共有 条评论

相关资源