24c02单片机密码锁

您所在的位置:网站首页 24c04a作用 24c02单片机密码锁

24c02单片机密码锁

2023-08-23 13:33| 来源: 网络整理| 查看: 265

  #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]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//用户初始密码存储单元 //uchar PSWD1_0[16]={0};//读出密码缓存存储单元 uchar PSWD1_1[16]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//管理员初始密码存储单元 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     temp=P2;    temp=temp&0x0f;   }      while(temp!=0x0f);     flag=1;  yin();    }  } P2=0Xdf;    temp=P2&0x0f; if(temp!=0x0f)  {delay(5);   if(temp!=0x0f)   {temp=P2;    switch(temp)     {   case 0xd7:num=8;      break;   case 0xdb:num=9;      break;      case 0xdd:num=10;      break;   case 0xde:num=11;      break;   }       do{     temp=P2;    temp=temp&0x0f;   }      while(temp!=0x0f);  flag=1;  yin();    }  } P2=0Xef;    temp=P2&0x0f; if(temp!=0x0f)  {delay(5);   if(temp!=0x0f)   {temp=P2;    switch(temp)     {   case 0xe7:num=12;      break;   case 0xeb:num=13;      break;      case 0xed:num=14;      break;   case 0xee:num=15;      break;   }       do{     temp=P2;    temp=temp&0x0f;   }      while(temp!=0x0f);  flag=1;  yin();    }   }  return(num); }#endif

#ifndef _xsh_h#define _xsh_h#include #define uchar unsigned char #define uint unsigned intsbit shj=P1^0;//串口数据口sbit sck=P1^1;//串口时钟uchar code tab[20]={   0x88,/*0*/        0xBE,/*1*/        0xC4,/*2*/        0x94,/*3*/        0xB2,/*4*/        0x91,/*5*/        0x81,/*6*/        0xBC,/*7*/        0x80,/*8*/        0x90,/*9*/        0xA0,/*A*/        0x83,/*b*/        0xC9,/*C*/        0x86,/*d*/        0xC1,/*E*/        0xE1,/*F*/        0xA8,/*N*/        0xF7,/*-*/  0x94,/*反E*/  0xE0/*P*/  }; //共阳数码管uchar code sb0[3]={8,8,8},/*开锁后显示*/       code sb1[3]={0,15,15},/*开锁前显示*/       code sb2[6]={17,17,17,17,17,17},/*修改显示*/        code sb3[6]={16,0,16,0,16,0},/*第一二次报警显示*/    code sb4[6]={8,8,8,8,8,8},/*管理员进入显示*/    code sb5[6]={18,18,18,18,18,18};/*第三次报警显示*/

//*显示电路*/void writedata(uchar num)//传送一个字节{ uchar temp; int i; temp=tab[num]; for(i=0;i  int i;  uchar m;  for(i=0;iunsigned char temp;for(;number>=1;number--) {  for(temp=112;temp>=1;temp--) ;}}void i2cStart(void){  SDA=1;  SCL=1;  _nop_();  _nop_();  _nop_();  _nop_();  _nop_();  SDA=0;  _nop_();  _nop_();  _nop_();  _nop_();  _nop_();  SCL=0;}void i2cStop(void){  SDA=0;  SCL=1;  _nop_();  _nop_();  _nop_();  _nop_();  _nop_();  SDA=1;  _nop_();  _nop_();  _nop_();  _nop_();  _nop_(); }void i2cAck(void){  SDA=0;  SCL=1;  _nop_();  _nop_();  _nop_();  _nop_();  SDA=1;  SCL=0;}void i2cNoAck(void){  SDA=1;  SCL=1;  _nop_();  _nop_();  _nop_();  _nop_();  SDA=0;  SCL=0;}void i2cWrite8Bit(unsigned char input){  unsigned char temp;  for(temp=8;temp!=0;temp--)  {    SDA=(bit)(input&0x80);    SCL=1;_nop_();    _nop_();    _nop_();_nop_();    _nop_();SCL=0;input=input    SCL=1;_nop_();    _nop_();    _nop_();rbyte=rbyte    i2cWrite8Bit(*WRdata);    i2cAck(); WRdata++;   }  i2cStop();   DelayMs(20);   return(1);}  unsigned char i2cRead24LC16B(unsigned char RomAddress){  unsigned char x;  i2cStart();  i2cWrite8Bit(WriteDeviceAddress);  i2cAck();  i2cWrite8Bit(RomAddress);  i2cAck();  i2cStart();  i2cWrite8Bit(ReadDeviceAddress);  i2cAck();  _nop_();  _nop_();  _nop_();  x=0;  x=i2cRead8Bit();  i2cNoAck();  i2cStop();  return(x);}//从24c02中读出多个字节bit Read_page24c02(uchar RomAddress,uchar p[],uint n) {   uint i; i2cStart();  i2cWrite8Bit(WriteDeviceAddress);  i2cAck();  i2cWrite8Bit(RomAddress);  i2cAck();  i2cStart();  i2cWrite8Bit(ReadDeviceAddress);  i2cAck();  _nop_();  _nop_();  _nop_();   for(i=0;i



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3