当前位置:文档之家› 四位电子密码锁代码

四位电子密码锁代码

四位电子密码锁代码
四位电子密码锁代码

module index(input clk,

input pw_1, input pw_2, input pw_3, input pw_4,

input pw_5, input pw_6, input pw_7, input pw_8,

input sti_0, input sti_1, input sti_2,

output x, output y,

output reg red, output reg green, output reg alarm,

output reg num0_1, output reg num0_2, output reg num0_3, output reg num0_4, output reg num0_5, output reg num0_6, output reg num0_7, output reg num0_8, output reg num1_1, output reg num1_2, output reg num1_3, output reg num1_4, output reg num1_5, output reg num1_6, output reg num1_7, output reg num1_8 );

/*

* clk : clock

* pw : password

* sti : stimulation

* red/green : output LED

* num: nixie

*

*/

reg ctrl;

reg cc;

assign x = 1;

assign y = 1;

initial begin

cc <= 1'b0;

alarm <= 1'b0;

ctrl <= 1'b0;

red <= 1'b1;

green <= 1'b0;

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b1;

num0_8 <= 1'b1;

num1_1 <= 1'b1;

num1_2 <= 1'b0;

num1_3 <= 1'b1;

num1_4 <= 1'b1;

num1_5 <= 1'b0;

num1_6 <= 1'b1;

num1_7 <= 1'b1;

// CLK 分频

reg CLK;

parameter N = 20000000;

reg [31:0]ip;

reg [31:0]ipr;

always @(posedge clk) begin if(ip < N/2) begin

ip <= ip + 1;

end

else begin

CLK <= ~CLK;

ip <= 36'b0;

end

end

// 设置密码

reg str_0, str_1, str_2, str_3; reg in_0, in_1, in_2, in_3;

reg in__; reg vtrl;

integer count = 0;

// 计时器

integer timer = 5;

always @(posedge CLK) begin if(sti_2 == 1'b1) begin

ctrl <= 1'b1;

end

in__ <= sti_1;

case(count)

0: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b1;

num0_7 <= 1'b0;

end

1: begin

num0_1 <= 1'b0;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_5 <= 1'b0;

num0_6 <= 1'b0;

num0_7 <= 1'b0; end

2: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b0;

num0_4 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b0;

num0_7 <= 1'b1; end

3: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b0;

num0_6 <= 1'b0;

num0_7 <= 1'b1; end

4: begin

num0_1 <= 1'b0;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b0;

num0_5 <= 1'b0;

num0_6 <= 1'b1;

num0_7 <= 1'b1; end

5: begin

num0_1 <= 1'b1;

num0_2 <= 1'b0;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b0;

num0_6 <= 1'b1;

num0_7 <= 1'b1; end

6: begin

num0_1 <= 1'b1;

num0_2 <= 1'b0;

num0_4 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b1;

num0_7 <= 1'b1;

end

7: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b0;

num0_5 <= 1'b0;

num0_6 <= 1'b0;

num0_7 <= 1'b0;

end

8: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b1;

num0_7 <= 1'b1;

end

9: begin

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_4 <= 1'b1;

num0_5 <= 1'b0;

num0_6 <= 1'b1;

num0_7 <= 1'b1;

end

endcase

if(sti_2 == 1'b1) begin

in_0 <= pw_5;

in_1 <= pw_6;

in_2 <= pw_7;

in_3 <= pw_8;

if(pw_1 == 1'b1 && in_0 == str_0 && in_1 == str_1 && in_2 == str_2 && in_3 == str_3) begin

if(cc == 1'b0) begin

count <= count;

cc <= 1'b1;

end

else begin

count <= count + 1;

end

green <= 1'b1;

red <= 1'b0;

alarm <= 1'b0;

end else if(pw_1 == 1'b1 && (in_0 != str_0 || in_1 != str_1 || in_2 != str_2 || in_3 != str_3)) begin

if(cc == 1'b0) begin

count <= count;

cc <= 1'b1;

end else begin

count <= count +1 ;

end

end else if(pw_1 == 1'b0) begin

if(in_0 == str_0 && in_1 == str_1 && in_2 == str_2 && in_3 == str_3) begin

if(cc == 1'b0) begin

count <= count;

cc <= 1'b1;

end else begin

count <= count +1;

end

green <= 1'b1;

red <= 1'b0;

alarm <= 1'b0;

end

count <= count;

end

if(count == 9) begin

alarm <= 1'b1;

red <= 1'b1;

green <= 1'b0;

end

end

if(pw_1 == 1'b1) begin

case(timer)

0: begin

num1_1 <= 1'b1;

num1_2 <= 1'b1;

num1_3 <= 1'b1;

num1_4 <= 1'b1;

num1_5 <= 1'b1;

num1_7 <= 1'b0; end

1: begin

num1_1 <= 1'b0;

num1_2 <= 1'b1;

num1_3 <= 1'b1;

num1_4 <= 1'b0;

num1_5 <= 1'b0;

num1_6 <= 1'b0;

num1_7 <= 1'b0; end

2: begin

num1_1 <= 1'b1;

num1_2 <= 1'b1;

num1_3 <= 1'b0;

num1_4 <= 1'b1;

num1_5 <= 1'b1;

num1_6 <= 1'b0;

num1_7 <= 1'b1; end

3: begin

num1_1 <= 1'b1;

num1_2 <= 1'b1;

num1_3 <= 1'b1;

num1_4 <= 1'b1;

num1_5 <= 1'b0;

num1_6 <= 1'b0;

num1_7 <= 1'b1; end

4: begin

num1_1 <= 1'b0;

num1_2 <= 1'b1;

num1_3 <= 1'b1;

num1_4 <= 1'b0;

num1_5 <= 1'b0;

num1_6 <= 1'b1;

num1_7 <= 1'b1; end

5: begin

num1_1 <= 1'b1;

num1_2 <= 1'b0;

num1_3 <= 1'b1;

num1_4 <= 1'b1;

num1_6 <= 1'b1;

num1_7 <= 1'b1;

end

endcase

if(in_0 == str_0 && in_1 == str_1 && in_2 == str_2 && in_3 == str_3) begin timer <= timer;

red <= 1'b0;

green <= 1'b1;

end else if(ipr < 5) begin

timer <= timer;

red <= 1'b1;

green <= 1'b0;

ipr <= ipr + 1;

end else if(ipr == 5 && ctrl == 1'b1) begin

timer <= timer - 1;

red <= 1'b1;

green <= 1'b0;

ipr <= 0;

end

if(timer == 0) begin

red <= 1'b1;

green <= 1'b0;

alarm <= 1'b1;

end

end

else begin

timer <= 5;

end

if(in__ == 1'b1) begin

timer <= 5;

in_0 <= 0;

in_1 <= 0;

in_2 <= 0;

in_3 <= 0;

count <= 4'b0000;

ctrl = 1'b0;

green <= 1'b0;

cc <= 1'b0;

alarm <= 1'b0;

red <= 1'b1;

num0_1 <= 1'b1;

num0_2 <= 1'b1;

num0_3 <= 1'b1;

num0_5 <= 1'b1;

num0_6 <= 1'b1;

num0_7 <= 1'b0;

num1_1 <= 1'b1;

num1_2 <= 1'b0;

num1_3 <= 1'b1;

num1_4 <= 1'b1;

num1_5 <= 1'b0;

num1_6 <= 1'b1;

num1_7 <= 1'b1;

end

if(sti_0 == 1'b1) begin

str_0 <= pw_5;

str_1 <= pw_6;

str_2 <= pw_7;

str_3 <= pw_8;

end

end

endmodule

管脚绑定:

芯片型号:Xinlinx Artix-7 FPGA xc7k70tfbv676-1

set_property IOSTANDARD LVCMOS33 [get_ports alarm] set_property IOSTANDARD LVCMOS33 [get_ports clk]

set_property IOSTANDARD LVCMOS33 [get_ports green] set_property IOSTANDARD LVCMOS33 [get_ports num0_1] set_property IOSTANDARD LVCMOS33 [get_ports num0_2] set_property IOSTANDARD LVCMOS33 [get_ports num0_3] set_property IOSTANDARD LVCMOS33 [get_ports num0_4] set_property IOSTANDARD LVCMOS33 [get_ports num0_5] set_property IOSTANDARD LVCMOS33 [get_ports num0_6] set_property IOSTANDARD LVCMOS33 [get_ports num0_7] set_property IOSTANDARD LVCMOS33 [get_ports num0_8] set_property IOSTANDARD LVCMOS33 [get_ports num1_1] set_property IOSTANDARD LVCMOS33 [get_ports num1_3] set_property IOSTANDARD LVCMOS33 [get_ports num1_2] set_property IOSTANDARD LVCMOS33 [get_ports num1_4] set_property IOSTANDARD LVCMOS33 [get_ports num1_5]

set_property IOSTANDARD LVCMOS33 [get_ports pw_1] set_property IOSTANDARD LVCMOS33 [get_ports num1_7] set_property IOSTANDARD LVCMOS33 [get_ports num1_6] set_property IOSTANDARD LVCMOS33 [get_ports num1_8] set_property IOSTANDARD LVCMOS33 [get_ports pw_2] set_property IOSTANDARD LVCMOS33 [get_ports pw_3] set_property IOSTANDARD LVCMOS33 [get_ports pw_4] set_property IOSTANDARD LVCMOS33 [get_ports sti_2] set_property IOSTANDARD LVCMOS33 [get_ports sti_1] set_property IOSTANDARD LVCMOS33 [get_ports red]

set_property IOSTANDARD LVCMOS33 [get_ports pw_8] set_property IOSTANDARD LVCMOS33 [get_ports sti_0] set_property IOSTANDARD LVCMOS33 [get_ports pw_6] set_property IOSTANDARD LVCMOS33 [get_ports pw_7] set_property IOSTANDARD LVCMOS33 [get_ports pw_5] set_property PACKAGE_PIN K1 [get_ports alarm]

set_property PACKAGE_PIN H6 [get_ports green]

set_property PACKAGE_PIN H5 [get_ports red]

set_property PACKAGE_PIN B4 [get_ports num0_1]

set_property PACKAGE_PIN A4 [get_ports num0_2]

set_property PACKAGE_PIN A3 [get_ports num0_3]

set_property PACKAGE_PIN B1 [get_ports num0_4]

set_property PACKAGE_PIN A1 [get_ports num0_5]

set_property PACKAGE_PIN B3 [get_ports num0_6]

set_property PACKAGE_PIN B2 [get_ports num0_7]

set_property PACKAGE_PIN D5 [get_ports num0_8]

set_property PACKAGE_PIN D4 [get_ports num1_1]

set_property PACKAGE_PIN E3 [get_ports num1_2]

set_property PACKAGE_PIN D3 [get_ports num1_3]

set_property PACKAGE_PIN F4 [get_ports num1_4]

set_property PACKAGE_PIN F3 [get_ports num1_5]

set_property PACKAGE_PIN E2 [get_ports num1_6]

set_property PACKAGE_PIN D2 [get_ports num1_7]

set_property PACKAGE_PIN H2 [get_ports num1_8]

set_property PACKAGE_PIN P5 [get_ports pw_1]

set_property PACKAGE_PIN P4 [get_ports pw_2]

set_property PACKAGE_PIN P3 [get_ports pw_3]

set_property PACKAGE_PIN P2 [get_ports pw_4]

set_property PACKAGE_PIN R2 [get_ports pw_5]

set_property PACKAGE_PIN M4 [get_ports pw_6]

set_property PACKAGE_PIN N4 [get_ports pw_7]

set_property PACKAGE_PIN R1 [get_ports pw_8]

set_property PACKAGE_PIN U4 [get_ports sti_0]

set_property PACKAGE_PIN R17 [get_ports sti_1]

set_property PACKAGE_PIN R15 [get_ports sti_2] set_property PACKAGE_PIN P17 [get_ports clk]

set_property IOSTANDARD LVCMOS33 [get_ports x] set_property IOSTANDARD LVCMOS33 [get_ports y] set_property PACKAGE_PIN G2 [get_ports x]

set_property PACKAGE_PIN G6 [get_ports y]

四位数字密码锁

数字电路基础实验设计报告班级:521 姓名:李世龙 学号:2010052106 设计题目:四位数字密码锁 指导老师:张光普

四位密码锁 一设计任务:通过组合逻辑电路来实现四位密码锁功能。当输入正确的密码时LED灯亮但蜂鸣器不响,输入错误密码时LED灯不亮但蜂鸣器响。当关闭密码锁开关时无论输入什么样的密码LED灯都亮蜂鸣器都响。密码的输入由开关的闭合与断开控制高低电平进行密码的输入。 二设计原理: 开关J1,J2, J3,J4通过接低电平或者接入高电平进行密码的输入,J5为密码锁的开关当它接入高低电平来控制密码锁是否工作。其他的门电路来实现密码锁转换功能。

真值表 J5 J1 J2 J3 J4 LEDBUZZE R 0 ×××× 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 01 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 10 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 三测量和调试结果: 当J5接入电平密码锁处于非工作状态无论输入密码是什么LED灯都会亮起,蜂鸣器会一直响。当J5接入高电平时密码锁处于正常工作状态,当输入正确的密码1100时即J1,J2接入高电平J3,J4接入低电平时LED灯会亮但蜂鸣器不会响,当输入其他密码时均为错误密码LED灯不亮蜂鸣器会响。 按照设计原理图接好电路后发现输入正确的密码LED灯会亮,但输入错误的密码和密码锁处于非工作状态时蜂鸣器不响。通过对电路的检查发现蜂鸣器的正负接反了重新改正电路,电路正常工作 设计任务完成 四参考文献

电子密码锁报告

基于单片机控制的电子密码锁 设计者:张雪贵 指导老师:李峥 淮北煤炭师范学院物理与电子信息学院 06电子信息工程 2009年6月

基于单片机的电子密码锁 一设计任务 设计一个利用AT89S52单片机控制的电子密码锁,该电子密码功能包括16个密码输入,密码输入过程中清除输入,密码正确和错误分别用蜂鸣器提示,输入错误密码超次锁定,密码修改,12864LCD 显示菜单实现多功能等等。 二总体方案设计与实现 电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入,外加独立按键实现清除,确定和液晶反白控制。密码存储电路利用AT24C02芯片,该芯片可以实现掉电存储,而且数据可保留时间长,与单片机连接简单。报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂鸣器送不同频率的电平信号实现不同声音报警。LCD用12864字符型液晶实现,通过单行反白实现菜单,加强液晶显示内容及添加系统功能。 另外,电磁锁电路暂时利用发光二极管代替,用发光二极管的亮灭和蜂鸣器的响声来指示电磁锁的开关。 图1 系统原理框图 图2系统总体原理电路图 三硬件电路的功能单元设计 (一)单片机最小系统

其原理图如图1所示 图3 单片机最小系统模块 单片机采用AT89S52单片机, AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。在此,我们采用按键手动复位,相对来讲,这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。 (二)开锁电路 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图2 所示。 图4 开锁电路原理 当用户输入的密码正确单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。在此为节省成本考虑,我们用二极管代替电磁锁,将一切在LCD上面显示,并且利用蜂鸣器和二极

基于51单片机的无线电子密码锁课程设计[优质文档]

单片机课程设计报告书 基于89C51单片机 课题名称 无线电子密码锁的设计姓名刘武 学号131220330 学院通信与电子工程学院 专业电子信息工程 指导教师祝秋香讲师 2015年12月20日

基于89C51单片机无线电子密码锁的设计 1 设计目的 (1)了解MCS-51单片机使用方法和熟悉蓝牙模块; (2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用; (3)熟悉单片机程序仿真软件Proteus的使用; (4)了解MCS-51单片机开发板工作原理以及芯片的组合; (5)熟悉无线电子密码锁的设计及实现。 2设计思路 2.1 选择设计电路 设计51单片机与蓝牙连接的电路。 2.2 所选设计电路的原因 (1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。 (2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。 (3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。应用在实际中可用继电器替代LED的亮灭去控制强电开关。 3 设计过程 3.1 设计总框图 无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。这两个模块共同工作完成本电路的功能实现。其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来

基于FPGA的四位电子密码锁设计与实现 专业综合实训报告

基于FPGA的四位电子密码锁设计与实现 摘要: 针对于传统密码锁安全性能低及可靠性差等问题,立足于芯片中数据存储的保密性,运用EDA技术自顶向下的设计方法,提出了基于FPGA的四位电子密码锁的设计与实现方法,所设计的四位电子密码锁具有解锁、密码修改、报警提示及液晶显示功能。设计分析与仿真结果表明,基于FPGA所设计的四位电子密码锁保密性更高、灵活性更好,使得数据存储的整体可靠性增强,为提高数据的保密性提供了新的解决方案。 关键词:密码锁;FPGA;保密性;EDA技术; Design and Implementation of 4-Bit Electronic Cipher Lock Based on FPGA WANG Guo-qiang LI Shang-fu WANG Fei XIE Li-li WANG Qin SUN Bai School of Electronic Engineering,Heilongjiang University; Abstract: Traditional lock faces safety problem of low performance and poor reliability. Based on the data stored in the chip of confidentiality,and using EDA technology top-down design approach,we proposed the design and implementation of a 4-bit FPGA-based electronic lock,which provides unlock,passwordchange,alarm and LCD functions.Design analysis and simulation results show that the designed FPGA-based electronic lock provides better confidentiality,flexibility and reliability for data storage.This approach provides a novel solution for improving data confidentiality. Keyword: Coded lock;FPGA;Confidentiality;EDA technology; 0 引言 随着时代的发展,人们生活水平逐步提高,同时安全意识也日益增强,如何实现家庭防盗这一问题就尤其突出。传统的机械锁由于其构造简单,锁芯直接外露,导致被撬的事情比比皆是。因此,随着电子技术工业的发展,数字电子技术已经深入到人们的日常生活中,层出不穷的电子产品也向着高端方向发展,电子密码锁也就应运而生,在生活安全领域,具有防盗、报警功能的电子密码锁完全打破了机械密码锁的密码量少和安全性差的缺点[1]。 电子密码锁的复杂性,需要设计专门的电子电路和技术,许多相关研究机构和组织的科研人员进行了大量研究。目前该领域的研究主要集中在如何使电子密码锁体积缩小、可靠性

电子电路课程设计密码锁(满分实验报告)

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁GAL16V8 28C64 解锁与报警 1

目录: 一、系统结构与技术指标 1、系统功能要求 (4) 2、性能和电气指标 (5) 3、设计条件 (5) 二、整体方案设计 1、密码设定 (6) 2、密码判断 (6) 3、密码录入和判断结果显示 (6) 4、系统工作原理框面 (7) 三、单元电路设计 1、键盘录入和编码电路图 (8) 2、地址计数和存储电路 (12) 3、密码锁存与比较电路 (12) 2

4、判决与结果显示电路 (14) 5、延时电路 (15) 6、复位 (17) 7、整机电路图 (19) 8、元件清单……………………………………………19四、程序清单 1、第一片GAL (21) 2、第二片GAL (23) 五、测试与调整 1、单元电路测试 (25) 2、整体指标测试 (26) 3、测试结果 (26) 六、设计总结 1、设计任务完成情况 (27) 2、问题及改进 (27) 3、心得体会 (28) 3

一、系统结构与技术指标 1.系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如 果输入密码有误或者输入时间过长,则发出警报。 密码锁的系统结构框图如下图所示,其中数字键盘用于输入 密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。 开锁green 键盘密码锁 错误red 4

电子密码锁单片机课程设计

电子密码锁单片机课程设计

单片机原理与应用技术课程设计报告 电子密码锁设计 专业班级:电气 124 姓名: 时间:2015年1月2日 指导教师:秦国庆 2015年1月2日

电子密码锁课程设计任务书 1.设计目的与要求 设计出一个电子密码锁。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能: (1)状态显示功能:锁定状态时系统用3位数码管显示OFF, 用3位码管显示成功开锁次 数;成功开锁时用3位数码管 显示888,用3位数码管显示 成功开锁次数。 (2)密码设定功能:通过一个4×4的矩阵式键盘可以任意设 置用户密码(1-26位长度), 同时系统掉电后能自动记忆 和存储密码在系统中。(3)报警和加锁功能:密码的输入

时间超过12秒或者连续3次 输入失败,声音报警同时锁定 系统,不让再次输入密码。此 时只有使用管理员密码方能 对系统解锁。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。 1

电子密码锁 电气124 赵政权 摘要:电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。本设计利用51单片机编程控制原理,采用矩阵键盘、数码管显示、数据存储器和报警系统构成电子密码锁的设计成品。其中数码管使用两组三位一体共阳数码管,数据存储器使用AT24C04芯片通过IIC协议实现数据的传输,矩阵键盘用执行效率极高的代码扫描控制。使用Keil4.6编写程序代码,用Proteus进行仿真,无误后使用Altium制图,最终做成能使用的成品。 关键词: 51单片机 IIC协议矩阵键盘动态显示 Keil Proteus Altium 2

四位电子密码锁.

专业工程设计说明书 题目:4位电子密码锁设计 院(系):电子工程与自动化学院 专业:测控技术与仪器(卓越) 学生姓名:蔡伟航 学号:1200820206 指导教师:黄源 2015年1月16日

锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻。随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。 本设计由主控芯片51单片机,单片机时钟电路,矩阵键盘,数码管的动态显示,报警电路和开锁电路组成。单片负责控制整个系统的执行过程。 关键词:AT89S51、时钟电路、矩阵键盘、数码管的动态显示、报警电路,开锁电路。

引言 (1) 1课程设计题目 (1) 2 系统设计 (2) 2.1 总的系统设计结构图 (2) 2.2系统硬件设计 (2) 3 AT89S52最小系统设计 (3) 3.1 时钟电路设计 (3) 3.2 复位电路设计 (4) 4 键盘及显示报警电路的硬件设计 (5) 4.1 矩阵键盘电路设计 (5) 4.2 显示电路硬件设计 (5) 4.3 继电器驱动电路及报警电路设计 (6) 4.3.1继电器简介 (6) 4.3.2 固态继电器驱动电路设计 (7) 4.3.3报警提示电路 (7) 5 系统软件设计 (8) 5.1主程序模块 (9) 5.2密码比较判断模块 (9) 5.3键盘扫描模块 (9) 5.4修改密码模块 (10) 5.5数码管液晶显示模块 (11) 6 总体调试 (11) 7 总结 (12) 参考文献 (13) 附录 (14)

电子密码锁实验报告

电子密码锁实验报告 一,实验目的 1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。 2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。 3.学会自己独立分析问题、解决问题。 4学习定时器时间计时处理、按键扫描及LED数码管显示的设计方法。 5.根据设计任务及要求利用实验平台上单片机及其外围元器件,设计符合 功能的电子密码锁。 二,实验要求 设计要求: 1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。 2:可以自行设定或删除8位密码,能够掉电保存。 3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示; 若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。 三,实验基本原理 1.键盘接口必须具有去抖动、按键识别基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方

法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 2.利用键盘扫描原理分别设4×4矩阵键盘组成0-9数字键及确认键和删除键,通过0—9数字键设定8位密码和删除键删除密码,利用存储器的永久存储特性将设定的密码存于存储器中,再次重启程序时,能从存储器中读取出来,从而实现掉电保存。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 Led发光二级管低电平发亮,高电平熄灭的特性实现led提示功能。 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,从而实现led亮1秒或3秒。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为按键程序、数码管显示程序、发光二级管程序,存储器程序,密码设定程序、密码删除程序、定时器程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最

数字电子技术课程设计电子密码锁

课程设计说明书 课程名称: 数字电子技术课程设计 题目:电子密码锁 学生姓名: 专业: 班级: 学号: 指导教师: 日期:年月日

电子密码锁 一、设计任务与要求 1.用电子器件设计制作一个密码锁,使之在输入正确的代码时开锁。 2.在锁的控制电路中设一个可以修改的4位代码,当输入的代码和控制电路的代码一致是锁打开。 3.用红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁 4.如5s内未将锁打开,则电路自动复位进入自锁状态,并发报警信号. 二、方案设计与论证 1、用按键输入四位十进制数字,输入密码要存储。 2、比较输入密码和原始密码.当输入正确密码时,给出开锁信号,开锁信号用一个绿色指示灯表示,绿灯亮表示密码输入正确;如果输入密码不正确,用红灯表示。 3、锁的开关用红灯和绿灯表示,一次只能亮一盏。红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁。 4、设置倒计时电路和自锁电路。如果密码在5s内未能输入正确则发出报警声,并且自锁电路。 5、设置密码设置开关,开关闭合后,允许设置密码,设置好密码后,打开此开关。 6、需要在输入密码开始时识别输入,并由此触发计时电路. 方案一用74LS147译码器来把按键输入转化为二进制。通过8片四位寄存器74LS194实现密码功能,其中四片用来存储预置密码,另四片则用来存储输入的密码。当密码开始输入时开始计时,通过74LS192计数器实现计时功能;然后在密码输入期间,用74LS138数据选择器来选片存储。数据选择器的输入端又一个两位的二进制的加法计数器来控制,当键盘有按键输入时计数器就加1,当一个按键按完后会轮到下一个芯片存储。自锁功能利用74LS138来控制.通过四片74LS85芯片判断原始密码和输入密码是否相同,接着用指示灯来表示密码的输入正确与否,如果密码没有输入正确的话,则红灯亮,否则则绿灯亮。若是没在规定时间输入正确密码,则会发出警报信号(蜂鸣器响).

基于单片机的电子密码锁及程序

基于单片机的电子密码 锁及程序 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

基于单片机的电子密码锁设计 摘要 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于构造简单,被撬事件屡见不鲜。电子密码锁保密性好,使用灵活性高,收到广大用户的青睐。 本设计是以单片机AT89C52作为密码锁的主控芯片与数据存储单元,结合外围的矩阵键盘输入、LCD显示、开锁、报警等,用C语言编写程序,并用Keil uVision4软件进行编译设计了一款可以更改密码,具有报警功能的电子密码控制系统。 本设计采用矩阵键盘对密码进行输入,具有较高的优势,减少了I/O 口的占用数目。密码的显示采用LCD显示屏实现,为确保安全性统一使用“*”显示密码,当重新设置密码时按下“修改”键,LCD显示屏显示数字。采用蜂鸣器模拟报警系统,增加了密码锁的安全能力。软件使用C 语言编程,运用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,设计达到电子密码锁的功能。 关键字:密码锁、AT89C52、矩阵键盘、报警 一、设计背景 随着社会科技的进步,锁已经发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像来控制锁的开

启,从而大大提高了锁的安全性。当今安全信息系统应用越来越广泛,特别在机密保护、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的一部分,运用非常广泛,研究它具有重大的现实意义。 电子密码锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89C52单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。 二、设计目的 1.了解单片机开发系统的组成及结构; 2.掌握I/O口的操作方法; 3.能够熟练使用protues和keil软件进行连线和编程,并熟练掌握仿 真方法; 4.掌握LCD显示屏的显示原理; 5.掌握C语言编程方法; 6.培养查找错误和改正错误的能力。

4位数字密码锁的设计

1技术指标 用与非门设计一个4位或多位代码的数字锁,要求如下: A:设计一个保险箱用的多位代码数字锁,比如4位代码ABCD四个输入端和一个开锁用的钥匙插孔输入端E,当开箱时(E=1),如果输入代码(例如ABCD=1010)与设定的代码相同,则保险箱被打开,即输出端Z=1,否则电路发出报警信号: B: 进行电路仿真,并说明其工作原理。

2方案比较 方案一:由4个单刀双掷开关构成密码开关,用户可以通过控制开关来控制A、B、C、

3Proteus软件介绍 Proteus软件是来自英国Labcenter electronics公司的EDA工具软件。 Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。 Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被《电子世界》在其对PCB 设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。 其功能模块:—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARES PCB设计。PROSPICE仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。 Proteus支持许多通用的微控制器,如PIC,A VR,HC11以及8051。 交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘。 Proteus有强大的调试工具;包括寄存器和存储器,断点和单步模式。 IAR C-SPY和Keil uVision2等开发工具的源层调试。 Proteus应用特殊模型的DLL界面-提供有关元件库的全部文件。 Proteus与其他的仿真软件相比较,在下面的优点: 1、能仿真模拟电路、数字电路、数模混合电路; 2、能绘制原理图、PCB图; 3、几乎包括实际中所有使用的仪器;

电子密码锁课程设计

目录 摘要 本次课程设计的题目是电子密码校验设计,由输入密码、设定密码、寄存电路、比较电路、显示电路、修改密码等模块组成。 该电子密码锁利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

主要工作部分是将输入密码与正确密码进行比较,密码正确时绿色发光二极管亮,密码错误则红色发光二极管亮。输入电路将6位密码并行输入,密码是否相等利用与非门将输入的密码和预定密码进行比较,当相等时便触发绿色发光二极管,不相等则作用到红色发光二极管和蜂鸣器。 1.设计目的 本课程为电子、通信类专业的独立实践课,该课程设计建立在电路基础、低频与高频电子线路等课程的基础上,主要让学生加深对电子线路理论知识的掌握,使学生能把所学的知识系统地、高效地贯穿到实践中来,避免理论与实践的脱离,同时提高学生的动手能力,并在实践中不断完善理论基础知识,有助于培养学生综合能力。 2.设计要求 1)要求电子器件设计制作密码锁的控制电路,使之在输入正确的代码时,输出信号以 启动执行机构动作,并且用红、绿LED指示关锁、开锁状态。 2)密码锁控制器中存储一个4位代码,当开锁按钮开关设置9位,其中只有4位有效) 的输入代码等于存储代码时启动开锁控制电路,并且用绿灯亮、红灯灭表示开锁状态。 3)从第一个按钮触动后的5秒内若未能将锁打开,则电路自动复位并由扬声器发出 20秒的报警信号,同时用绿灯灭、红灯亮表示关锁状态。 4)要求性能可靠、操作简便。 5)密码锁控制器中存储的4位密码可以修改。 3.方案选择 第一方案555集成电路构成的密码锁电路 图3-1555时基集成电路组成的电子密码锁电路

电子密码锁源程序(带功能简介)

/****************************************************************************** ** 功能键 S6---S15 数字键0-9 S16---更改密码S17---更改密码完毕后确认 S18---重试密码、重新设定S19---关闭密码锁 初始密码:000000 密码位数:6位 注意:掉电后,所设密码会丢失,重新上点时,密码恢复为原始的000000 与P1相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上 程序功能: 1、开锁: 下载程序后,直接按六次S7(即代表数字1),8位LED亮,锁被打开,输入密码时, 六位数码管依次显示小横杠。 2、更改密码: 只有当开锁(LED亮)后,该功能方可使用。 首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应 的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。 3、重试密码: 当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当设置密码时,设置中途想更改密码,也可按下此键重新设置。 4、关闭密码锁: 按下S19即可将打开的密码锁关闭。 推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17 确认密码更改---按S18关闭密码锁---输入新的密码打开密码锁 ******************************************************************************* / #include #define uchar unsigned char #define uint unsigned int uchar old1,old2,old3,old4,old5,old6; //原始密码000000 uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密码输入 uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量 uchar wei,key,temp; bit allow,genggai,ok,wanbi,retry,close; //各个状态位 sbit dula=P2^6; sbit wela=P2^7;

四位电子密码锁

沈阳 课程设计 (说明书) 四位电子密码锁的设计 班级/ 学号 学生姓名 指导教师

课程设计任务书 课程名称数字逻辑课程设计 课程设计题目四位电子密码的设计 课程设计的内容及要求: 一、设计说明与技术指标 设计一个四位电子密码锁电路,技术指标如下: ①通过键盘电路输入四位密码。初始密码0000设定。 ②密码输入正确后,锁打开。在锁打开时,才可修改密码。 ③密码输入错误有适当的提示。三次错误后,具有声、光报警功能。二、设计要求 1.在选择器件时,应考虑成本。 2.根据技术指标,通过分析计算确定电路和元器件参数。 3.画出电路原理图(元器件标准化,电路图规范化)。 三、实验要求 1.根据技术指标制定实验方案;验证所设计的电路,用软件仿真。 2.进行实验数据处理和分析。 四、推荐参考资料 1. 彭介华.电子技术课程设计指导[M].北京:高等教育出版社 2. 孙梅生,李美莺,徐振英. 电子技术基础课程设计[M]. 北京:高等教育出版社 3. 梁宗善. 电子技术基础课程设计[M]. 武汉:华中理工大学出版社 4. 张玉璞,李庆常. 电子技术课程设计[M]. 北京:北京理工大学出版社 5. 谢自美.电子线路设计·实验·测试(第二版)[M].武汉:华中科技大学出版社 五、按照要求撰写课程设计报告 成绩指导教师日期

一、概述 随着人们生活水平的提高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,因此电子密码锁在实现家庭防盗这一问题也变得尤其的突出,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。这种锁是通过键盘输入一组密码来达到开锁的目的。本课程设计一个电子密码锁,要求是设定4位的密码锁,输入4位输入密码,然后与已设置好的密码相比较,密码输入正确后即可开锁,开锁后才可执行密码修改的功能,如果输入三次错误密码就不断报警(包括声音和光两种报警方式)。 二、方案论证 设计一个四位电子密码锁,通过输入四位密码,并且一位一位的进行比较,能够在输入正确的密码后打开锁,并且只有在打开锁之后判断是否修改密码,如果输入密码错误,则记录一次输入错误信息,如果输入三次错误密码,则有声音(蜂鸣)或者光(灯亮)报警。 方案一: 本方案通过控制开关键入密码,通过74LS148把相应的十进制数转化成相应的四位二进制码,与寄存在74LS195的原始密码通过数值比较器74LS85进行比较,如果四位密码都输入正确,则提示锁打开,然后提示可以修改密码;如果密码输入错误,则记录一次,当输入错误三次,则有报警提示。 图1 四位电子密码锁电路的原理框图

单片机密码锁实验报告

二○一六~二○一七学年第一学期 电子信息工程系 电子综合设计II 报告书 班级:电信(产业)1401班 设计时间:2016/12/29 学生姓名:曹子龙 学号:201404135024 指导教师:赵敏

二○一六年十二月

一、设计要求. 题目内容: 设计一个基于51单片机的电子密码锁: 1.可以使用4*4的矩阵键盘与红外遥控器输入密码。 2.可以通过按特殊组合键重设开锁密码。 3.显示通过1602液晶屏显示电子密码锁界面,输入密码时显示输入个数显 示为‘*’,如果密码正确,进入欢迎界面。 4.密码连续输入3次错误报警,LCD显示报警,倒计时十秒后重新进入密码 输入界面。 5.可以通过特殊的按键组合跳过输入界面直接进入欢迎界面。 实现方法: 1.通过红外接收头,连接单片机的P3.2外部中断INT0口,可以实现单片 机接收遥控器的信号输入。 2.通过矩阵键盘扫描函数,可以实现对键盘输入的响应。 3.通过引脚的高低电平变化频率,控制蜂鸣器的输入占空比和频率(低电 平时间固定,通过输入给函数值的不同改变高电平时间,固定响300个周期),对不同按键实现不同声音响应。 4.1602显示屏有16*2个单元格,每个单元格由5*8个像素点组成,可以很 好的显示数字,符号,英文字符。 功能需求分析: 液晶屏显示: 根据题意,需要设计并显示输入密码界面、修改密码界面、欢迎界面、错误警告界面 密码输入: 根据题意,每次输入一个数字,则显示一个‘*’符号代替,只能看出输入的位数,若输入密码位数达到六位,则与正确密码比较,若正确,进入系统。根据日常的手机使用习惯,默认长度为6位,且第六位输入之后立即判断,正确则进入,错误则清空重输。

数字逻辑电路课程设计电子密码锁

数字逻辑电路课程设计 课题:电子密码锁设计 姓名: 班级:13通信 学号: 成绩: 指导教师: 开课时间:

目录 摘要 (1) 一课程设计目的内容及安排 (2) 1.1设计目的 (2) 1.2设计内容 (2) 1.3设计安排 (2) 1.4设计内容 (2) 二电子密码锁设计要求及总框图 (3) 2.1设计要求 (3) 2.2总框图 (4) 三各模块电路设计 (5) 3.1密码输入存储比较模块 (5) 3.2五秒计时电路 (6) 3.3二十秒计时电路 (8) 3.4报警电路 (10) 3.5总电路 (11) 四设计心得 (12) 五参考文献 (13)

电子密码锁 摘要:设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。密码输入存储及比较部分使用芯片74LS194及74LS85。五秒及时部分采用芯片74LS161和数码显示管。二十秒报警电路由74LS160,555定时器组成的多谐振荡器,LED灯和蜂鸣器组成。利用multisim对电路进行仿真可以得到结果。 关键词:电子密码锁,计时电路,报警电路

一课程设计目的内容及安排 1.1设计目的 1 根据设计要求,完成对交通信号灯的设计。 2 加强对Multisim10仿真软件的应用。 3 掌握交通信号灯的主要功能与在仿真软件中的实现方法。 4 掌握74LS160,74LS192等功能。 1.2 设计内容 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁; 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。 1.3设计安排

数字电子技术课程设计电子密码锁

课程设计说明书课程名称:数字电子技术课程设计 题目:电子密码锁 学生姓名: 专业: 班级: 学号: 指导教师: 日期:年月日

电子密码锁 一、设计任务与要求 1.用电子器件设计制作一个密码锁,使之在输入正确的代码时开锁。 2.在锁的控制电路中设一个可以修改的4位代码,当输入的代码和控制电路 的代码一致是锁打开。 3.用红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁 4.如5s内未将锁打开,则电路自动复位进入自锁状态,并发报警信号。 二、方案设计与论证 1、用按键输入四位十进制数字,输入密码要存储。 2、比较输入密码和原始密码。当输入正确密码时,给出开锁信号,开锁信号用一个绿色指示灯表示,绿灯亮表示密码输入正确;如果输入密码不正确,用红灯表示。 3、锁的开关用红灯和绿灯表示,一次只能亮一盏。红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁。 4、设置倒计时电路和自锁电路。如果密码在5s内未能输入正确则发出报警声,并且自锁电路。 5、设置密码设置开关,开关闭合后,允许设置密码,设置好密码后,打开此开关。 6、需要在输入密码开始时识别输入,并由此触发计时电路。 方案一用74LS147译码器来把按键输入转化为二进制。通过8片四位寄存器74LS194实现密码功能,其中四片用来存储预置密码,另四片则用来存储输入的密码。当密码开始输入时开始计时,通过74LS192计数器实现计时功能;然后在密码输入期间,用74LS138数据选择器来选片存储。数据选择器的输入端又一个两位的二进制的加法计数器来控制,当键盘有按键输入时计数器就加1,当一个按键按完后会轮到下一个芯片存储。自锁功能利用74LS138来控制。通过四片74LS85芯片判断原始密码和输入密码是否相同,接着用指示灯来表示密码的输入正确与否,如果密码没有输入正确的话,则红灯亮,否则则绿灯亮。若是没在规定时间输入正确密码,则会发出警报信号(蜂鸣器响)。

单片机密码锁实验报告

单片机系统 设计实训报告 专业:生产过程自动化 姓名:李某 班级学号:。。。。。。。。。。。 指导教师:。。。。。。。。 实训期间:。。。。。。。。。。。。。。

目录 一.实验目的: (3) 二.实验要求: (3) 三.实验基本原理: (3) 四.实验设计分析: (4) 1.设计思想: (4) 五.实验要求实现: (5) 1. 电路设计: (5) 2.主流程图: (7) 3.4x4键盘行列式键盘原理电路图: (8) 4. 显示模块 (9) 五.总电路设计如下 (9) 六.程序 (11) 七.实验心得 (16)

一.实验目的: 1.熟悉单片机定时器的编程方法。 2.灵活运用单片机C语言程序中的字符串、数组、指针。 3.熟悉数码显示、LCM1602液晶显示器、YJD12864液晶显示器的编程方法。4.熟悉掌握4x4矩阵键盘的C语言编程。 二.实验要求: 1:用4×4矩阵键盘组成0-f数字键及。 2:可以自行设定或删除8位密码, 3:用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则显示PASS,若密码显示错误时,显示ERR. 4:自由发挥其他功能. 5:要求有单片机硬件系统框图,电路原理图,软件流程图。 三.实验基本原理: 这个密码锁的功能是使用矩阵键盘中的十六个键输入密码0到F还有,输入的同时在八位数码管上显示用户所输入的密码,未输入的位置用横杆填补表述未输入。当输入的密码超出设置的位数时,数据溢出,清零。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码

单片机电子密码锁课程设计

单片机电子密码锁 课程设计 1

基于单片机的电子密码锁设计 一、设计要求和条件 1.1 设计要求 根据单片机开发板所提供的元件特性和硬件电路, 编写相关的程序, 经过实验开发板实现电子密码锁在LCD1602上显示的功能。 1.搭建proteus仿真电路图平台, 模拟单片机要实现的功能; 2.焊接单片机系统开发板; 3.编写程序, 实现密码锁相关功能; 4.下载并调试程序, 实现密码锁的具体功能。 1.2 设计目的 1.熟练掌握KEIL软件的使用方法; 2.熟练掌握PROTEUS软件的使用方法; 3.掌握单片机I/O接口的工作原理; 4.掌握中断系统的工作原理; 5.掌握液晶LCD1602的工作原理及编程方法; 6.掌握蜂鸣器的编程使用; 2

7.掌握行列式键盘的工作原理及编程使用方法; 8.掌握单片机的ISP下载使用方法。 1.3 功能概述 本设计是基于单片机的密码锁设计方案, 根据要求, 给出了该单片机密码锁的硬件电路和软件程序, 同时给出了硬件设计方案、软件流程图、C语言源程序及详细注释等内容, 由于单片机实验板上的矩阵键盘为3*3的, 则规定0-5号键为数字键, 6-8号键为功能键, 其中该密码锁的具体功能介绍如下: (1)按”8”号键则输入密码, 初始密码为012345, 在LCD1602上显示密码值为”******”( 密码是保密的) , 输完6位后键盘就锁定, 在LCD1602上显示密码是否正确, 若输入的密码长度小于6位, 则1602等待密码输入。 (2)若密码输入正确后, 则绿色的发光二极管亮表示开锁, 而且1602上显示”you are right!”, 等待是否修改密码。 (3)密码输入错误时显示”code is wrong”, 接着会给你第二、第三次机会输入密码, 如果三次密码都错误时, 发出”叮咚”的报警声, 且红色报警指示灯不停闪烁, 按复位键清除报警。 3

基于89C51电子密码锁设计附程序文件

《电子技术综合设计》 设计报告 设计题目:基于STC89C52单片机的电子密码锁设计组长:汪菲学号: 专业与班级:信息12-1班 姓名:田宣宣学号: 专业与班级:信息12-1班 姓名:侯宁博学号: 专业与班级:信息12-1班 时间: 2014 ~ 2015 学年第(1)学期 指导教师:袁小平成绩:日期:2015年1月1日

一、设计摘要和课题任务 在日常生活和工作中,住宅与部门的安全防、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的电子密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。 本文从经济实用的角度出发,采用89S51单片机与低功耗CMOS型E2PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。 关键词:单片机;密码锁;红外遥控 完成的功能: 1.密码锁初始设置6位密码,密码通过红外遥控器或4X4键盘输入,若密码正确,则将锁打开。在按下每个按键的时候都会有蜂鸣器响声。 2.密码由用户自己设定,在开锁状态下,用户可自行修改密码。本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误一次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。 3.系统工作时,用户通过红外遥控器或键盘输入密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将门打开,系统不报警;若密码不正确,则有相应的指示灯闪动,并要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。 4.对密码进行存储,用户设定的密码掉电不丢失。 二、方案比较与选择 可行性分析: 本次设计采用STC89C52芯片,STC89C52是一个低电压,高性能CMOS 8位单片机.编程软件采用keil软件,由keil C生成HEX文件,然后烧入单片机。 密码输入采用红外遥控输入和4X4键盘输入方式。红外线输入采用通用遥控器,遥控接收采用HX1838一体化万能接收头。接收到的信号通过单片机INT0输入单片机。键盘采用的是4X4矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口,让设计更容易实现。 密码存储采用EEPROM串行I C总线芯片AT24C02。通过单片机对24c02芯片进行密码存储,存储好密码后,通过按键输入密码与存储芯片里面的数据进行对比,根据数据是否一致,来执行相应的操作,还可以根据按键操作来执行是否更换数据。 报警部分由蜂鸣器及外围电路组成,加电后不发声,当密码输入错误时,单片机的P3.6引脚为低电平,三极管导通执行蜂鸣器报警声子程序发出警笛报警。

相关主题
文本预览
相关文档 最新文档