自己做的门禁系统2

发布者:Ampoule最新更新时间:2015-07-24 来源: 51hei关键字:门禁系统  at89s52 手机看文章 扫描二维码
随时随地手机看文章
门禁的配件差不多买回来了。at89s52要二十块,24c02要十块,7805要5块,洞洞板一小块要十块,id读卡器45块。唉,什么都贵死了。

光这个的价格就可以买个好的单门门禁了。但是制作的乐趣却是买不到的,
上次的IIC和韦根26的程序从这里打开:http://www.51hei.com/mcu/1231.html

累啊!脑力劳动比体力劳动要累多了!写得并调式好几个程序花了我不少精力,打字都嫌累了,贴上几个程序:

/*////////////////////////////////////
函数原型:
函数说明:串口接收中断
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void ser() interrupt 4
{
   RI=0;
   z=SBUF;
   ai=1;
   
}
/*////////////////////////////////////
函数原型:void sound(uchar a)
函数说明:蜂鸣器发声,a为需要发出多少次DIDI音
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void sound(uchar a)
{
    uchar x,y;
   for(;a>0;a--)
   {
      for(x=255;x>0;x--)
      {
         beep=0;
         for(y=150;y>0;y--)
         beep=1;
         beep=0;
       }
       ysms(500);
    }   
}
void ysms(unsigned int x)
{
   unsigned int a;
   unsigned int b;
   for(a=x;a>0;a--)
   {
       for(b=50;b>0;b--);
   }
}
/*////////////////////////////////////
函数原型:void inscard(void)
函数说明:存入卡号到EEPROM
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void inscard(void)
{
    while(1)
   {
       if(re())
      {
          if(iscard()==0)//如果没有这卡号/
         {
            uchar a,b;
         
            b=ckdz();     //查找空置/
            for(a=3;a<6;a++)
            {
               wt24c(b,WG[a]);
               ys100us(1000);
               b++;
                        
            }
         //   wt24c(0,b);
            ys100us(1000);
            sound(1);
            break;
         }
         sound(2);
         break;
      }
      if(key()==12)
      {
         sound(1);
         break;
      }
   
   }
}

/*////////////////////////////////////
函数原型:void delcard(void)
函数说明:从EEPROM中删除卡号
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void delcard(void)
{
    while(1)
   {
       if(re())
      {
          if(iscard()!=0)   //如果有这张卡号/
         {
            uchar a,b;
         
            b=iscard();     //查找空置/
            for(a=0;a<3;a++)
            {
               wt24c(b,0xff);
               ys100us(1000);
               b=b+1;
                  
            }
         //   wt24c(0,b);
            ys100us(1000);      
            sound(1);
            break;
         }
         sound(2);
         break;
      }
      if(key()==12)
      {
         sound(2);
         break;
      }
   }
}
/*////////////////////////////////////
函数原型:uchar iscard(void)
函数说明:查找是否有此卡
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
uchar iscard(void)
{
    
       uchar a,b;
      for(a=8;a<128;a++)
      {
         if(rd24c(a)==WG[3])
         {
            a++;
            if(rd24c(a)==WG[4])
            {
               a++;
               if(rd24c(a)==WG[5])
               {
                  b=a-2;
                  return b;
               } 
            }      
         }
         if(a==127)return 0;
       }
   
}
/*////////////////////////////////////
函数原型:uchar ckdz(void)
函数说明:查找EEPROM的空白位置地址
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
uchar ckdz(void)//查空地址/
{
    uchar a,b,c;
   for(a=2;a<126;a++)
   {
      c=a;
      c++;
      if(rd24c(a)==0xff)
      {
         a++;
         if(rd24c(a)==0xff)
         {
            a++;
            if(rd24c(a)==0xff)
            {
               b=a-2;
               return b;
            } 
         }      
      }
      if(c==126)return 0xff;
    }
} 

/*////////////////////////////////////
函数原型:void readcard(void)
函数说明:读卡正确
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void readcard(void)
{
   if(re())
   {
      
        if(iscard()!=0)
      {
         SEND(&WG[0]);
         open();

      }sound(2);
    }
}
/*////////////////////////////////////
函数原型:void open(void)
函数说明:打开
版本:V1.0.0
程序员:LIY12586
////////////////////////////////////*/
void open(void)
{
   
       //out=0;
      SEND(&WG[0]);
      sound(1);
      ysms(10000);
      //out=1;
      
   
}
关键字:门禁系统  at89s52 引用地址:自己做的门禁系统2

上一篇:51单片机电子钟制作-升级版
下一篇:自己做的门禁系统1

推荐阅读最新更新时间:2024-03-16 14:26

基于AT89S52单片机的太阳能环境参数测试仪设计
   引 言   为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。    1 硬件电路设计   1.1 总体结构   该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线
