我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 3974|回复: 14

[DIY详解] DIY制作单片机断电密码保存电子锁,含原理图,PCB图

[复制链接]
  • TA的每日心情
    开心
    2024-9-20 19:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    6230

    主题

    9495

    回帖

    20万

    积分

    管理员

    积分
    205455

    原创先锋奖终身成就奖优秀斑竹奖宣传大使奖社区居民社区明星社区劳模最爱沙发新人进步奖忠实会员金点子奖特殊贡献奖

    发表于 2013-5-22 22:40:36 | 显示全部楼层 |阅读模式
    DIY
    单片机
    断电密码保存
    电子
    锁电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。本论文从电子密码锁系统的功能,硬件
    电路
    设计,软件设计分别论述这一系统。通过使用单片机AT89S52作为控制核心,连接外部存储器AT24C02,实现密码断电保存,制作一种密码锁。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-20 19:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    6230

    主题

    9495

    回帖

    20万

    积分

    管理员

    积分
    205455

    原创先锋奖终身成就奖优秀斑竹奖宣传大使奖社区居民社区明星社区劳模最爱沙发新人进步奖忠实会员金点子奖特殊贡献奖

     楼主| 发表于 2013-5-22 22:41:19 | 显示全部楼层
    请尊重原创,引用本文发表者,请注明出处.
    作者:彬
    qq:243280383  870035775
    邮箱: 870035775@QQ.COM
    博客:    http://blog.sina.com.cn/vision243280383



    单片机断电密码保存电子锁 (2008-09-15 11:02:08)


    作品简介:电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。本论文从电子密码锁系统的功能,硬件电路设计,软件设计分别论述这一系统。通过使用单片机AT89S52作为控制核心,连接外部存储器AT24C02,实现密码断电保存,制作一种密码锁。
    下面共享AT24C02的驱动程序:
    (AT24C02的三个引脚都接地 所以写入的地址是0xa0 ,写容许引脚接地)
    void Start(void)       /
    {
            Sda=0;
            Scl=1;
            _nop_ ();      //根据时序图尽心延时
            _nop_ ();
            _nop_ ();
            _nop_ ();
            Sda=1;
            _nop_ ();
            _nop_ ();
            _nop_ ();
            _nop_ ();
    }
    void Ack(void)
    {
            Sda=0;
             _nop_ ();
            _nop_ ();    //延时 根据时序图
            _nop_ ();
            _nop_ ();
            Scl=1;
            _nop_ ();
            _nop_ ();
            _nop_ ();
            _nop_ ();
            Scl=0;
    }
    void  NoAck(void)      
    {
            Sda=1;
            _nop_ ();    //根据时序图进行延时
            _nop_ ();
            _nop_ ();
            _nop_ ();
            Scl=1;
            _nop_ ();
            _nop_ ();
            _nop_ ();
            _nop_ ();
            Scl=0;
    }
    void Send(uchar Data)  
    {        
            uchar BitCounter=8;      
            uchar temp;   
            do
            {
               temp=Data;
               Scl=0;
               _nop_ ();
               _nop_ ();
               _nop_ ();
               _nop_ ();
               if((temp&0x80)==0x80)
                    Sda=1;
               else
                    Sda=0;        //如果最高位是0就发送0
               Scl=1;
               temp=Data<<1;      
               Data=temp;      
               BitCounter--;       //没发完一位数据就减一
             }while(BitCounter);    //如果发送完8位后跳出循环
             Scl=0;               //释放总线           
    }
    uchar Read(void)
    {
            uchar temp=0;
            uchar temp1=0;
            uchar BitCounter=8;   //定义从存储器读出的数据位数
            Sda=1;
            do{
              Scl=0;
              _nop_ ();
              _nop_ ();
              _nop_ ();
              _nop_ ();
              Scl=1;
              _nop_ ();
              _nop_ ();
              _nop_ ();
              _nop_ ();
              if(Sda)      
                    temp=temp|0x01;
              else
                    temp=temp&0xfe;
              if(BitCounter-1)
              {   temp1=temp<<1;       //逐位的读出
                  temp=temp1;
              }
              BitCounter--;
            }while(BitCounter);   //读出8位后跳出循环
            return(temp);         //返回读出的数据
    }
    void WrToROM(uchar Data,uchar Address)   //向存储器写一字节的数据 函数
    {
         uchar i=0;
       
         Start();             //调用起始条件函数
         Send(0xa0);       // 发送命令,准备写入数据到存储器,让存储器做好准备
         Ack();            //  调用应答函数
         Send(Address);    // 先发送要写入数据的的存储器内存地址
         Ack();            // 调用应答函数
       
          Send(Data);      // 开始发送要写入到存储器中的数据
            Ack();         // 调用应答函数
      
         Stop();           // 调用停止发送函数,表示发送完毕
    }
    uchar  RdFromROM(uchar Address)  //  从存储器读出一字节的数据
    {
         uchar i;
      
            Start();                //调用起始条件函数
            Send(0xa0);           //  让存储器准备接受命令
            Ack();   
            Send(Address);        //  发送要读出来的数据地址
            Ack();
            Start();              //   重新调用起始函数
            Send(0xa1);          //   发送读出数据的命令
            Ack();
            i=Read ( );          // 开始读出数据
            Scl=0;
            NoAck();             // 读出数据成功。返回信号成功信号给存储器
            Stop();
        return (i);             //  返回读出的数据
    }


    相关链接:http://blog.sina.com.cn/vision243280383
    回复

    使用道具 举报

    该用户从未签到

    168

    主题

    6352

    回帖

    923

    积分

    二级逆天

    积分
    923

    社区居民终身成就奖优秀斑竹奖宣传大使奖社区劳模最爱沙发社区明星灌水天才奖幽默大师奖贴图大师奖新人进步奖忠实会员

    发表于 2013-8-11 01:12:46 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    1145

    回帖

    1130

    积分

    二级逆天

    积分
    1130

    社区居民忠实会员终身成就奖宣传大使奖特殊贡献奖金点子奖贴图大师奖原创先锋奖幽默大师奖新人进步奖灌水天才奖

    QQ
    发表于 2014-9-26 12:47:12 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:10
  • 签到天数: 73 天

    [LV.6]常住居民II

    7

    主题

    441

    回帖

    2612

    积分

    二级逆天

    积分
    2612

    社区居民忠实会员终身成就奖特殊贡献奖

    QQ
    发表于 2014-9-29 09:12:28 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    16

    主题

    756

    回帖

    415

    积分

    二级逆天

    积分
    415

    终身成就奖原创先锋奖社区居民宣传大使奖

    QQ
    发表于 2015-2-28 16:12:18 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    10

    回帖

    14

    积分

    一级逆天

    积分
    14

    社区居民

    QQ
    发表于 2015-4-5 13:41:25 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 42 天

    [LV.5]常住居民I

    14

    主题

    1万

    回帖

    1万

    积分

    三级逆天

    积分
    10656

    社区居民忠实会员社区劳模终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2016-11-21 08:42:17 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:09
  • 签到天数: 106 天

    [LV.6]常住居民II

    0

    主题

    850

    回帖

    1540

    积分

    二级逆天

    积分
    1540

    终身成就奖特殊贡献奖

    QQ
    发表于 2016-11-24 09:08:24 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    12

    主题

    259

    回帖

    0

    积分

    百元学习allegro

    积分
    0

    终身成就奖

    QQ
    发表于 2016-12-2 19:37:54 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表