多功能密码锁
                    买蔬菜摘要
  电子密码锁具有安全性能高、成本低、功耗低、操作简单等优点使其作为防盗卫士的角越来越重要。现有国内市场上的电子密码锁有的是通过购买一些产品模块再开发,不具备自主知识产权;有的是自主研发的,但其功耗与成本都比较高,不具备广泛的应用价值。为了克服这些缺点,从经济实用角度出发,采用8255AA口与两片级联的74LS148组合,设计一款可更改密码,具有报警、实时监控和远程管理功能的电子密码锁。该电子密码锁体积小,易于开发、成本较低,安全性高,能将其存储的现场历史数据及时上报给上位机系统,实现网络实时监控,方便管理人员及时分析和处理数据。
  本设计8255AA口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为感恩母亲的手抄报图片10H;当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为cpu识别的代表键值的有效信号。读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序 
美国节假日 关键字:密码锁 八段数码管 矩阵式键盘 8255A 74LS148
                                Abstract
Electronic cipher lock with high safety performance, low cost, low power consumption, simple operation and other advantages make it as a security guard plays a more and more important role. The existing domestic market of electronic cipher lock or by purchasing some product module development, do not have independent intellectual property rights; some are independent research and development, but its power consumption and the cost is higher, does not have the extensive application value. In order to overcome these shortcomings, from the practical point of view of the economy, with 8255A A and two pieces of cascaded 74LS148combination, the design of a can change your password, with alarm, real-time remote monitoring and management system of electronic cipher lock. The electronic cipher lock has the advantages of small volume, easy development, low cost, high safety, it can be stored at the site of historical data timely reported to the host computer system, realize real-time network monitoring, convenient management personnel timely analysis and processing data.
The design of 8255A A and two pieces of cascaded 74LS148combined grounding for keyboard input, the realization of the input keys read. When working,8086 through the program to scan the keyboard, when the keyboard is pressed,74LS148operation without input, GS output high level, received PA4 as recognition has no button signal input, PA10H; when the key input, the input port of 74LS148received low level, input effectively, after encoding key number into a corresponding binary code to the PA port, to be able to recognize CPU representative key effective signal. Read the key signal by 8086judge, according to the different function, the output of different key response, and transferred to the corresponding function service program
Keywords:
password lock  eight digital tube  matrix keyboard  8255A  74LS148
                           
在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
一、 设计目标
1.密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启。
2.当输入密码错误时,发出错误警告声音,同时显示FF字样。
3.当六次误码输入的条件下,产生报警电平报警。
4.还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
二、 设计要求
外企面试英语自我介绍1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
三、 整体功能描述
本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若相隔1分钟无按键按下,则清零。iPhone15将被强制使用USB-C在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“00”闪烁三次提示修改密码成功。当输入密码错误时,发出错误警告声音,同时显示FF字样,当输入密码错误次数累积够6次后,蜂鸣器会产生90秒的报警声响进行报警。
四、硬件设计功能模块 
本设计使用了80868259A82558253A28F51274LS13874LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块。以下一一详述。
1.键盘
本设计8255AA口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为cpu识别的代表键值的有效信号。读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序。
本设计总共用到11位按键,包括10位数码输入按键及一位“复位/修改密码”按键,电路设计总共可用按键有16位,供升级功能使用。
键盘电路如下所示:
                        键盘连接图
2.中断控制
用一片8259芯片作为中断控制接口电路。可通过编程开中断,通过编程或者8253计时器关中断。电路连接如下:
                    2 中断控制器连接图
3.计时
采用8253计时器控制中断的关断,实现单次输入密码超时则退出输入密码中断子程序、报警器响铃时间控制等功能。电路如图2所示。
4.按键响应
8255PC0PC1接到数码管片选、PC2接到蜂鸣器、PC3接到电子锁。电路连接如图3所示:
                按键响应、报警、开锁功能电路                 
5.报警功能
同时用8255AB口控制数码管的显示,C口片PC0PC1选数码管,PC2用来驱动SPEAK发出报警。电路如图3所示。
6.储存器及片选电路
                            片选及存储器电路
7.整机电路图
                    5 整机电路图
五、软件流程图
                            6 软件流程图①
      7 软件流程图②
6、程序清单
主程序
各芯片地址:8259  30H
            8255  60H
            8253  20H
            存储器  2000H
DATAS SEGMENT              ;程序初始化
    DATA1 DB '0','0','0','0','0','0'
    DATA2 DB 6 DUP (?)
    DATA3 DB 6 DUP (?)
    DATA4 DB 6 DUP (?)
