【基于51单片机的密码存储器的设计与实现11000字(论文)】_第1页
【基于51单片机的密码存储器的设计与实现11000字(论文)】_第2页
【基于51单片机的密码存储器的设计与实现11000字(论文)】_第3页
【基于51单片机的密码存储器的设计与实现11000字(论文)】_第4页
【基于51单片机的密码存储器的设计与实现11000字(论文)】_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于51单片机的密码存储器的设计与实现TOC\o"1-2"\h\z\u1.引言 11.1研究意义 11.2研究现状 11.3未来展望 22.总体设计方案 22.1总体设计思路 22.2STC89C52主控制器介绍 23.硬件系统设计 33.1电源电路 33.2复位电路 33.3晶振电路 43.4AT24C02存储器电路 53.5LCD1602液晶显示电路 53.6MP3播放模块电路 64.软件系统设计 74.1主函数设计 74.2LCD1602显示函数设计 84.3AT24C02密码读写函数设计 94.4按键控制函数设计 104.5加密、解密函数设计 115.实物调试 125.1开机密码输入调试 135.2密码存储器初始化调试 145.3密码存储位置查询调试 145.4添加一个密码调试 145.5查看一个密码调试 155.6修改一个密码调试 155.7删除一个密码调试 166.结语 17参考文献 17PAGE16PAGE1摘要:随着信息化进程的加快,人们在生活中用到的密码数量越来越多,密码长度也越来越长。密码数量一多、长度一长记忆起来就很不方便,为了保证密码不会遗忘,不少人习惯将密码抄写在记事本上,也有一些人习惯于使用电子设备以便签、文档、图片等形式保存密码。这些手段虽然能解决密码容易被遗忘的问题,但在保密和操作简便度上有所欠缺,一旦被有心人士窥得密码将造成很大损失。为了解决这一问题,本文将使用稳定可靠的STC89C52单片机结合AT24C02存储器,设计一款稳定、保密性好、操作简便的密码存储器。关键词:密码存储器单片机STC89C52AT24C021.引言1.1研究意义21世纪是信息爆炸的时代,也是信息安全备受关注的时代,2013年曝光的“棱镜门”事件更是将信息安全这个议题摆到了每个人的桌面上。所谓信息安全,简单来说包括两个方面,一是指物理意义上的安全,也就是你所持有的电脑、手机等有形设备不会受雷击、雨淋等物理损害。另一方面则是指逻辑安全,这蕴含所存储的信息完整性、保密性、可用性。在逻辑安全中,又以保密性最为重要。一般来说保密也分为两类,一类是有形设备的保密,比如文件、资料等,可以通过放入保险柜等方式进行保密。还有一类是数据的保密,所谓数据,就是一串二进制数据。它们的加密方式也多种多样。但这些加密方式通常是针对互联网上传输的数据进行的,如何对本地数据,比如用户的密码进行加密和解密重现,目前还处于近乎空白的状态。考虑到现实生活中存在的这些问题,本文将使用稳定可靠的STC89C52单片机结合AT24C02存储器,设计一款稳定、保密性好、操作简便的密码存储器。通过内置的加密算法,将明文密码转为暗文密码存储在便携式存储器中,用户必须通过密码存储器选择相应秘钥才能还原出便携式存储器存储的密码,实现对密码的加密和解密重现。1.2研究现状密码存储最关键的性能参数是保密性,因此加密技术是密码存储器的核心。一般来说,加密技术分为对称加密和非对称加密两种。详细来说二者的加密原理如下:对称加密,简单来说就是信息的发送者和接收者都拥有一把钥匙,当信息发送者发送的信息被加密,相当于发送者将门锁上。接受者为了解密信息,只需要拿着这把钥匙打开门即可。它的优势是加密和解密的速度很快,对于处理器的处理速度要求低,因此适合大规模数据的加密保存和传输。但它的缺点也很明显,一旦这把用来打开门的钥匙被他人获取,保存或传输的信息将直接曝光。这种对称加密算法在日常生活中运用得非常多,有时候不知不觉中你就成了对称加密的使用者。比如你和你好朋友之间一套共用的语言,有时候你写得一团糟糕的字也会是你和另一个能看懂你字的人的对称加密。非对称加密,和对称加密用的是一个密钥不同,非对称加密用的是一对密钥。它的工作过程为,首先用公共密钥对信息来加密,随后接收方用自己存储的私钥解密获取信息。打个简单的比方,信息加密者可以把门锁上,其它人包括信息加密者也打不开门,只有拥有密钥的解密者使用私钥才能将门打开。放到实际应用中,由于私钥存储在本地,不通过网络传输,即使获取到了数据机密所用的公钥也无法获取到解密所需的私钥,提高了信息的保密性。正是因为非对称加密的这些优点,因此它也成为互联网上主流的加密方式。常见的非对称加密算法有RSA、背包算法、椭圆曲线加密算法。1.3未来展望因为非对称加密技术在加密性方面远超对称加密技术,因此未来发展的方向将还是非对称加密技术。但由于计算机功能的不断提升和密码学的不断发展,传统的非对称加密算法比如RSA算法可能会由于计算机性能的不断提升,需要不断通过延长秘钥长度保证其加密性。未来,随着量子力学的发展将会出现量子密码,因为量子状态作为密钥具有不能复制的特性,因此任何通过非法手段获得量子状态的行为都会被发现,理论上可以保障量子密码的绝对安全。2.总体设计方案2.1总体设计思路这次的总体设计的控制器采用STC89C52单片机,密码存储器采用AT24C02。AT24C02最多支持存储256个字节信息,本次设计的一个密码占用其中16个字节,因此共支持16个密码保存。AT24C02密码存储器体积小巧携带方便,支持热插拔,本次设计的AT24C02带有插拔底座,可以很方便实现存储模块的更换。显示和控制方面:为了提供较好的显示效果,本次设计LCD1602液晶显示屏作为显示部分,可以用来显示密码、加密设置、解密设置等。用户使用8个微动按键操控密码存储器,包括切换字符、增加字符、删除字符等功能操控。简略的系统设计框图如图1:图1系统设计框图2.2STC89C52主控制器介绍STC89C52型单片机是兼容8051指令的单片机,也就是51单片机。51单片机的发展历史非常悠久,上个世纪就已经诞生。常见的品牌有国外的ATMEL(爱特梅尔)和国产的STC(宏晶),本次使用的STC89C52型单片机是宏晶公司推出的。STC89C52单片机是8位单片机,也就是说它每次处理的数据长度是8位。它拥有8KB的程序存储器和256字节随机存取存储器,满足了本次设计对程序存储器的大小要求。此外,它的价格也非常低廉,能够大大减少设计成本,具有一定的实用价值。该部分STC89C52单片机的实物图如图2:图2STC89C52单片机实物图3.硬件系统设计3.1电源电路由于STC89C52单片机以及本次设计所用到的其它模块工作电压均为5V,家庭常见的USB接口输出电压也为5V,只要USB接口输出的电流大小满足设计要求,就可以使用USB接口作为5V供电部分。实际调试中发现USB接口的供电电流大小完全满足设计要求,因此只需使用DC05电源母座、DC05电源线、自锁开关、1K限流电阻、LED电源指示灯搭建电源开关以及电源指示灯部分即可。该部分电源电路如如图3:图3电源电路图该部分的电路连接非常简单,DC05电源母座的公共端和GND相连,VCC一端接自锁开关,自锁开关另一端连接到单片机的VCC。这样便可以实现按下自锁开关VCC能获得5V供电。为了实现电源开关指示效果,VCC接一个阻值为1K的限流电阻,LED的负端和1K电阻相连另一端接地。这样在自锁开关按下后,LED将处于导通发光状态,用来指示电源开启。3.2复位电路为了防止单片机在运行过程中出现了出现“死机”现象,比如进入死循环不受控制。本次设计的密码存储器设计有复位电路部分,复位电路提供给用户一个类似于电脑“重启”功能的按键,当单片机出现不可预知的问题时,无需断开电源也能实现单片机的“重启”。该部分复位电路图如图4:图4复位电路图可以看到,该部分由一个微动按键、一个10UF电容、一个10K电阻组成。它的工作原理非常简单,可以分成两个部分解释:当微动按键未按下时,电容充电直至RST引脚处电压接近GND,单片机RST引脚处于低电平不复位;当微动按键按下时,RST引脚直接和VCC相连处于高电平,按键按下的时间大于2个机器周期单片机复位。3.3晶振电路为了协调单片机内每一个部件的正常使用,必须给单片机一个时钟信号。这个时钟信号的频率越高,单片机的工作速度就越快(前提是不超过单片机最高工作频率)。本次设计的基于51单片机的密码存储器采用的外部晶振频率为11.0592MHz,该部分晶振电路如图5:图5晶振电路图可以看到,该部分由两个30PF电容、一个11.0592MHz石英晶振组成。电路连接也非常简单,30PF电容两个串联在一起,其中间连接点接地。11.0592MHz石英晶振两端分别接XTAL1和XTAL2,最后和串联在一起的30PF电容并在一起即可。3.4AT24C02存储器电路本次设计的密码存储器使用的存储芯片为AT24C02,为了方便更换,加入了封装为DIP-8的IC插座,使用时只需要将AT24C02芯片按照指定方向插入即可实现密码卡的更换。该部分AT24C02存储器电路图如图6:图6AT24C02存储器电路图该部分电路连接根据AT24C02的工作指南进行,只需要让AT24C02的E0、E1、E3、VSS引脚接GND,VCC引脚接VCC、WE引脚接GND、SCL引脚接单片机的P21端口、SDA引脚接单片机的P20端口即可。3.5LCD1602液晶显示电路本次设计的密码存储器的显示部分由LCD1602液晶显示器组成。该显示器能够显示2行16列共计32个字符,每个字符占用8行5列共40个像素点,用来显示本次设计存储的16位密码非常合适。由于LCD1602液晶显示器的对比度关系到显示效果,因此电路设计中加入了10K电位器,用于调整LCD1602液晶显示器的对比度。该部分LCD1602显示电路如图7:图7LCD1602显示电路图它的连接情况非常简单,10K电位器的公共端和VCC和GND分别相连,可调电阻端和VO引脚相连,理论上可将VO引脚的电压范围调整为0-5V,实现对比度从最低到最高的调整。LCD1602显示器的D0-D7数据口和单片机的P00-P07端口分别相连,值得一提的是,P0端口由于没有内部上拉电阻需要外加10K上拉电阻排。RS引脚和单片机P26端口相连、RW引脚和单片机的P25端口相连、E引脚和单片机的P27端口相连、A引脚和VCC相连、K引脚和GND相连、VSS和GND相连、VDD和VCC相连,这样便完成了LCD1602显示电路的连接。3.6MP3播放模块电路为了实现对密码存储器的控制,设计中加入了8个微动按键用来实现对密码存储器的控制。这些按键的功能也各不相同,其中有根据屏幕显示决定其功能的按键,也有功能固定的按键。该部分按键控制电路图如图8:图8按键控制电路图该部分电路由8个微动按键组成,8个微动按键的一端分别和单片机的P10-P17端口相连,另一端均接地。其工作原理可分为两方面展开:当微动按键未按下时,由于单片机有内部上拉电阻输入端口为高电平;当微动按键按下时,输入端口直接和地相连处于低电平状态。只要不断检测端口的电平状态,检测频率足够高,就能实现很快的响应速度。4.软件系统设计4.1主函数设计在介绍本次设计的密码存储器主函数设计之前有必要交代一下开发背景,这次设计是用的开发语言为C语言,使用的集成开发环境为keil4。新建的工程文件中包含3个.c文件,分别是main.c文件、i2c.c文件、lcd.c文件,分别编写有主函数、I2C通信协议、LCD1602驱动源程序。本次设计的主函数执行过程可以分为三个大的部分,首先是通电后初始化的LCD1602液晶显示器,然后是开机密码的检测,最后是在死循环中重复执行的部分。该部分的简略流程图如图9:图9主函数流程图死循环之外的硬件初始化和开机密码检测的工作过程:1.LCD1602液晶显示器初始化。首先给LCD1602液晶显示器发送0x38开启显示的命令,开启液晶屏显示功能。发送完0x38命令后给LCD1602液晶显示器发送0x0c开启显示功能但不显示光标的命令,开启液晶屏显示功能的同时不会出现光标。发送完0x0c命令后给LCD1602液晶显示器发送0x06指针自动加1的命令,此时向LCD1602液晶屏发送数据后一个数据指针将比前一个数据指针地址高一位。发送完0x06命令后给LCD1602液晶显示器发送0x01清屏命令,此时LCD1602液晶屏显示内容为一片空白。发送完0x01命令后给LCD1602液晶显示器发送0x80命令,将指针定位在LCD1602液晶显示器的第一行第一列位置。2.读取AT24C02内存储的密码个数。读取AT24C02中以0开始每个地址间隔16直至第240个字节位的数据,当某一位数据为0时则认为该区间无密码,反之则认为该区间有密码。3.检测开机密码。为了提高密码存储器使用安全度,本次设计加入了开机密码输入检测函数。用户可以找到在main.c文件中的passkey[16]数组,修改默认开机密码,编译下载进密码存储器中。此后开机密码将被固定为用户修改的开机密码,无法通过其它手段修改。它的实现原理非常简单,定义一个16位无符号型数组passkey[16] 和password[16]分别储存设定的开机密码和输入的开机密码,通过逐位对比即可判断密码正确与否。值得一提的是,由于password[16]数组内数据被预置为0,想要设置不足16位的开机密码,只需要在passkey[16]多余的位后面补0即可。例如用户想设定的开机密码是1234,那么只需要让passkey[16]=“1234000000000000”即可。死循环之内的语句:1.SWITCH分支选择语句。由于牵涉到众多功能界面的显示,为了方便程序编写,定义了一个LCDflag标志数据,数据范围为0-7,用来指示显示何种功能界面。其值为0时显示主界面、其值为1时显示初始化一界面、其值为2时显示删除界面、其值为3时显示初始化二界面、其值为4时显示增加密码界面、其值为5时显示查看密码界面、其值为6时显示修改密码界面、其值为7时显示存储状态界面。2.键盘扫描函数。设计有一个名为keyflag的按键标志位数据,当keyflag为0时会判别是否有按键按下,如果有按键按下则返回该键值同时置keyflag为1。当keyflag为1时,可以判别是否全部按键都没按下,如果所有按键都没按下则置keyflag为0。通过这样的设计,只要重复执行的频率够高就可以及时响应按键操作。4.2LCD1602显示函数设计本次设计的基于51单片机的密码存储器的显示功能完全依赖于LCD1602液晶显示器,因此LCD1602液晶显示器显示数据的美观度关系到整个设计的成功度。在LCD1602显示函数设计中,分为两个大的部分的程序编写,分别是针对LCD1602液晶显示器的硬件部分和显示数据部分函数的编写。该LCD1602显示函数流程图茹图10:图10LCD1602显示函数流程图硬件部分:硬件部分进行的工作主要是LCD1602液晶显示器的初始化,我们需要向LCD1602液晶显示器发送相关命令使其处于可以直接使用的状态。为了实现这一目的,该部分编写有四个主要的函数,分别是ms级带参延时函数、写入命令函数、写入数据函数、LCD1602初始化函数。ms级带参延时函数使用三个嵌套的for循环实现ms级的延时,通过调试发现该ms级延时函数误差小于1us,能够实现较为精确的定时。要想实现更精确的定时也可也借助定时器中断实现,但LCD1602液晶显示器对时序的要求并不严苛,使用此延时函数即可完成任务。写入命令函数首先置RS、RW、E端口为低电平,然后通过P00-P07端口并行发送命令,为等待数据稳定延时这一状态1ms。放入命令完毕后置E为高电平并延时5ms,最后置E为低电平即可。写入数据函数首先置RS端口为高电平,E、RW端口为低电平,随后通过P00-P07端口并行发送数据,为等待数据稳定延时这一状态1ms。写入数据完毕后置E为高电平并保持5ms,最后置E为低电平。这样便完成了ms级带参延时函数、写入命令函数、写入数据函数的编写,LCD1602初始化函数的任务就很容易了。只需要先依次发送0x38、0x0c、0x06、0x01、0x80的命令给LCD1602液晶显示器即可,整个函数只需要依次调用写入命令函数5次即可。初始化完毕的LCD1602液晶显示器将处于开启显示且不显示光标、整屏空白、数据指针自动加1、数据指针指向第一行第一列的状态。软件部分:前面的硬件部分已经将LCD1602液晶显示器设置为数据指针自动加1的模式,软件部分的显示效果只需要调用硬件部分编写好的相关函数即可。由于本次设计的基于51单片机的密码存储器涉及多个功能界面的显示,为了便于调试和程序编写,设置了一个LCDflag标志位,数据范围为0-7。其值为0时显示主界面、其值为1时显示初始化一界面、其值为2时显示删除界面、其值为3时显示初始化二界面、其值为4时显示增加密码界面、其值为5时显示查看密码界面、其值为6时显示修改密码界面、其值为7时显示存储状态界面。以主界面为例介绍一下编写过程,其它显示界面大同小异。首先向LCD1602液晶显示器发送0x80命令,将指针定位到液晶屏的第一行第一列位置,随后依次调用16次写入数据函数,用来显示第一行的16个字符内容。随后向LCD1602液晶显示器发送0Xc0命令,将指针定位到液晶屏的第二行第一列位置,随后依次调用16次写入数据函数,用来显示第二行的16个字符内容。设计完成的界面实物显示效果如图11:图11LCD1602主显示界面图能够看到LCD1602液晶显示器一共有32个用于显示的色块。上面一行的“M”后接的数字代表当前用户选择的加密或解密模式,由于设置的加密、解密模式共三种,因此该数字范围为1-3。“N”后接的数字代表当前AT24C02存储器存储的密码个数,由于AT24C02存储器被设计为最多存储16个密码,因此该数字范围为0-16。“P”后接的数字代表当前选择密码序号,该数字范围为1-16。如果该处显示图上“AL”字样,此时按下DEL键可以初始化存储卡,清空所有数据。下面一行的“add”表示添加一个密码,“del”表示删除当前选定的密码或初始化密码卡,“read”表示查看当前选定的密码。4.3AT24C02密码读写函数设计由于AT24C02使用I2C通信协议实现数据的读取和写入,而STC89C52单片机没有弄I2C通信端口,因此本次设计中模拟了I2C通信协议。该部分主要由10us延时函数、起始信号函数、终止信号函数、发送1字节数据函数、读取1字节数据函数、写入1字节数据函数、数据读取函数组成。首先介绍AT24C02密码写入函数,该部分的简略流程图如图12:图12AT24C02密码写入函数流程图AT24C02密码写入部分:发送起始信号,实现的方法很简单,只需要在SCL为高电平期间SDA产生一个下降沿信号即可。发送0xa0写器件地址。发送需要写入的内存地址,范围为0-255。发送要写入的数据,范围同样为0-255。发送终止信号,实现的方法很简单,只需要在SCL为高电平期间SDA产生一个上升沿信号即可。图13AT24C02密码读取函数流程图与AT24C02密码写入函数相比,密码读取函数就显得复杂了一些。首选发送起始信号,只用在SCL为高电平期间让SDA产生一个下降沿信号即可。发送0xa0写器件地址。发送需要读取的内存地址,范围为0-255。发送要读取的地址,范围为0-255。发送起始信号,只用在SCL为高电平期间让SDA产生一个下降沿即可。发送0xa1的读器件地址。读取数据并赋给无符号型数据num。发送终止信号,只用在SCL为高电平期间SDA产生一个上升沿信号即可。4.4按键控制函数设计本次基于51单片机的密码存储器按键控制方式除了字符更改键以外均为一次按键动作执行一次按键操作,在操作左上功能键、中上功能键、右上功能键、左下功能键、DEL键、ADD键、右下功能键时,用户按下一次按键执行一次对应的按键操作。为了实现这种功能,可以采用外部中断完成,设置中断为下降沿触发,检测输入端口的下降沿信号,在中断函数中完成一次按键功能操作。采用外部中断意味着需要配置8个外部中断,但STC89C52单片机不支持数量这么多的外部中断,因此本次设计的按键控制函数通过keyflag标志位实现。该部分流程图如图14:图14主键控制函数流程图单片机启动时首先置keyflag初始值为0,当keyflag值为0时执行按键扫描判断有无按键按下,一旦检测到有按键按下则先置keyflag为1,并返回当前按下按键的键值。当keyflag为1时,判别是否全部按键都没按下,如果所有按键都没按下则置keyflag为0,否则不执行任何语句,keyflag仍为0。通过这样的设置,只要两次扫描的时间间隔足够短,就能够实现响应速度较高的按键控制功能。除了左上功能键、中上功能键、右上功能键、左下功能键、DEL键、ADD键、右下功能键外,还有独立的按键扫描函数,服务于切换字符键。它主要通过延时函数实现,首先判断该键有无按下,如果按下则返回1,否则返回0,最后延时333ms。通过延时333ms就可以实现大于333ms的延时处理,避免处理间隔过短导致字符变换速度过快,实现用户连按该键时大于333ms切换一次字符的效果。4.5加密、解密函数设计本次设计的基于51单片机的密码存储器为了提高信息保密性,存储在AT24C02里的数据均经过单片机的加密算法生成。即使AT24C02存储器落入不法人士手中,没有单片机的解密算法这些数据将会是一堆无用的二进制数。为了进一步提高安全度,本次设计加入了三种加密、解密算法,该部分的流程图如图15:图15加密、解密函数流程图由于加密、解密方式共有三种,为了区分这几种加密、解密方式,设置了全局标志位model。当model为1时,保存密码会执行加密函数1,需要解密时也必须选择解密函数1进行解密;当model为2时,保存密码会执行加密函数2,需要解密时也必须选择解密函数2进行解密;当model为3时,保存密码会执行加密函数3,需要解密时也必须选择解密函数3进行解密。当用户选择的加密和解密函数序号不对应时,解密后的密码将不会是正确密码。第一种加密方式充满欺骗性,通过把密码字符的ASCII码值后移一位作为暗文密码存储在AT24C02存储器中。例如用户存储了密码“1234”会被保存为“2345”的ASCII码值的数据。当非法人士获得到AT24C02存储器后,很可能会被这一串看似有规律的密码欺骗,误以为这就是用户保存的密码,起到一种欺骗性的保密作用。它的解密函数非常简单,只需要将暗文密码的ASCII码值前移一位即可获得之前存储的正确密码。第二种加密方式充满蒙蔽性,通过把密码字符的ASCII码值乘上2再加1作为暗文密码存储在AT24C02存储器中。例如用户存储了密码“1234”会被保存为“cegj”,一些在ASCII码中较靠后的密码字符将被保存为无法显示的ASCII码值,使窃密者无规律可循。它的解密函数是加密函数的反向操作,只需要将暗文密码的ASCII码值减去1再除2即可得之前存储的正确密码。第三种加密方式较之于前两种加密方式更加复杂,设计中加入了一个自行设计的随机密码表。打乱了所存储密码的ASCII码值,例如将ASCII码值为33的密码字符保存为41,解密时则将保存的41还原为ASCII码值为33的明文密码,理论上暴力破解需要尝试的组合最多有90!种。这是一个非常可怕的数字,除非密码有极大的价值,否则不可能有人会进行这样的破解工作。至于破解的方向怎么确定也是一个很大的问题,破解者很大程度上并不知道采用的是密码表的加密形式,即使知道是密码表的加密形式也不清楚密码表的字符个数,这些不确定因素进一步提高了破解者破解密码的难度,也进一步提高了密码的安全性。5.实物调试在完成了软件部分源程序的编写后,首先可以使用技术成熟的51单片机仿真软件Proteus8Professional进行仿真调试。当然,在有开发板的前提下,还是应该以开发板搭建的硬件平台进行调试最为合适。本次设计的基于51单片机的密码存储器便先使用开发板搭建硬件平台进行调试,调试无误后运用AltiumDesigner2013软件依据先前设计的电路原理图绘制PCB电路图,由于本次设计的基于51单片机的密码存储器电路连接较为简单,因此仅使用底层、顶层两层电路。制作完成的密码存储器如图16:图16实物图可以看到正面的硬件包括电源接口母座、左上功能键、中上功能键、右上功能键、LCD1602液晶屏、自锁开关(电源开关)、复位按键、左下功能键、DEL键、Change键、ADD键、右下功能键、红色电源指示灯、10K电位器(旋转可以更改屏幕对比度)、STC89C52单片机、AT24C02存储芯片。除了这些看得见的硬件以外,用来支持STC89C52单片机正常工作的晶振电路、复位电路、上拉电阻均为位于STC89C52单片机芯片之下。5.1开机密码输入调试 图17开机密码输入调试图开机密码为“!!!!”,如图17,这一密码存储在单片机中无法修改,必须通过重新烧录程序才能更改。开机密码最多为16位。调试步骤:1.右上功能键,按下则检查密码是否正确,输入正确则显示“PasswordTrueWelcomeuse!”的字样,随后进入主界面,输入错误则显示“PasswordWrong!”的字样。2.SW:00,数字表示当前选择的字符序号,配合Change键使用。例如SW值为01,按下Change键不放将修改图上最下一行从左到右数第1个字符。SW的取值范围和开机密码字符个数有关,例如输入了6个开机密码字符,则SW可以更改的范围为1-6。3.屏幕最下面一行为开机密码显示区域,显示当前用户输入的开机密码。4.DEL键,按下该键删除最后一位密码字符。5.Change键,按下该键可以修改当前SW选定的密码字符。6.ADD键,按下该键可以在结尾添加一个密码字符。7.按下左下功能键SW值减1。8.按下右下功能键SW值加1。5.2密码存储器初始化调试图18密码存储器初始化界面1调试图正确输入开机密码后进入图上界面,按下右上功能键修改所选择的密码序号至AL,AL是ALL的缩写。然后按下中上功能键进入图19所示界面。图19密码存储器初始化界面2调试图出现该界面后按下右下功能键开始初始化,初始化中会显示“AtWorkPleasewait”字样,初始化成功后会显示“Initializedone”字样。随后自动返回到主界面,至此存储器的初始化工作宣告完成。5.3密码存储位置查询调试在主界面按下ADD键可以切换到显示密码存储位置界面,如图20:图20密码存储位置查询调试图图上区域表示存储位置的序号,1-G分别代表1-16。实心格表示其下方对应序号的位置中存有密码,空白格表示其下方对应序号的位置中没存有密码。按下ADD键可以切换主界面。5.4添加一个密码调试在主界面处按下左上功能键切换加密模式,按下右上功能键切换密码位置,确定好加密模式和密码序号后按下左下功能键即可添加密码,如果该位置已经存有密码会显示“adderrorhaveapassword”字样,没有存有密码的话会进入图21界面,如果不清楚哪个位置存有密码可以按下ADD键查看密码存储位置。图21添加一个密码调试图在密码添加界面,按下左上功能键可以返回主界面,按下右上功能键会保存当前密码。按下左下功能键和右下功能键可以分别减小、增加所需修改的密码字符序号(从左往右数),显示在图上“SW”字符后面。显示屏下面一行显示当前的密码。按下ADD键可以增加一个密码字符,按下DEL键可以删除一个密码字符,按下Change键可以修改当前选定的密码字符。添加密码中会显示“addAtWorkPleasewait”字样,成功会显示“addP:xxM:yisdone”字样,其中xx为所选择密码位置,y为所选择的加密模式。成功会返回到密码添加界面。5.5查看一个密码调试在主界面按下左上功能键切换解密模式,按下右上功能键切换密码位置,确定好解密模式和密码位置后按下右下功能键则可以选择的解密模式查看该位置的密码。如果所选择的位置没存有密码,会显示“Thedon’thavepassword”字样,不清楚哪些位置存储有密码可以按下ADD键切换到密码存储位置查看界面。图22查看一个密码调试图在查看密码界面,按下左上功能键可以返回主界面,按下右上功能键可以修改该位置密码。显示屏最下面一行显示的则是以所选择的解密模式对指定位置解密所获得的密码。值得一提的是,如果添加密码时选择的加密模式和查看密码时选择的解密模式不一致,将无法显示出正确的密码,进一步加强了密码存储的安全性。5.6修改一个密码调试在主界面按下左上功能键切换解密模式,按下右上功能键切换密码位置确定所需要修改的密码。值得一提的是,修改密码选择的解密模式必须和该密码加密模式一致,否则显示的密码将不正确,所做的修改将毫无意义。如果所选定的密码位置没有存有密码,将会显示“Thedon’thavepassword”字样,不清楚哪些位置存储有密码可以按下ADD键切换到密码存储位置查看界面。按下右下功能键显示该位置存储的密码,如图23:图23修改一个密码界面1调试图在该界面处按下左上功能键可以返回主界面,按下右上功能键可以修改当前位置存储的密码,出现下图所示界面。显示屏最下面一行显示的是以指定的解密模式读取指定位置密码所获得的密码。图24修改一个密码界面2调试图在该界面处的操作和添加密码界面的操作一致。唯一不同的是密码修改中会显示“revAtWorkPleasewait”字样。5.7删除一个密码调试在主界面按下右上功能键选择所需要删除的密码,按下中上功能键进入删除界面(如图25)。图25删除一个密码调试图在该界面处按下左下功能键返回主界面,取消删除操作。按下右下功能键确定删除。删除中显示“delAtWorkPleasewait”字样,删除成功后显示“delP:xxisdone”字样,xx表示所删除密码的所在位置。至此,所有功能的调试工作宣告完毕。调试中按键控制、屏幕显示、存储器存储的数据和设计预期一致,本次设计的基于51单片机的密码存储器设计成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论