您好,欢迎来到微智科技网。
搜索
您的当前位置:首页电子密码锁的设计 (1)

电子密码锁的设计 (1)

来源:微智科技网


※※※※※※※※※ ※※ 学生单片机

※※※

课程设计

※※※※※

※ ※ ※※

单片机课程设计报告书

课题名称 姓 名 学 号 院、系、部 专 业 指导教师

电子密码锁设计

物理与电子科学系 电子信息科学与技术

2011年12月12日

一、设计任务及要求: 设计任务: 1.用4*3组成0-9数字键及确认键、删除键; 2.用液晶显示屏显示电路提示信息; 要 求: 1.进行预设计,根据设计的任务要求,先确定设计的电路方案,然后进行电路的初步设计,在计算机上画出电路图,然后修正电路图。 2.在确定硬件的基础上进行硬件电路的总体设计,包括软件主流程的设计以及各子程序的设计。 3.用仿真软件进行电路的调试及编程工作。 4.完成设计报告。 指导教师签名: 2011年12月12日 二、指导教师评语: 指导教师签名: 年 月 日 三、成绩

指导教师签名: 年 月 日

目 录

1 绪 言………………………………………………………………………………………1 2 系统设计……………………………………………………………………………………1

2.1系统整体流程图…………………………………………………………………………2 2.2电子密码锁的控制方案论证……………………………………………………………2 2.3单片机的选择方案论证…………………………………………………………………2 2.4键盘选择方案论证………………………………………………………………………2 2.5显示模块的选择方案论证………………………………………………………………2 2.6模块的选择方案论证……………………………………………………………………2 3 硬件电路设计…………………………………………………………………………………3

3.1电子密码锁控制电路图……………………………………………………………3 3.2行列式式键盘的设计……………………………………………………………………3 3.3液晶显示屏显示电路设计………………………………………………………………3 3.4密码错误提示电路的设计………………………………………………………………3 3.5主要元器件选择…………………………………………………………………………3 4 程序流程图……………………………………………………………………………………:7 5 c语言程序设计………………………………………………………………………………7 6 电子密码锁控制器仿真………………………………………………………………………12

6.1 Keil调试…………………………………………………………………………………12 6.2 Proteus调试………………………………………………………………………………12 7 结 束 语……………………………………………………………………………………14 8 参考文献………………………………………………………………………………………15

电子密码锁设计

1 绪 言

随着人们生活水平的提高, 如何实现防盗这一问题也变的尤其突出,为了保证气人身财产安全,电子密码锁基于其保密性高,使用灵活性好,安全系数高的优势,倍受广大用户的青睐。

2 系统设计

2.1 设计任务

通过对电子锁发展现状的了解,结合自己本次设计的课题,本次设计任务要完成的目标是:

1.用4*3组成0-9数字键及确认键、删除键。

2.用液晶显示屏显示电路提示信息,当运行时提示输入密码,密码位输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则可以进行开锁或密码修改。

3.当密码不正确时,指示灯亮。

2.2 方案比较与论证

2.2.1 系统整体流程图

液晶显示屏显示密码输开锁 密码修改 单片机 80C51 密码不正确,重新输入 4*4键盘 输入 图1 系统总体框图

1

2.2.2 电子密码锁的控制方案论证

用4*3的行列式键盘组成0-9数字键及确认键、删除键,从矩阵键盘输入6位数密码,起始密码由程序设定,输入完后按确定键,取消键清除所有输入。用液晶显示屏显示电路提示信息,当密码位输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若输入密码正确,则显示开锁或密码修改。当密码不正确时,提示密码重新输入。若三次密码输入不正确,则指示灯亮。 2.2.3 单片机的选择方案论证

方案一:采用可编程逻辑期间CPLD 作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案

方案二:80C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C52增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能。80C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。

综合考虑,选择方案二,采用Atmel公司的ATS52单片机作为控制器。 2.2.4 键盘选择方案论证

方案一:采用式键盘。由于各键相互,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。此种键盘适用于按键较少或操作速度较高的场合。但本题发挥部分要求12个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。故此方案不可取。

方案二:采用行列式键盘。它由行线和列线组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,通过行列扫描法判定按键的位置,此方案适用于按键较多的场合。

通过对电子密码锁题目的分析,采用4*3行列式键盘。