[单片机]
LED显示电路_解析可视对讲门禁系统通信设计方案
整体设计方案   本文设计了一种楼宇无线可视对讲电路,该电路以单片机为控制器核心,再连接外围电路,通过无线数字传输电路来传输视频信号,可以达到 50~200 m的无线传输距离。该设计优点是在单张拍摄的基础上,获得图像的连续显示,它真正意义上实现了图像信号的无线数字传输。    1 整体设计方案   系统结构主要由3部分组成:上位机系统、下位机系统和通信系统。这三部分共同完成了主控制器与分控制器的信息交换,达到楼宇监控的目的。主控制器和分控制器通过无线数字传输模块SRWF进行数据和命令的传输。该通信模型属于一对多的通信模式,其整体方框图如图1所示。 图1 整体设计方框图   主控制器的主控芯片为AT89C51,通
[电源管理]
LED显示电路_解析可视对讲<font color='red'>门禁系统</font>通信设计方案
基于AT89S52的多功能智能小车设计
随着计算机、微电子、信息技术的快速发展,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能小车作为移动式机器人中的一个重要分支,具有环境感知、规划决策、自动行驶等功能,是智能化技术中一个典型的例子。设计者可以通过软件编程,让小车在预先设定的模式中实现行进、寻迹、避障等精确控制,无需人工干预,当有特殊需要或在出现故障的情况下还可以对小车进行远程遥控,可以应用于科学勘探等用途,具有广阔的发展前景。 1 系统总体设计框图 本设计中,智能小车是由主控制模块、电机驱动模块、循迹模块、避障模块、遥控模块、声控模块、光控模块、电源模块和其他外围电路组成,其总体硬件结构框图如图1所示。 2 系统硬件设计
[单片机]
基于<font color='red'>AT89S52</font>的多功能智能小车设计
基于AT89S52的车载压实度检测仪设计
1 引言 压实度是指压实土的干密度与标准击实试验获得的最大干密度之比。在公路修筑中,路基、地基层、基层和面层都需要很好的压实,以达到一定的密实度,提高道路的承载能力,并防止沉陷、水分渗透等。而衡量路基压实质量的一个重要指标就是路基的压实度。通常,压实度每提高1%,基础承载能力就要提高10%。若是沥青混凝土路面,压实度每提高1%,承载能力和寿命可提高10~15%。压实工作的重要性显而易见。 目前施工或检测部门一直采用的是传统的人工抽样方法来保证压实质量,这种方法不仅费时费力,而且还将造成路基的破坏。随着交通运输量的迅速增大,公路建设进一步发展,施工部门对压实度的检测提出了更高的要求。传统的压实度测量方法已经不能适应现代的施工要求
[应用]
基于AT89S52的MEMS陀螺信号采集与处理系统设计
 MEMS(Micro Electron Mechanical System)陀螺仪是一种可以精确测量物体方位的仪器,不仅成本低,体积小,重量轻,而且可以与微电子加工的电路实现集成,做到机电一体化。MEMS陀螺适用于汽车工业、惯性导航、计算机、机器人、军事等急需大量小型、廉价陀螺的应用领域,是国防、工业发展中必不可少的仪器。 但是,MEMS陀螺仪在实际应用中达不到需要的精度,为了提高陀螺仪系统工作性能和测量精度,对陀螺仪进行数据采集并减小误差是至关重要的。 ADIS16355惯性测量装置将三轴角速度感知与三轴加速度感知相结合,提供六自由度运动感知、嵌入式校准与传感器处理以及传感器-传感器交叉补偿,并大大提高信号稳定性(使用
[工业控制]
基于<font color='red'>AT89S52</font>的MEMS陀螺信号采集与处理系统设计
红外接收(模拟串口接收)
//****************************************************************** //@FileName: UART51.C //@Controller AT89S52 //@Compiler Keil //@Hardware: 一个普通的I/O,一个定时器T0;和TXD //Description: 该程序为接收程序,接收发送的数据,并通过串口输出显示, // 判断是否接收到正确数据,接收程序主要在于时间的控制, // 说白了,就是模拟串口接收数据 // 发送程序通过TXD直接发送数据,将要发出的数据与38KHZ的方波 // 通过两个9012三极管处理,得到
[单片机]
基于AT89S52和传感器的智能库区防盗系统的设计
  0.前 言   智能防盗系统已成为库区管理的必要组成部分,数字化、无线化、集成化则是防盗系统的技术发展趋势,为此,现代防盗系统广泛采用红外线作为传感信号。由于红外线是不可见光,因而具有很强的隐蔽性和保密性,且基于红外传感信号的防盗系统结构简单,报警准确、及时,是安全防御的最佳选择。本设计主要对智能库区防盗系统的基本功能进行了设计,可分时段对检测到的信号做出判断并实现相应功能。   1.系统方案   系统要求具备以下功能:   1.防盗系统在18:00—08:00时间段内处于防盗状态,当检测到有人进入则发出声光报警,并记录进入时间;   2.防盗系统在08:00—18:00时间段内处于检测人数状态,每当一个人进入,则计
[单片机]
基于<font color='red'>AT89S52</font>和传感器的智能库区防盗系统的设计
基于MAX197的高精度数据采集系统
常见的八位模数转换芯片(如ADC0809【3】等)设计的系统比较简单而且成本较低,但有时八位的精度是不够的,这时我们就不得不选用更高精度的模数转换芯片,其中MAX197就是一款性价比很好的12位精度模数转换芯片。MAX197芯片是美国Maxim公司的快速模数转换芯片,转换时间最小仅为6 μ s,相对于ADC0809的100 μ s要短得多。它的输入信号带宽可达5 MHz,有12位并行的三态数据接口。另外MAX197片内包含高精度的参考电压源和时钟电路,因此它只需要很简单的外部电路即可完成模数转换功能,应用非常方便。 1 MAX1 97芯片的特点及性能: 1.1 MAX197的主要优点: 1)仅使用单5 V电源供电;2)12位分
[电源管理]
基于MAX197的高精度数据采集系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved