电子密码论文Word文件下载.docx

上传人:b****3 文档编号:17341738 上传时间:2022-12-01 格式:DOCX 页数:35 大小:554.77KB
下载 相关 举报
电子密码论文Word文件下载.docx_第1页
第1页 / 共35页
电子密码论文Word文件下载.docx_第2页
第2页 / 共35页
电子密码论文Word文件下载.docx_第3页
第3页 / 共35页
电子密码论文Word文件下载.docx_第4页
第4页 / 共35页
电子密码论文Word文件下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

电子密码论文Word文件下载.docx

《电子密码论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子密码论文Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。

电子密码论文Word文件下载.docx

12864显示子程序49

附录2.4:

AT2402存储子程序53

第1章系统总体设计

1.1系统结构

图1-1系统结构图

1.2系统组成

如图2-1所示系统主要由AT89C51、1602液晶显示器、LED、4*4矩阵键盘、蜂鸣器电路等组成。

1.3系统可行性分析

系统工作原理分析:

使用AT89C51单片机、4*4矩阵键盘、LED、1602液晶显示器等。

矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、确认键组成。

系统开始显示“WELCOMINPUT”提示输入密码;

输入密码时,LCD显示电路显示为“*”,当密码输入完毕按下确认键时,对输入密码与设定的密码进行比较,若密码正确则LCD显示电路显示为“welcomightopen”提示绿灯亮;

若密码不正确,LCD显示电路显示提示“worry”。

蜂鸣器发声,三次红灯亮,锁定键盘,可以提高系统的安全系数。

 

第2章硬件电路设计

2.1单片机AT89C51简介

AT89C51为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。

1.AT89S52主要功能列举如下:

(1)拥有灵巧的8位CPU和在系统可编程Flash

(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHz)

(3)内部程序存储器(ROM)为8KB

(4)内部数据存储器(RAM)为256字节

(5)32个可编程I/O口线

(6)8个中断向量源

(7)三个16位定时器/计数器

(8)三级加密程序存储器

(9)全双工UART串行通道

2.MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

MCS-51的引脚说明:

如图2.1.2

图2.1.289C51的引脚结构

2.24*4矩阵键盘

矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。

节省I/O口。

  矩阵键盘工作原理:

行线通过上拉电阻接到+5V上。

无按键,行线处于高电平状态,有键按下,行线电平状态将由与此行线相连的列线电平决定。

列线电平为低,则行线电平为低;

列线电平为高,则行线电平为高。

  如图所示,本系统采用4*4矩阵键盘,前11个按键按顺序分别为0、1、2、3、4、5、6、7、8、9、确认键,后面的键未定义。

用户只能通过键盘输入密码。

图3—24*4矩阵键盘原理图

3.51602LCD液晶显示屏

图3-5液晶屏电路原理图 

3.5.1概述

LCD是一种利用液晶的扭曲、向列效应制成的新型显示器。

它具有体积小,质量轻,功耗低,抵制干扰能力强等优点,因而在单片机系统中被广泛应用。

LCD本身不发光,是通过借助外界光线照射液晶材料而实现显示的被动显示器件

3.5.2基本特性:

(1)、低电源电压(VDD:

+3.0--+5.5V)

(2)、显示分辨率:

128×

64点

(3)、内置汉字字库,提供8192个16×

16点阵汉字(简繁体可选)

(4)、内置128个16×

8点阵字符

(5)、2MHZ时钟频率

(6)、显示方式:

STN、半透、正显

(7)、驱动方式:

1/32DUTY,1/5BIAS

(8)、视角方向:

6点

(9)、背光方式:

侧部高亮白色LED,功耗仅为普通LED的1/5—1/10

(10)、通讯方式:

串行、并口可选

(11)、内置DC-DC转换电路,无需外加负压

(12)、无需片选信号,简化软件设计

(13)、工作温度:

0℃-+55℃,存储温度:

-20℃-+60℃

模块接口说明:

*注释1:

如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。

*注释2:

模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。

*注释3:

如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。

3.5.3并行接口

管脚号

管脚名称

电平

管脚功能描述

1

VSS

0V

电源地

2

VCC

3.0+5V

电源正

3

V0

-

对比度(亮度)调整

4

RS(CS)

H/L

RS=“H”,表示DB7——DB0为显示数据

RS=“L”,表示DB7——DB0为显示指令数据

5

R/W(SID)

R/W=“H”,E=“H”,数据被读到DB7——DB0

R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR

6

E(SCLK)

使能信号

7

DB0

三态数据线

8

DB1

9

DB2

10

DB3

11

DB4

12

DB5

13

DB6

14

DB7

15

