您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页密码锁课程设计

密码锁课程设计

来源:飒榕旅游知识分享网
师大作品 欢迎下载 完全可靠 解君之忧

摘 要

我们的生活中,锁是一种常见的生活用品,从普通的钥匙锁到保险箱的密码锁,锁给我们的生活带来了极大地便利。但机械式密码锁结构复杂体积较大不便在其他小型物体上使用,这时体积小巧方便的电子密码锁就为我们解决了这个难题。本文介绍了一款由STCC52RC单片机为核心的数字电子密码锁,该密码锁通过适当的程序实现了对密码认证过程,通过液晶显示器实时显示输入过程,实现人机对话的友好界面,当输入的密码为已设定好的密码时,锁体将会打开,否则系统会提醒再次输入,当三次输入的密码错误,系统自动报警。在输入的过程中,可通过功能键修改输入的数字,具有重新输入密码的功能,方便修改误输数字。

关键词:电子密码锁,密码验证,自动报警,单片机,液晶显示

Abstract

In our life, lock is a common life, from ordinary key to the safe locks, lock brings to our life greatly. But the mechanical structure complicated large locks in other small objects inconvenience, then use the electronic locks compact convenient for us to solve the problem. This paper introduces a paragraph of STCC52RC singlechip digital electronic locks, this combination lock through proper procedure to realize the password authentication process, through the LCD display input process, realize the man-machine dialogue and friendly interface, when the input password is already set password, lock body will open, otherwise will remind input again, when three input password mistake, automatic alarm system. In the process, can enter the modified input by function keys, modify, convenient function of screen by losing number.

Keywords: electronic locks, password authentication, automatic alarm, SCM, LCD display

目 录

摘要…………………………………………………………………………………2 1绪 论„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5 2设计内容及要求„„„„„„„„„„„„„„„„„„„„„„„„6 3系统的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„6

3.1系统设计结构图„„„„„„„„„„„„„„„„„„„„„„„„„6 3.2系统的工作原理说明„„„„„„„„„„„„„„„„„„„„„„„„7

4系统硬件设计„„„„„„„„„„„„„„„„„„„„„„„„„7

4.1复位以及振荡电路„„„„„„„„„„„„„„„„„„„„„„„„7 4.2 4×4矩阵键盘„„„„„„„„„„„„„„„„„„„„„„„„„8 4.3 报警蜂鸣器„„„„„„„„„„„„„„„„„„„„„„„„„„8 4.4 液晶显示电路„„„„„„„„„„„„„„„„„„„„„„„„„9 4.5串口输入电路图„„„„„„„„„„„„„„„„„„„„„„„„„9

5电路程序设计„„„„„„„„„„„„„„„„„„„„„10 6

课程设计心得体会„„„„„„„„„„„„„„„„„„„„„„„„11

附录1设计总体电路图„„„„„„„„„„„„„„„„„„„„„12 附录2元件清单„„„„„„„„„„„„„„„„„„„„„„„„„13 附录3数字密码锁源程序„„„„„„„„„„„„„„„„„„„„14

1. 绪论

在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。

本次设计使用STCC52RC单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。

2设计内容及要求

①课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。

②其密码为方4位(或8位)二进制代码(代码自设定)。

③开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电

路则报警并实现自锁。(报警动作为响1分钟,停10秒)

④选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路,查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。

3 系统的设计

3.1系统设计结构图

如下图所示,本设计的真题原理框图如下所示:

电源 LED 蜂鸣器 数码管 3×4键盘 STCC52 复位电路

图1 系统设计框图

如图所示,系统主要由3×4键盘,复位电路,LED灯,蜂鸣器,以及液晶显示电路。

3.2系统的工作原理说明

本系统采用STCC52RC单片机为核心的系统,加以3×4矩阵键盘、LED、蜂鸣器等。矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入。系统开始显示“INPUT PASSWORD:”,提示输入密码;当密码输入完毕按下Enter键时,若输入密码与设定的密码相同,即密码正确,液晶屏显示为“Mission Success!”提示锁打开,同时LED绿灯亮;若密码不正确,LED显示电路显示提示“Forgot Password?”,LED红灯亮,若连续3次输入不正确,则发出警报声同时锁定键盘,不能进行任何操作。

投在输入过程中发现输入错误的数字,可通过重新输入AC键清除所有数字。

为了防止恶意尝试,若连续输入3次密码输入错误则发出报警声,给锁的主人以提示,及时阻止盗窃行为。

4系统硬件设计

4.1复位以及振荡电路

如下图所示,即为STCC52RC复位和振荡电路结构。

图2 系统的复位电路

时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行

初始复位。本设计晶振选择频率为12MHZ,电容选择33pF。经计算得单片机工作胡机器周期为:

12×(1÷12M)=1us。

4.2 3×4矩阵键盘

如图所示,本系统采用3×4矩阵键盘,12个按键分为输入数字键:0、1、2、3、4、5、6、7、8、9;功能键:确认输入Enter、重新输入AC。键盘与单片机相连接,其连接方式为前三行分别P1.0—1.3连接;后四行分别与PP1.5—1.8连接分别控制;

4.3 报警蜂鸣器

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P35引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警其电路图如下所示:

