1、1课程设计(论文)题 目 名 称 简易六位密码锁 课 程 名 称 单片机原理与应用 学 生 姓 名 郑勇 赵思聪 沈斌卓 杨友 学 号 1041303106 1041303104 1041303087 1041303097 系 、 专 业 信息工程系 10 级通信工程 指 导 教 师 李 兴 亮 2012 年 12 月 30 日2目 录摘要 .31 任务及要求 .41.1 设计任务 .41.2 设计要求 .42 设计思想 .52.1 硬件设计思想 .52.2 软件设计思想 .63 电路原理与电路图 .73.1 电路原理 .73.2 电路原理图 .74 流程图与算法描述 .74.1 流程图 .7
2、5 程序清单及仿真结果 .85.1 程序清单 .85.2 仿真结果 .116 设计总结 .126.1 设计体会 .14参考文献 .153摘 要在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使 用传统的机械式钥匙开锁, 人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活 中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其 安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本 低、功耗低、易操作等优点。 在安全技术防范领域, 具有防盗报警功能的电
3、子密码锁逐渐代替传统 的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。 随着大规模集成电路 技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它 除具有电子密码锁的功能外, 还引入了智能化管理、 专家分析系统等功能, 从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、 IC 卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指 纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若 在公共场所使用存在容易机械损坏,IC 卡还存在容易丢失、损
4、坏等特点。 加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的 技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。关键词: 6 位密码锁; AT89S52 单片机; PROTEU 仿真软件; 41 任 务 及 要 求1.1 设 计 任 务(1)设置七个键位,分别是确认,数字 1,数字 2,数字 3,数字 4,数字 5,数字 6,工作有提示(设通电状态为红灯亮) 。(2)在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。预设密码以外的数字都不能解开密码锁(如输入非 6 位或输入6 位与预设密码不同的数字) 。(3)输入密码时,数码管同步显
5、示输入的数字。(4)输入正确后,有解锁提示(设为绿灯亮) ,输入错误后也有提示(设为红灯闪烁和鸣笛警告)(5)输入错误后可以重输,要有复位功能。1.2 设 计 要 求利用 AT89S52 单片机的 P2 端口的 P2.0-P2.6 连接到 7 个按键开关上,分别是输入键数字 1,数字 2,数字 3,数字 4,数字 5,数字 6 和确认键,P2.7 接蜂鸣器。启动时,按下电源开关,红色指示灯长亮,输入密码,而数码管显示输入的相应数字,然后按下确认键,若密码正确,绿灯亮,数码管熄灭,弱密码错误,红灯闪烁,蜂鸣器响,发出警报。52 设 计 思 想2.1 硬 件 设 计 思 想2.11 键 盘 设 计
6、本设计使用 7 按键,从上到下,从左至右依次设为确认键,数字 1,数字 2,数字 3,数字 4,数字 5,数字 6,用来输入密码,如下图2.12 数 字 显 示 设 计使用共阳极七段数码管来显示输入的数字,图如下:62.13 检 验 密 码 电 路 设 计使用 LED 灯和蜂鸣器来提示输入的密码是否正确,若密码正确,绿灯亮,若密码错误,红灯闪烁,蜂鸣器响,电路如图:2.2 软 件 设 计 思 想电子密码锁工作的主要过程是从键盘开始输入密码,同时 LED 显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。密码的设定,在此程序中密码是固定的,预设的密码为“532416“共 6 位
7、密码。在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。预设密码以外的数字都不能解开密码锁(如输入非 6 位或输入 6 位与预设密码不同的数字)输入密码时,数码管要在单片机的控制下同步显示输入的数字。73 电 路 原 理 与 电 路 图3.1 电 路 原 理单片机最小系统。一个 AT89S52 单片机做为控制电路,运用其 P2 口来实现密码的输入和蜂鸣器的报警,通过 P0 口给数码显示管高低不同电平信号,来实现输入密码的显示,P1 接指示灯。3.2 电 路 原 理 图4 流 程 图4.1 流 程 图85 程 序 清 单 与 仿 真 结 果5.1 程序清单#inc
8、ludesbit mm1=P20;/密码按键 1-8sbit mm2=P21;sbit mm3=P22;sbit mm4=P23;sbit mm5=P24;sbit mm6=P25;sbit mmok=P26;sbit l1=P10;sbit l2=P12;sbit fmq=P27;void init()P0=0xff;/禁止数码管显示mm1=1;mm2=1;mm3=1;mm4=1;mm5=1;mm6=1;mmok=1;fmq=1;l1=1;l2=1;void delayms(unsigned int t)unsigned int i,j;for(i=t;i0;i-)for(j=114;j0;
9、j-);void main()unsigned char mmsr,bn,bn1,bn2,bn3,bn4,bn5;mmsr=0;bn=0;bn1=0;bn2=0;bn3=0;bn4=0;bn5=0;mmsr=1;init();while(1)if(mmsr=1)if(mm5=0) /系统 8 位 程序密码 532416delayms(10);if(mm5=0)bn=1;P0=0xff;/消隐P0=0x92;/显示 5if(mm3=0)if(mm3=0)P0=0xff;/消隐P0=0xb0;/显示 3if(mm2=0)if(mm2=0)P0=0xff;/消隐P0=0xa4;/显示 2if(mm4
10、=0)if(mm4=0)P0=0xff;/消隐P0=0x99;/显示 4if(mm1=0)if(mm1=0)P0=0xff;/消隐P0=0xf9;/显示 1if(mm6=0)if(mm6=0)P0=0xff;/消隐P0=0x82;/显示 6if(mm1=0)delayms(10);if(mm1=0)P0=0xff;/消隐P0=0xf9;/显示 1if(mm2=0)delayms(10);if(mm2=0)P0=0xff;/消隐P0=0xa4;/显示 2if(mm3=0)delayms(10);if(mm3=0)P0=0xff;/消隐P0=0xb0;/显示 3if(mm4=0)delayms(10);if(mm4=0)P0=0xff;/消隐P0=0x99;/显示 410if(mm5=0)delayms(10);if(mm5=0)P0=0xff;/消隐P0=0x92;/显示 5if(mm6=0)delayms(10);if(mm6=0)P0=0xff;/消隐P0=0x82;/显示 8 if(mmok=0)delayms(10);if(mmok=0)if(bn=1)l2=0;delayms(100);elsewhile(1)P0=0xff;fmq=0;l1=0;delayms(100);l1=1;delayms(100);