PSB

H:

8位或4位并口方式,L:

串口方式(见注释1)

16

NC

空脚

17

/RESET

复位端,低电平有效(见注释2)

18

VOUT

LCD驱动电压输出端

19

A

VDD

背光源正端(+5V)(见注释3)

20

K

背光源负端(见注释3)

如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。

四.模块主要硬件构成说明 

3.5.4控制器接口信号说明

1、RS,R/W的配合选择决定控制界面的4种模式

RS

R/W

功能说明

MPU写指令到指令暂存器(IR)

读出忙标志(BF)及地址记数器(AC)的状态

MPU写入数据到数据暂存器(DR)

MPU从数据暂存器(DR)中读出

2、E信号

E状态

执行动作

结果

高——>

I/O缓冲——>

DR

配合/W进行写数据或指令

DR——>

I/O缓冲

配合R进行读数据或指令

低/低——>

无动作

3、忙标志:

BF 

BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUSRD指令,可以将BF读到DB7总线,从而检验模块之工作状态.

4、字型产生ROM(CGROM):

字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。

DFF=1为开显示(DISPLAYON),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAYOFF)。

DFF的状态是指令DISPLAYON/OFF和RST信号控制的。

5、显示数据RAM(DDRAM)

模块内部显示数据RAM提供64×

2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;

此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。

6、字型产生RAM(CGRAM) 

字型产生RAM提供图象定义(造字)功能,可以提供四组16×

16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。

7、地址计数器AC

地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。

8、光标/闪烁控制电路

此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。

3.6发光二极管LED

图3-6二极管LED

LED是单片机应用系统中常用的输出设备,LED由发光二极管构成,具有结构简单、价格便宜等特点。

在本次设计中用到了两个LED。

它们由引脚控制,当密码正确时相应的引脚变为低电平从而发光,绿灯亮。

错误时红灯亮。

3.8蜂鸣器

图3-8蜂鸣器

由于蜂鸣器使用P1口驱动要加上上拉电阻如图3-8。

当密码输入错误,P1口变为高电平从而使蜂鸣器发声。

3.9电路原理图

电路仿真图

第4章软件程序设计

本系统软件设计由主程序,初始化程序,LCD显示程序,键盘扫描程序组成。

主要程序设计流程图如下所示:

4.1软件设计流程图

图4—1软件设计流程图

4.2具体功能软件实施

4.2.1开始等待流程

系统开始一直显示提示“请输入密码”,并判断有否按键,当有键按下跳出等待。

图4—2开始等待流程

4.2.2密码检查功能

本系统使用数组PASSWORD[6]存储密码,系统初始化对数组负值PASSWORD[6]={1,6,7,9,10,11}相当于键盘上的1,2,3,4,5,6。

输入密码的时候,先将输入的每一位密码分别放置在数组key[6]中,然后再将key[6]与PASSWORD[6]的每一位分别对照。

若每一位都相等,密码检查通过。

图4—3密码检查

4.2.3键盘扫描

如图3-2,本系统使用4×

4矩阵键盘当没有键按下时,行线和列线之间是不相连的,若第N行与第M列的键被按下,那么第N行与第M列的线就被接通。

根据上述原理,本系统的键盘扫描方法是利用P1口的低四位作为行扫描线,P1口的高四位作为列回扫线。

具体实施方法为:

先使P1.0口输出低电平,P1口其他口输出高电平,然后对P1.4、P1.5、P1.6、P1.7四个口分别作判断。

若此四口都为高电平,则没有键按下;

若有键按下,P1.4、P1.5、P1.6、P1.7四个口必定有一个口输入为低电平,再判断P1.4、P1.5、P1.6、P1.7哪个口为低电平则可判断按键在哪列上。

如P1.4、P1.5、P1.6、P1.7没有低电平,再使P1.1为低电平,其他口为高电平,依次扫描下去,找到按键所在的行,再判断P2口的高四位哪一位为低,便可知道键在哪一列上。

键盘扫描子程序key()如下:

/*******************************************************************3×

4矩阵键盘输入函数

***************************************************************/

#ifndef_keypad_h_

#define_keypad_h_

#include<

reg51.h>

absacc.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharidatacom1,com2;

ucharkey_scan()

{

uchartemp;

ucharcom;

P1=0xf8;

delay(5);

if(P1!

=0xf8)

{

com1=P1;

P1=0x0f;

com2=P1;

}

while(P1!

=0xf8);

temp=com1|com2;

while((P1&

0xf0)!

=0xf0)

;

if(temp==0xee)com=0x01;

if(temp==0xed)com=0x02;

if(temp==0xeb)com=0x03;

if(temp==0xde)com=0x04;

if(temp==0xdd)com=0x05;

if(temp==0xdb)com=0x06;

if(temp==0xbe)com=0x07;

if(temp==0xbd)com=0x08;

if(temp==0xbb)com=0x09;

if(temp==0x7e)com=0x0a;

//10为键值,其代码功能为清除

if(temp==0x7d)com=0x00;

if(temp==0x7b)com=0x0b;

//其代码功能为输入密码结束并确认,即开锁

return(com);

}

#endif

4.2.5修改密码

本系统设定的修改密码过程为,在输入正确的密码后,按“确认”键,此时提示输入旧密码“请输入密码”,输入正确的旧密码后,可以输入新密码。

此时键入的六位新密码将保存到数组key[6]中。

然后显示器提示再次输入,输入完毕后,第二次输入的密码将保存在iic[6]中,然后将key[6]中六位分别与iic[6]中的六位比对,若两次密码输入一直,即将新的密码,也就是iic[6]和iic[6]中的六位赋值到PASSWORD[6]中。

此时修改密码工作完成,屏幕显示“密码修改成功”。

系统将跳翻到开始,即提示输入密码“INPUT”。

参考文献

[1]当方.微型计算机控制技术[M].中国水利水电出版社,2001年

[2]胡汉才.单片机原理及其借口技术[M].清华大学出版社,1996年

[3]赵新民.智能仪器设计基础[M].哈尔滨工业大学出版社,1999年

[4]潘新,民王,燕芳.微型计算机控制技术[M].电子工业出版社,2003年

[5]李钟实.实用电子报警器精选百例[M].北京:

科技技术文献出版社,2002年

[6]陈爱弟.Protel99se实用培训教程[M].人民邮电出版社,2000年。

[7]阎石.数字电子技术基础[M].高等教育出版社,1998年

[8]童诗白.模拟电子技术基础[M].高等教育出版涉,1998年

[9]候振鹏.嵌入式C语言程序设计[M].北京:

人民邮电出版社,2006年

[10]徐士良.C语言程序设计教程[M].北京:

人民邮电出版社,2001年

[11]BrianW.Kernighan.TheCProgrammingLanguage.PrenticeHallPTR,1988

[12]JaniceMazidi.8051MicrocontrollerandEmbeddedSystems.PrenticeHall,1999

[13]

[14]

[15]

[16]

致谢

通过这次毕业设计,让我复习了很多学过的旧知识,同时锻炼了自己的动手能力和查阅资料。

尤其是解决在实际中解决排查问题的能力。

1、通过这次的设计,我熟悉了使用Protel的技巧,学会了制作电路板的一些技巧,并且熟悉了如何选购使用电子元器件。

2、在设计中,我学到了如何使用C语言对单片机进行编写程序,熟悉了使用KEILC软件,并且加深了对单片机的编程技巧。

3、在做这个设计的过程中,我遇到了不少的问题。

这锻炼了我筛选、查阅资料,并将理论结合到自己的设计中的能力。

一步一步的排除故障原因,找到故障的原因并解决故障。

4、这次的设计使我对模拟电子、数字电子知识加深了了解,尤其是在对电路进行调试的时候,出现了很多这些方面的问题,通过对以往知识的复习巩固,将问题解决。

通过次毕业设计,将我从所学到的专业知识,基本都应用上去,感谢大学三年来,老师对我的教育,让我对掌握了基本的专业技能。

同时也感谢戴老师对我毕业设计的指导,在此表示衷心的感谢!

这次的设计有很多的不足,和市场上的产品有一定的差距,还请老师同学们提出宝贵意见!

谢谢!

PCB封装电路图

密码锁设计主程序

/***********************************************************************

函数库函数:

设计者:

电信0902黄柏成

时间:

2012年5月13日

***********************************************************************/

12864.h>

keypad.h>

24C01.h>

ucharidatakey[6]={0,0,0,0,0,0};

ucharidataiic[6]={1,1,1,0,0,0};

voidpress(uchar*s)

uchardat;

//**************************************************

write_com(0x98+2);

//保存第一位密码

while(P1==0xf8);

dat=key_scan();

if((dat!

=0x0a)&

&

(dat!

=0x0b))

{*s=dat;

write_date(0x2a);

s++;

//保存第二位密码

}

//保存第三位密码

//保存第四位密码

//保存第五位密码

//保存第六位密码

do{P1=0xf8;

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

}while(dat!

=0x0b);

voidDelay10ms(void)//延时10ms

uinti,j,k;

for(i=10;

i>

0;

i--)

for(j=4;

j>

j--)

for(k=248;

k>

k--);

/************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1