2

2.2.5 显示模块的选择方案论证

方案一:采用带字库LCD模块显示。能显示复杂的信息,具有质量轻,体积小,功耗低,指令功能强,接口简单,可靠性强等优点,显示内容丰富,图形美观,易于人机交流。

方案二:采用LED数码管显示。数码管能显示数字和符号,但是占用IO口资源较多,对于简单的电路可以选用此方案。

电子密码锁,电路简单,选用方案一,显示所需信息。 2.2.6 模块的选择方案论证

当输入密码时,若密码正确,则开锁或进行密码修改。当密码不正确时,提示密码重新输入。若三次密码输入不正确,则指示灯亮。

3 硬件电路设计

3.1 电子密码锁控制电路图

基于80C51液晶显示和24C01密码实时保护的电子密码锁长按启动系统,密码恢复为出厂设置系统启动后放开,密码为012345VCCINITBR11U37805VI+5v电源电路设计输出3VO密码正确开锁指示灯长亮R4470LCD1AMPIRE128XD1LED-YELLOW2W08G220V市电输入经变压器变压C3C23300uF0.33uFGNDLED12R610kR5470输入密码错误指示灯闪烁LED2D2SOUNDLED-YELLOWCS1CS2GNDVCCV0RSR/WEDB0DB1DB2DB3DB4DB5DB6DB7RST-VoutC41nFR110kCS11CS22345RS6RW7E101112131415161718RP1RESPACK-8LS1RV110kX1CRYSTAL三次输入密码错误则报警SOUNDERC5191nF987654321U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D0D1D2D3D4D5D6D7657C110uFR710k18XTAL2键盘控制密码输入D0D19RST1U2INITSCKSDATEST24C01CD5A0A1A2123D423C61uFRP2RESPACK-8293031PSENALEEA4567SDASCLTRIGD71CS1CS2RSRWELED1LED2SOUND23456712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51I2CD6CLR0EnterD2 图2 电子密码锁控制线路图

3

3.2 行列式式键盘的设

键盘电路如图3所示。设计数字键0~9 的键号依次为0~9,取消键的键号为CLR,确认键为Enter

图3 键盘电路

3.3 液晶显示屏显示电路的设计

该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。带中文字库的128X-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中 文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或个ASCII码字符的显示。带中文字库的128X-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。

4

图4 数码管显示电路

3.4 密码错误提示电路的设计

其电路如图5 所示

图5 电路图

5

3.5 主要元器件选择

主要元器件选用型号和数量如下表1所示:

表1 主要原器件清单

序号 1 2 3 4 5 6 材料名称 单片机 晶振 电容 键盘 液晶显示屏 发光二极管 规格型号 80C51 1MHz 4*3 AMPIRE128* 数量 1 1 6 12 1 2 元件代号 U1 X1 6

4 程序流程图

开始 显示请输入密码 输入密码 N Y 密码正确否? 密码错误,请重新输入 指示灯亮 显示开锁 显示密码修

5 C语言程序设计

#include #include<128.h> #include #include<24C01.h>

#define uchar unsigned char #define uint unsigned int sbit LED1=P1^5; sbit LED2=P1^6;

7

sbit INIT=P2^2; sbit SOUND=P1^7;

uchar idata key[6]={0,0,0,0,0,0}; uchar idata iic[6]={0,1,2,3,4,5}; void press(uchar *s) { uchar dat; P3=0xf0;

while(P3==0xf0);

dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat; Left();

star_128(star,0x05,16);

} s++;

P3=0xf0;

while(P3==0xf0);

dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat; Left();

star_128(star,0x05,24);

}

s++;

P3=0xf0;

while(P3==0xf0);

dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat;

Left();

8

//保存第一位密码保存第二位密码

保存第三位密码

//

//

star_128(star,0x05,32);

}

//保存第四位密码

s++;

P3=0xf0;

while(P3==0xf0); dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat;

Left();

star_128(star,0x05,40);

}

//保存第五位密码

s++;

P3=0xf0;

while(P3==0xf0);

dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat;

Left();

star_128(star,0x05,48);

}

//保存第六位密码

s++;

P3=0xf0;

while(P3==0xf0);

dat=key_scan();

if((dat!=0x0a)&&(dat!=0x0b))