4.4 液晶显示电路

为了使该电子锁能人性化的显示输入密码的状态以及密码输入正确与否,添加了液晶显示放弃了数码管显示。本次设计使用的是JHD 1602A液晶显示器,自带英文字库,各引脚分别接入P2.0口,其接入电路图如下:

图5 液晶显示电路

4.5 串口输入电路图

为了方便的写入程序,特别加入了串口输入电路,其设计电路图如下:

5 电路程序设计

本系统程序部分使用C语言编写,C语言是一种高级程序设计语言,它的优点是简洁明了、可移植性高。

主要完成,开始时数码管显示提示“INPUT PASSWORD:”输入密码。输入密码后按下确认键,系统会将所输入与系统密码进行比对。若输入密码正确则显示“Mission Success!”开锁。其流程图如下:

开始 输入密码 结束 No 正确否? 上锁 Yes 判断按键 开锁 LOCK

6 心得体会

通过这为期一个星期的课设期,我学到了很多很多,也发现了自己的很多不足。先是接触单片机,这个可以算是最简cpu的芯片,了解了如何利用它组成最小系统并实现一定的功能。其次是对仿真软件protuse的应用,知道如何进行单片机的仿真。但对于编程还是完全不行,发现这方面与不妨同学有很大的差距,还需继续努力。

附录1 设计总体电路图

附录2 元件清单

名称 单片机 发光二极管 型号 ATS52RC LED-red LED-green 数量 1*5 1*5 1*5 1*5 2*5 2*5 1*5 1*5 备注 电解电容 瓷片电容 电阻及变阻器 10uF/50V 33pF 1KΩ 10KΩ 10KΩ(变阻器) 导线焊锡 晶振 液晶显示 三极管 蜂鸣器 轻触开关 自锁开关

白色导线及焊锡 若干 12MHz LCD-1602 8550 HXD 轻触开关 自锁开关 1*5 1*5 1*5 1*5 13*5 1*5

附录3数字密码锁源程序

#include #include

#define uchar unsigned char #define uint unsigned int

uchar table[]=\"INPUT PASSWORD:\"; uchar table1[]=\"*\";

uchar table2[]=\"Mission Success!\"; uchar table3[]=\"Forgot Password?\"; uchar new[4];

uchar password[]={1,3,1,4}; //原始密码 sbit P30=P3^0; sbit P31=P3^1; sbit P35=P3^5; sbit P36=P3^6;

uchar k=0; uchar j=0;

/*键盘简介 (4*3) 0 1 2 3 4 5 6 7 8 9 重输 确认 */

void delay(uint ms) {

uint m,s;

for(m=0;mvoid write_com(uchar com) //写指令 {

P30=0; P2=com; delay(1);

P31=1; delay(1); P31=0; }

void write_dat(uchar dat) //写数据 {

P30=1; P2=dat; P31=1; delay(1); P31=0; }

void jiaodui() //密码校对 { uchar i=0; while(password[i]==new[i]) { i++; if(i==4) break; } if(i==4) { P36=1; //kaisuo write_com(0X80+0X40); delay(5);

for(i=0;i<17;i++) { write_dat(table2[i]); delay(20); } } else //密码错误 { j++;

if(j==3) {P35=1;

write_com(0X80+0X40); delay(5); for(i=0;i<16;i++) {

write_dat(table3[i]); delay(20); } while(1);} else if(j!=3) { k=0; write_com(0X80+0X40); } } }

uchar key_press() //检查是否有按键按下 { uchar i; P1=0Xf0; delay(20); i=P1; if(i==0Xf0) {return 0; } else {return 1;} }

void key_scan() //确认所按按键的具体位置 及对应数据 { uchar key,i=0X7F,j; delay(10); if(key_press) { do{ i=(i<<1)|(i>>7); P1=i; key=P1; j=key&0XF0; }while(j==0XF0); while(key_press()) ; switch(key) { case 0X7E:

key=0; break; case 0XBE: key=1; break; case 0XDE: key=2; break; case 0X7D: key=3; break; case 0XBD: key=4; break; case 0XDD: key=5; break; case 0X7B: key=6; break; case 0XBB: key=7; break; case 0XDB: key=8; break; case 0X77: key=9; break; case 0XB7: key=10; break; case 0XD7: key=11; break; } if(key<10) { new[k]=key;k++; write_dat(table1[0]); } else if(key==11) jiaodui(); else if(key==10) {k=0; write_com(0X80+0X40);} } } void main() {

uint i,j; P30=1; P31=0; P35=0; P36=0;

write_com(0X38); delay(5);

write_com(0X01);

delay(5);

write_com(0X0f); delay(5);

write_com(0X06); delay(5);

write_com(0X80+0X00); delay(5);

for(i=0;i<15;i++) { write_dat(table[i]); delay(20); }

write_com(0Xc0); delay(5); while(1){ if(key_press()) { key_scan(); } } }

附录4 密码锁实验板实物图

图4-1 系统板原始状态

图4-2为密码锁输入密码提示操作界面初始状态

图4-3 输入密码三次错误界面

图4-4 输入密码界面

图4-5输入三次错误密码

图4-6 输入正确密码后显示界面

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务