返回顶部

[安装] 我设计的电子密码锁(2)

  [复制链接]
zxg3115 显示全部楼层 发表于 2013-4-26 14:52:21 |阅读模式 打印 上一主题 下一主题 来自: 安徽黄山
因论坛发帖的字数限制,所以上一篇没有发完全。现补发如下:. U* {* P% Y# l. N; G( J
本密码锁可频繁、无限制次数的随意设置、修改、存储新开锁密码。根据Microchip公司PIC16F877A数据手册资料数据说明,PIC16F877A单片机内置的EEPROM存储器的擦写次数高达万次乃至百万次以上,单片机断电后其保存在EEPROM中的数据也不会丢失,并且可以保存长达四十年以上。
供电电源部分:硬件电路电源部分采用了两路供电方式供电工作。保险箱内部采用6V电池或干电池作为本机的供电电源。该6V电压经以Q7R23D5C7C8组成了简单的5V稳压电路供给单片机工作,数码管及电磁铁则直接用6V电压供电工作。为了防止机内电池电压在低落时不能驱动电磁铁而无法开启密码锁,本机又辅以了一个外加DC直流电压输入接口CZ1,在内置电池电力不足的情况下,可将外部DC12VDC30V电压通过保险箱外接的直流电源插口CZ1输入给密码锁电路板供电,考虑到外接电源供电电压的不确定性,电路中添加了一只限制电压极性的防反接二极管D3,防止外加电源电压极性与内电源极性相反时烧毁密码锁电路板。由U2集成三端稳压块LM7808稳压后的8V直流电压再经D4R22降压、限流加在机内电池的“+、—”极电源上给整机供电。保证了密码锁电路能正常、可靠、稳定地工作。
元器件的选用与电路的安装:电路中多数元器件均采用普通常用的电子元器件,无特殊要求,电磁铁按实际需要选用,数码管采用共阳极4位一体化数码管为好,这样不但可降低成本,也可以简化PCB上的布线设计,数码管的大小、发光颜色均依个人喜好和客观条件选用。电路中S3S6数码输入按键、S7开锁确认按键安装于一个独立的PCB电路板上,并且装于保险箱的面板上,以便于按键的操作。密码修改、存储、确认按键S1、单片机系统复位按键S2K-reset)则需要装于密码锁电路的主板之上,电路主板则装于保险箱体内,在保险箱门没有被打开之前任何人是触及不到这两个按键的。
程序设计要领:程序设计首先要对PIC16F877A单片机I/O端口进行初始化设置。源程序包含:主程序,按键子程序、按键短按与长按识别子程序,定时中断子程序,密码存储子程序,数码管动态显示子程序,蜂鸣器鸣响子程序,延时子程序,限制开锁次数子程序,存储、修改密码确认子程序,读、识别开锁密码子程序等组成。整个源程序用汇编语言书写,(.asm)文本文件大小约为22KB;烧写(.HEX)码大小:2.36KB
密码锁初始化程序段书写如下:
;*************引用PIC16F877A单片机头文件********************************
       LIST                     P=PIC16F877A
       #INCLUDE    <P16F877A.INC>
;************程序开始*****************************************************
              ORG      0000H
              NOP                            ;MLAB IDE调试时需要】
              GOTO     START           ;【程序跳到到START标号处执行】
ORG       004H             ;PIC单片机唯一的中断服务程序入口地址】
              GOTO     TMR0_SERV  ;【产生中断后程序跳到TMR0_SERV标号处执行】
              ORG       D'10'              ;【从地址D'10'存放程序】
;=================================================================
START                                       ;【程序从这里开始】
       BCF        STATUS,6             ;BANKΩ1
       BSF        STATUS,5             ;【选择体1
       CLRF      TRISC                  ;【设:RC端口为输出】
                                                 ;【其中RC7为蜂鸣器输出驱动】【1电平使能】
       MOVLW 0FFH                    ;【置数:0FFHB口方向设置寄存器】
       MOVWF TRISB                  ;【设置B口为输入,用于按键控制端口】
           MOVLW 0C0H                    ;【设A口为输出】驱动数码管【位码】和【电磁铁】
       MOVWF TRISA                  ;RA0用于驱动电磁铁】
       CLRF      OPTION_REG       ;【清选项寄存器】
       MOVLW 07H                      ;bit7=0禁止PORTB上拉,分频器分配给TMI0
       MOVWF OPTION_REG       ;【分频比=1:256
       MOVLW 07H                      ;【置数到ADCON1寄存器】
      MOVWF ADCON1            ;【设置RA为普通数字I/O口】
       BCF        STATUS,5             ;【到体0
;=================================================================;
密码锁主程序工作流程图如图2所示:
2 密码锁主程序工作流程图
密码锁定时中断子程序工作流程框图如图3所示。
                                          3密码锁定时中断子程序工作流程图
密码锁EEPROM密码存储子程序工作流程框图如图4所示
        
                                          4 EEPROM密码存储子程序工作流程框图
数码管显示子程序工作流程图如图5所示。
                                          5 数码管显示子程序工作流程图
程序中数码管显示电路采的是动态扫描法进行的,这样可以简化硬件电路设计,降低电路成本。本制作中采用的是LG5641BH四位一体化封装式共阳极型LED数码管,由于本程序中数码管的段码和蜂鸣器同用一个RC端口,这样在数码管正常显示的非报警状态下,蜂鸣器是不能出声的,因此,此查表显示码非彼查表显示码。
相关帖子

精彩评论2

艳阳天 显示全部楼层 发表于 2013-4-26 18:19:24 来自: 广东深圳
谢谢楼主分享,学习了
周金阳 来自手机 显示全部楼层 发表于 2021-9-26 12:03:35 来自: LAN
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册成为锁艺人

本版积分规则

中国锁艺人,这里是一个锁的世界,锁匠行业交流门户网站,聚集了锁具爱好者、锁具开发者、锁匠、锁匠协会、锁匠俱乐部、锁具企业等会员在这里交流互动。锁艺互动,技艺飞跃,洞悉锁艺奥秘。
  • 微信公众号

  • 论坛手机版

  • 商城手机版

  • Copyright © 2008-2022, Lockartist  | All Rights Reserved. 锁艺人 | 锁匠 | 开锁 | 开锁学校 | 西安开锁 | 西安汽车钥匙
  • 西安锁艺人安防设备有限公司 版权所有 陕ICP备12005758号-11 | 电子营业执照 | 经营许可证编号 陕B2-20200181