{ *s=dat;

Left();

star_128(star,0x05,56);

}

//键入Enter键盘继续执行下面语句,否则等待

9

do{P3=0xf0;

while(P3==0xf0);

dat=key_scan(); }

void Delay10ms(void) //延时10ms { uint i,j,k; }

void main() { uchar dat; uchar i=0,j=0,k; uchar x;

LED1=1; LED2=1; SOUND=0; INIT=1;

//密码初始化

for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--); }while(dat!=0x0b);

if(INIT==0)

{ x=SendB(iic,0x50,6);

Delay10ms();

} //首先从IIC器件中读出密码以供下面输入密码进行比较 x=ReadB(iic,0x50,6); Init_128();

for(i=0;i<150;i++){Delay10ms();}

//若密码不正确,循环执行do{}while() do{ LED1=1;

System(); press(key);

10

//显示:\"请输入密码\"字幕

if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5])) //密码比较,若密码正确责进入系统,若密码不正确则显示密码错误,重新输入密码 {

true(); do

{ P3=0xf0;

//键入1或2继续执行下面语句,否则等待

while(P3==0xf0);

dat=key_scan();

}while(dat!=0x01&&dat!=0x02);

if(dat==1) { LED1=0;

unlock();

//开锁

for(i=0;i<100;i++){Delay10ms();}

continue;

}

if(dat==2) { do{

System();

press(key); again(); press(iic);

//修改密码

if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key[5]==iic[5]))

{ succeed();

//修改密码成功

for(i=0;i<100;i++){Delay10ms();}

Delay10ms();

x=SendB(iic,0x50,6);

Delay10ms();

x=ReadB(iic,0x50,6);break;

11

} else

//修改密码不成功,重新修改

{ repeat();

for(i=0;i<100;i++){Delay10ms();}

}

}while(1);

} } else { j++; }

if(j==3)

{ for(i=0;i<8;i++) { LED2=0; } error();

for(i=0;i<50;i++){Delay10ms();}

for(k=0;k<5;k++){Delay10ms();} LED2=1;

for(k=0;k<5;k++){Delay10ms();} } j=0;

//密码不正确,重新输入密码

}while(1); }

6 电子密码锁控制器仿真

在完成了电子密码锁硬件设计和软件设计以后,便进入系统的调试阶段。系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。

12

6.1 Keil调试

Keil调试过程如图6所示:

图6 keil调试

6.2 Proteus调试

图7 输入密码提示

13

图8 密码输入

图9 输入正确密码后提示选择

7 结束语

在整个设计过程中懂得了许多东西,当遇到解决不了的问题,跟同学一起商量、合作,向掌握的好的同学请教,或许能收到事半功倍的效果。不管学什么,一定要打好基础,并将其学好、学精,但空有知识也不一定就能说明什么,还得能为己所用;还有更重要的是培养

了思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常

大的帮助,使自己充分体会到了在设计过程中的成功喜悦。做课程设计不只是对我们知识

14

的考察,也是对学习态度的测验。经过这段时间的课程设计后,我感觉我学到了不少东西,特别是一些课外的知识,这样的课程设计很有意义,我觉得我们要多做一些这样的课程设计。

通过这次课程设计,使我得到了一次用专业知识和专业技能去分析问题、解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及用c语言设计程序的思路技巧等方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

8 参考文献

[1] 王迎旭.单片机原理及应用[M].北京:机械工业出版社, 2001:110-122

[2] 周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,2002:42-113 [3] 谢宜仁.单片机实用技术问答[M].人民邮电出版社,2002:6-97

[4] 孙淑艳,张青.电子技术实践教学指导书[M].中国电力出版社,2005:26-114 [5] 康华光.电子技术基础[M].高等教育出版社,2006:8-96

[6] 刘湘涛,江世明.单片机原理与应用[M].北京电子工业出版社,2006:12-98 [7] 何利民.单片机初级教程[M].北京航空航天大学出版社,1999:10-232

[8] 李朝青.单片机原理及接口技术(简明修订版)[M].北京航空航天大学出版社,1998:60-96

[9] 张永瑞.电子测量技术基础[M].西安:西安电子科技大学出版社,2006:61-101 [10] 李叶紫. MCS-51单片机应用教程[M].北京:清华大学出版社,2004: 232-238

15

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

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

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

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