DATAS ENDS
STACKS SEGMENT PARA STACK'STACK'
    STA DB 100 DUP(?)
    TOP EQU LENGTH STA
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AX,STACKS
    MOV SS,AX
    MOV SP,TOP
    MOV AX,0              ;初始化中断向量表
    MOV ES,AX
    MOV BX,84H            ;IR1中断类型码21h*4=84h
    MOV AX,OFFSET INPUT
    MOV ES:[BX],AX
    MOV AX,SEG INPUT        ;段地址
    MOV ES:[BX+2],AX
    MOV AL,90H            ;8255初始化,A口方式0,输入;B、c口方式0,输出
OUT 63H,AL
MOV AL,36H              ;8253初始化,方式0
OUT 23H,AL
    MOV AL,13H            ;8259A初始化,ICW1
    OUT 30H,AL
    MOV AL,20H            ;ICW2
    OUT 31H,AL
    MOV AL,01              ;ICW4
    OUT 31H,AL
    MOV AL,00              ;OCW1
    OUT 31H
   
    MOV CX,06H            ;从RAM里读出密码到DATA2,密码为6位
    MOV SI,2000H
    MOV DI,OFFSET DATA2
LP1:MOV AL,[SI]
    MOV [DI],AL
    INC SI
    INC DI
    LOOP LP1                ;读入密码结束
   
    MOV BX,00            ;输入密码次数计数器初始值
RE: MOV AL,03H         
    OUT 62H,AL
    MOV AL,71H          ;未开锁,B口输出显示FF
    OUT 61H,AL
    MOV CX,06H         
    MOV SI,OFFSET DATA2    ;定义SI、DI
    MOV DI,OFFSET DATA3
    HLT                   
    STI                    ;停机,开中断,等待密码输入
    CLD
    INC BX                ;输入密码次数加1
    REPE CMPSB            ;将输入六位数码与密码比较
    CMP CX,00
    JE OPEN              ;相等则转到开锁
    CMP BX,06H            ;输入错误且累积未够6次,重新输入
    JNE RE
    MOV AL,07H          ;若错误次数累积够6次,触发蜂鸣器报警
OUT 62H,AL
    MOV AL,71H          ;B口输出FF
    OUT 61H,AL
MOV AL,2048H        ;报警铃响计时,90秒后关断蜂鸣器,保持显示FF   
OUT 20H,AL
MOV AL,03H
OUT 62H,AL
    JMP DOON            ;跳到结束
OPEN:MOV AL,0BH          ;开锁,并显示00
    OUT 62,AL
    MOV AL,3FH
    OUT 61H
C1:  IN AL,60H
    CALL D20MS          ;去抖动
    CMP AL,00H
    JE C1
    CMP AL,0AH          ;扫描键盘,是否有修改密码建(10)输入
    JNE DOON            ;没有则结束
C0:  MOV SI,OFFSET DATA2    ;重新定义SI、DI
    MOV DI,OFFSET DATA3
    MOV CX,06H
    HLT
    STI                  ;开中断,输入修改程序
C2:  MOV AL,[DI]
    MOV [SI],AL
    INC SI
    INC DI
    LOOP C2            ;输入密码转移到data2
    IN AL,60H          ;扫描键盘,若有修改密码键输入则重新修改
    CALL D20MS
    CMP AL,0AH
    JE C0
C3:  MOV SI,OFFSET DATA2  ;再次输入密码确认
    MOV DI,OFFSET DATA3
    MOV CX,06H
    HLT
    STI
    REPE CMPSB
    CMP CX,00              ;若data2与data3不相等则从新输入
    JNE C3
    MOV CX,06H            ;若相等,则从DATA2写密码到RAM
    MOV SI,2000H
    MOV DI,OFFSET DATA2
C4:  MOV AL,[DI]
    MOV [SI],AL
    INC SI
    INC DI
    LOOP C4              ;转存密码结束
    CALL RING2            ;蜂鸣三次,表示修改好了
    IN AL,60H              ;扫描键盘,若有修改密码键输入则重新修改
    CALL D20MS
    CMP AL,0AH
    JE C0   
    JMP DOON              ;修改完毕,转到结束
           
;中断子程序
INPUT: PUSH AX            ;保护现场
      PUSH DS
      PUSH BX
      PUSH CX
      PUSH DI
      PUSH SI
      MOV AL,1020H      ;8253开始一分钟输入限制计时
      OUT 20H,AL
IN1:  IN AL,60H            ;读A口
      CALL D20MS        ;去抖动
      CMP AL,10H         
      JE IN1              ;若无按键按下,则重新扫描
               
      CMP AL,0AH        ;若有按键按下,比较是否为复位键
      JNE IN3             
     
      CALL RING1          ;为复位键则输出按键有效提示音并重新输入
      MOV CX,06H
      MOV DI,OFFSET DATA3
      JMP IN1
IN3:  CALL RING1          ;若不是复位键,则把键值送到data3
      MOV [DI],AL
      INC DI
      LOOP IN1              ;循环,扫描下一次按键,直到输入够6位密码
      MOV AL,01
      OUT 30,AL
      POP SI              ;中断结束恢复现场
      POP DI
      POP CX
      POP BX
      POP DS
      POP AX
      CLI                  ;关中断
      IRET                ;中断返回
DOON: MOV AH,4CH
      INT 21H
   
   
20ms延时子程序
D20MS PROC NEAR           
    PUSH CX
    MOV CX,0080H
D1: DEC CX
    LOOP D1            ;循环
    POP CX
    RET                  ;返回
D20MS ENDP
;输入按键响应子程序
RING1 PROC NEAR             
    PUSH AX              ;保护AX\CX
    PUSH CX
    MOV CX,05H            ;设置提示音为0.1
    MOV AL,07H            ;输出显示“- -”字样
    OUT 62H,AL
    MOV AL,40H
    OUT 61H,AL
R1: CALL D20MS
    LOOP R1
    MOV AL,00H            ;数码管灭
    OUT 62H,AL
    POP CX
    POP AX
    RET                  ;返回
RING1 ENDP
;修改确认铃声子程序
RING2 PROC NEAR             
    PUSH AX
    PUSH CX
    MOV CX,03H          ;三次0.1秒的提示声
R2: MOV AL,0FH            ;开铃声
    OUT 62H,AL
    MOV AL,40H
    OUT 61H,AL
    CALL D20MS            ;延时0.1
    CALL D20MS
    CALL D20MS
    CALL D20MS
    CALL D20MS
    MOV AL,00H
    OUT 62H,AL              ;关铃声
    CALL D20MS            ;延时0.1
    CALL D20MS
    CALL D20MS
    CALL D20MS
    CALL D20MS
    LOOP R2                ;循环
    MOV AL,0BH              ;恢复开锁状态
    OUT 62H,AL
    MOV AL,3FH
    OUT 61H,AL
    POP CX
    POP AX
    RET
RING1 ENDP                    ;返回
CODES ENDS
END START                ;结束
七、设计总结
①、遇到的问题及解决方法
  首先遇到的问题是键盘的设计,刚开始想用8279,但是对8279不够熟悉,研究了一下就放弃了,再而想到用8255AB口组合64位矩阵键盘或者用C口低4位与高4位组合的16位键盘,但最后还是使用了开关与编码器组合的形式组成16位键盘,简单明了,但是还没有解决双键同时按下的问题。
  再而由于学8259的时候不够认真,所以开始写8259初始化的时候也显的力不从心,最终参考了书本和其他资料,还是写了出来。
  设计中接触到的另一个问题是密码的储存的问题,刚开始没有想到cpu关机后密码消失的问题,后来加了一篇存储器实现了密码的保存。
  遇到的其他问题都跟同学们讨论而得到了一定的解决。
②、课程设计总结
086中断通过本次课程设计,我进一步了解 8255,8253,8259等芯片的内部结构,熟悉各种基本工作模式和编程方法;
加深了对 8系统工作过程的了解;
学会综合应用多种微机接口与单元电路,构成满足要求的小型微机应用系统;
学会了CPU与存储器的连接方法,扩展存储空间的方法。
参考文献
[1] 谢宋和,   . 单片机模糊控制系统设计与应用实例[M]. 北京: 电子工业出版社, 1999.520-25
[2] 潘新民, 王燕芳. 微型计算机控制技术[M], 2. 北京: 电子工业出版社, 2003.4305-350
[3] 范立南, 谢子殿. 单片机原理及应用教程[M]. 北京: 北京大学出版社, 2006.1123-130
[4] Newman W M, Sbroull R F. Principles of Interactive Computer Graphics[M]. New York: McGraw Hill, 1979.1010-25
[5]卜小明, 龙全求. 一种薄板弯曲问题的四边形位移单元[J]. 力学学报, 1991,23(1):53-60
[6] Mastri A R. Neuropathy of diabetic neurogenic bladder[J]. Ann Intern Med, 1980, 92(2):316-318
[7] 范立南, 韩晓微, 王忠石等. 基于多结构元的噪声污染灰度图像边缘检测研究[J]. 武汉大学学报(机票退票扣多少手续费工学版), 200349(3):45-49

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。