


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1.1引 言11.1.1 选题背景11.1.2 电子密码控制简介11.1.3 电子密码控制的发展趋势11.1.4 本设计所要实现的目标21.2 操作说明书2第二章 硬件电路设计42.1 控制电路方案选择42.2 显示电路的选择52.3 按键电路控制方式52.4 主要器件介绍52.4.1 单片机的产生与发展52.4.2 stc89c52引脚说明62.4.3 i2c总线密码存储芯片at24c02介绍82.4.4 液晶显示器1602介绍10第三章 电路原理图143.1 总体电路原理图143.2 各模块电路设计153.2.1电源电路153.2.2 输入部分电路(矩阵键盘)153.2.3 报警电路163.2.4 开锁电路163.2.5 密码储存电路173.2.6 显示电路173.2.7 程序加载电路183.2.8 单片机最小系统18第四章 软件设计194.1 软件设计流程图19参考文献20附录一:pcb图21附录二:密码锁程序22第一章 概述1.1引 言1.1.1 选题背景 在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专业分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。1.1.2 电子密码控制简介 电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码控制不论性能还是安全性都已大大超过了机械类。其特点如下:(1) 保密性好,编码量多,远远大于机械控制。随机开锁成功率几乎为零。(2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。(3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。(4) 无活动零件,不会磨损,寿命长。(5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。(6) 电子密码控制系统具有操作简单易行,一学即会的特点。1.1.3 电子密码控制的发展趋势 由于电子器件所限制,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于eda来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统 。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。可以看出组合使用电子信息是电子密码控制系统今后发展的趋势 。1.1.4 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,输入旧密码正确后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,并且两次输入的密码必须一致才能成功修改,以防止误操作。1.2 操作说明书该产品开机显示提示语“happy every day!”此时只有input键和setting键有效,其它任意键无效。按下输入键(input)后将提示“please input your password”可输入密码,所输入的密码在液晶显示屏上显示为“*”,密码输入完成后按“enter”键确认,若密码正确继电器将吸合,绿色led灯被点亮,同时提示“opening!come in please”;若密码错误,将提示“sorry your password is error”同时蜂鸣器和红色led灯产生报警信号(报警信号次数为5次)之后提示“please input your password again”如果再次错误将重复报警并提示再次输入密码,如果密码还是错误的将产生10次报警信号,之后提示“operation is limited!”同时锁定键盘1分30秒,在锁定期间按下键盘上任意按键都无效,锁定时间结束后按下“unlock”键除锁定回到开机时的状态,其它键无效。按下“setting”键可修改密码,此时红色指示灯被点亮。如果此时按下“input”键则将进行恢复初始密码操作,红色指示灯将闪烁5次,如果不想恢复按下“back”键可退出恢复初始密码设置回到开机时的状态。若想恢复按下“enter”键继续操作并提示“you will recover initial password ”, 此时输入8位恢复密码“72958166”每输入一位密码指示灯闪烁一次。输入的恢复密码正确则恢复成功,初始密码为“325892”并提示“recover success!”,若输入的恢复密码有错则无法恢复初始密码并提示“recover fail! ” 大约10秒后回到开机时的状态。如果只是想进行恢复初始密码操作,按下(setting)设置键后,按下除input键以外的任意键将进入修改密码操作,同时提示“please input the old password”输入旧密码,旧密码正确才可继续修改密码。若旧密码错误将提示“sorry your password is error”同时蜂鸣器和红色led灯产生报警信号(报警信号次数为5次),大约10秒钟后提示“please input your password again”若再次错误输入密码则提示“setting is failed!”并回到开机时的状态。输入的旧密码正确将提示“please input the new password”输入新密码,密码位数为4-6位,按“enter”键确认,此时将提示“please input your password again”再次输入新密码,若两次输入的新密码一致则修改成功并提示“setting is successful!”若两次输入的密码不一致则提示“the two password not match!” 5秒钟后重新提示“please input your password again”再次输入新密码,若与第一次输入的一致则修改成功提示“setting is successful!”否则修改失败提示“setting is failed!”之后回到开机时的状态。按键分布如表1-1:123setting456back789cleaninput0unlockenter表1-1 密码锁按键分布注:在输入密码的过程中(未按下enter键)如有错误输入,可按下back键清除光标前的一位,按下clean键全部清除。第二章 硬件电路设计2.1 控制电路方案选择方案一:采用数字电路控制 用以74ls112双jk触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作 。采用数字电路设计方案时设计虽然简单,但控制的准确性和灵活性差。故不采用。方案二:采用以单片机为核心的控制方案 由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、i/o口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素 。基于以上因素本设计选用单片机stc89c52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,实现基本的密码控制功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接lcd1602显示器用于显示作用。当用户需要开锁时,先按键盘输入键之后按键盘的数字键09输入密码,密码输完后按下确认键,如果密码输入正确则开锁,如果输入不正确,显示密码错误并提示重新输入密码,当密码错误次数到达三次是就会发出报警,并将键盘锁定两分钟,在两分钟内任意按键输入密码无效,两分钟过后按下解锁键(unlock)可解除键盘锁定。当用户需要修改密码时,先按下键盘设置键提示输入密码后输入原来的密码,只有输入的原密码正确才能设置新密码。新密码输入无误后按确认键,新密码将存储到at24c02存储芯片中,密码修改成功。可以看出方案二的控制灵活,准确性好,且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。2.2 显示电路的选择方案一:采用数码管采用数码管作为显示器件。使用数码管显示的优点是:数码管价格低廉,可降低设计成本。同时,也存在的缺点是:数码管显示提示语的代码相当繁杂,编码工作量大,并且显示控制程序难以编写,显示时有余辉干扰难以消除。方案二:采用液晶显示屏lcd1602采用液晶显示屏lcd1602作为显示器件。液晶显示器1602显示控制简单,器件本身自带显示代码无需自行编写,并且可以根据用户需要编写特殊显示字符,性价比优越。2.3 按键电路控制方式方案一:使用独立式按键,不采用单片机中断方式,编写按键扫描程序,进行重复扫面,缺点是:占用过多的单片机i/o口资源,增加了程序编写量,控制方法繁琐,没有充分利用单片机的中断资源。方案二:使用矩阵式键盘分布,采用单片机中断方式控制按键扫描,使用单片机的外部中断0接口。优点是:按键反应灵敏,响应时间快,充分利用了单片机的中断资源。2.4 主要器件介绍2.4.1 单片机的产生与发展计算机的发展主要朝着两个方向,一方面,计算机向着高速、智能化的巨型超级机方向发展,运算速度已达每秒数十万亿次;另一方面,计算机则向着微型化的方向发展,一个纯单片的微型计算机的体积比人的指甲还小。一个典型的数字计算机系统,应包括运算器,控制器,数据与程序存储器,输入输出接口四大部分。如果将它们集成在一小块硅片上,就构成了微型单片计算机,简称单片机。什么是单片机?所谓单片机就是将微处理器(cpu)、随机读写存储器(ram)、只读存储器(rom或eprom、eeprom)、特殊功能寄存器(sfr)、定时器/计数器和各种输入/输出接口电路(i/o),以及相互连接的总线(bus)等集成在一块芯片上,形成芯片级的计算机,又称为单片微型计算机。通常单片机基本结构如图2-1所示。图2-1 单片机基本结构342.4.2 stc89c52引脚说明主要特性: 4k字节可编程flash存储器 全静态工作:0hz-24khz 三级程序存储器保密锁定 128*8位内部ram 32条可编程i/o线 两个16位定时器/计数器6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图2-2 stc89c52引脚 管脚说明:vcc:供电电压。gnd:接地。 p0口:p0口是一个具有高电平、低电平和高阻态3种状态的端口,既可以作为通用i/o口使用,也可以作为地址/数据复用线接口使用。当p0口作为通用i/o口使用时,由于内部电路是漏极开路输出状态,因此每个引脚都必须外接上拉电阻。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下所示:管脚备选功能:p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。2.4.3 i2c总线密码存储芯片at24c02介绍 图2-3 at24c02引脚图(1)引脚功能介绍及相关知识wp:写保护引脚,将该引脚接vcc,e2prom就实现写保护(只读)。引脚接地或悬空,可以对器件进行读写操作。scl:串行时钟引脚,串行输入输出时该引脚用于输入时钟。sda:串行数据输入输出引脚,用来输入输出数据,该引脚为射极开路输出,需接上拉电阻。(2)i2c总线协议只有总线非忙时才被允许进行数据传送,在传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时数据线的任何电平变化将被当作总线的启动或停止条件。(3)起始条件起始调教必须在所有操作命令之前发送。时钟线保持高电平期间,数据线电平从高到低跳变作为i2c总线的启动信号。cat24cxxx一直监视sda和scl电平信号,直到条件满足时才响应。(4)停止条件时钟线保持高电平期间,数据线电平从低到高跳变作为i2c总线的停止信号。(5)器件地址的约定主器件在发送启动命令后开始传送数据,主器件发送相应的从器件地址,8位从器件地址的高四位固定为1010,接下来的3位用来定义存储器的地址,对于cat24c021/022,这三位无意义,对于cat24c41/042,接下来的2位无意义,第三位是地址高位,cat24c081/082中,第一位无意义,后两位表示地址高位。最后一位为读写控制位,“1”表示对从器件进行读写操作,“0”表示写操作。在主器件发送启动命令和一字节从器件地址后,如果与从器件地址吻合,cat24c02将发送一个应答信号,然后再根据读/写控制为进行读或写操作。(6)应答信号每次数据传送成功后,接收器件将发送一个应答信号。当第九个时钟信号产生时,产生应答型号的器件将sda下拉为低,通知已经接受到8位数据,接收到起始条件和从器件地址后,cat24c02发送一个应答信号,如果为写操作,每接收到一个字节数据,cat24c02发送一个应答信号。如果为读操作,cat24c02发送一个字节数据后释放总线等待应答信号,一旦接收到应答信号,它将继续发发送数据,如果接收到主器件发送非应答信号,将结束数据传送等待停止条件。(7)写操作在写字节模式下,助器件发送起始命令和从器件地址信息给从器件,在从器件响应应答信号后,主器件将要写入的数据地址发送到cat24c02的地址指针,主器件收到从器件的应答信号后再送数据到相应的数据存储区地址,cat24c02再响应一个应答信号,主器件产生一个停止信号,然后cat24c02启动内部写周期,在内部写周期期间,cat24c02不再响应主器件任何请求。写操作时序读如图2-4所示:图2-4 写时序图(8)读操作cat24c02读操作的初始化方式和写操作一样,仅把r/w位置1,读操作有三种方式:立即地址读、选择地址读、连续读。选择地址读操作时序图如图2-5所示:图2-5 读时序图2.4.4 液晶显示器1602介绍(1)1602lcd主要技术参数显示容量:162个字符芯片工作电压:4.55.5v工作电流:2.0ma(5.0v)模块最佳工作电压:5.0v字符尺寸:2.954.35(wh)mm(2)引脚功能说明1602lcd采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2-1所示:编号符号引脚说明编号符号 引脚说明1vss电源地9d2 数据2vdd电源正极10d3 数据3vl液晶显示偏压11d4 数据4rs数据/命令选择12d5 数据5r/w读/写选择13d6 数据6e使能信号14d7 数据7d0数据15bla 背光源正极8d1数据16blk 背光源负极表2-1:引脚接口说明表第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。(3)1602lcd的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表2-2所示:序号指令rsr/wd7d6d5d4d3d2d1d01清显示00000000012光标返回000000001*3置输入模式00000001i/ds4显示开/关控制0000001dcb5光标或字符移位000001s/cr/l*6置功能00001dlnf*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01bf计数器地址10写数到cgram或ddram)10要写的数据内容11从cgram或ddram读数11读出的数据内容表2-2:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01h,光标复位到地址00h位置。指令2:光标复位,光标返回到地址00h。指令3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移。 s:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 d:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 。c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 dl:高电平时为4位总线,低电平时为8位总线 。n:低电平时为单行显示,高电平时双行显示 f: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器ram地址设置。指令8:ddram地址设置。指令9:读忙信号和光标地址 bf:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与hd44780相兼容的芯片时序表如下:读状态输入rs=l,r/w=h,e=h输出d0d7=状态字写指令输入rs=l,r/w=l,d0d7=指令码,e=高脉冲输出无读数据输入rs=h,r/w=h,e=h输出d0d7=数据写数据输入rs=h,r/w=l,d0d7=数据,e=高脉冲输出无表2-3:基本操作时序表读写操作时序如图2-6和2-7所示:图2-6 读操作时序图2-7 写操作时序第三章 电路原理图3.1 总体电路原理图3.2 各模块电路设计3.2.1电源电路电源供电采用电脑usb接口的5v电源供电并设有备用电源接口j01,sy为电源开关,d4为电源指示灯,c4、c5的作用是去除交流电流。电路图如下:图3-1电源电路3.2.2 输入部分电路(矩阵键盘)采用4x4的矩阵按键作为输入模块,行线经四输入与门74ls21接入单片机外部中断0接口,用软件先将p1口置数为0xf0,当有任意按键按下时,74ls21与门输出为0,提供低电平给外部中断0接口从而产生中断信号。图3-2矩阵键3.2.3 报警电路报警电路有声音报警和灯光报警两部分,当p2.0和p2.1输出低电平时三极管导通从而驱动蜂鸣器发出声音报警,同时d3点亮报警。图3-3 报警电路3.2.4 开锁电路开锁电路采用继电器模拟,当p2.2输出低电平时三极管导通驱动继电器吸合,从而绿灯d2点亮,用来模拟大门被打开。图3-4 开锁电路3.2.5 密码储存电路 密码储存电路采用i2c总线at24c02存储芯片存放密码,可实现断电密码不消失,at24c02存储芯片可长期存储信息,可上百万次以上重新擦写。图3-5 密码储存电路3.2.6 显示电路显示部分使用lcd1602作为显示器,用单片机p0口作为控制端口,由于单片机p0口没有上拉电阻,所以需外接10k的上拉电阻,rp0为对比度调节电阻。图3-6 显示电路3.2.7 程序加载电路由于程序的编写需要多次调试,所以在密码锁电路设计中增加了串行口程序加载电路,避免反复取下主控芯片stc89c52而引起芯片引脚被损坏。图3-7 程序加载电路3.2.8 单片机最小系统图3-8单片机最小系统第四章 软件设计4.1 软件设计流程图开 始正确否?开 锁y按输入键输入密码按设置键设置密码恢复初始密码正确否?ny输入新密码输入旧密码再次输入旧密码正确否?ny再次输入新密码再次输入密码报警正确否?ny再次输入密码正确否?y报警n报警锁定键盘30s按unlock键解除锁定延时30s上 锁报警两次密码一致否?nny修改成功报警再次输入新密码两次密码一致否?ny参考文献1单片机原理与应用高等教育出版社 李精华 主编 2010-052c语言程序设计实用教程机械工业出版社 李燕 魏海新 盘莉莉 主编2007-083protel99se原理图与pcb设计教程电子工业出版社 及力 主编 2009-064模拟电子技术高等教育出版社 胡宴如 主编 2004-02 5数字电路设计华南理工大学出版社 葛仁华 卢勇威 主编 2007-086/view/3fc8558002d276a200292ef9.html7/view/24f5fe1ea76e58fafab00308.html8/view/671f79160b4e767f5acfce56.html9 /news.asp?id=52710 /附录一:pcb图附录二:密码锁程序#include#include#define uint unsigned int#define uchar unsigned charuchar i,r,k,b,l,tt,key,an,aa,cc,dd,flag,sure,date;uchar code tips=happy every day!;uchar code input=please input the password;uchar code old=please input the old password;uchar code match=the two password not match!;uchar code again=please input your password again;uchar code new=please input the new password;uchar code fail=setting is fail;uchar code good=setting is successful!;uchar code error=sorry your password is error;uchar code hide=*;uchar code pass=opening,come in please!;uchar code limit=operation is limit!;uchar code recover=you will recover frist password;uchar code recss=recover success!;uchar code recff=recover faill!;uchar code frist=3,2,5,8,9,2;uchar code huifu=7,2,9,5,8,1,6,6;char cun8;char password6;char deposit6;char newword6;sbit yy=p23;sbit rs=p25;sbit rw=p26;sbit en=p27;sbit led=p20;sbit fm=p21;sbit jd=p22;sbit int_0=p32;sbit sda=p34;sbit scl=p35;void dingshi(uint ds)uint f,m;for(f=ds;f0;f-)for(m=0;m0;x-)for(y=0;y100;y+);void nopp(uchar s)uchar n;for(n=0;ns;n+)_nop_();void baojing()led=0;fm=0;delay(800);led=1;fm=1;delay(800);void lcd_write_command(uchar command)en=0;rs=0;rw=0;delay(5);p0=command;delay(5);en=1;delay(5);en=0;void lcd_write_data(uchar dat)en=0;rs=1;rw=0;p0=dat;delay(5);en=1;delay(5);en=0;void lcd_show_address(uchar address)lcd_write_command(address|0x80);void judgement()an=p1;an=an&0xf0;if(an!=0xf0)delay(15);an=p1;an=an&0xf0;if(an!=0xf0)flag=1;void lcd_initialization()lcd_write_command(0x01);lcd_write_command(0x38);lcd_write_command(0x0f);lcd_write_command(0x06);void show_init()aa=0;lcd_initialization();void display(uchar content) if(content!=0)lcd_write_data(content);aa+;if(aa=16)lcd_show_address(0x40);void start() /开始信号sda=1;nopp(5);scl=1;nopp(5);sda=0;nopp(5);void stop() /停止信号sda=0;nopp(5);scl=1;nopp(5);sda=1;nopp(5);void response() /应答信号uchar i;scl=1;nopp(5);while(sda=1)&(i255)i+;scl=0;nopp(5);void write_byte(uchar date) /写一个字节uchar i,temp;temp=date;for(i=0;i8;i+)scl=0;nopp(5);temp=1;sda=cy;nopp(5);scl=1;nopp(5);scl=0;nopp(5);sda=1;nopp(5);uchar read_byte() /读一个字节uint i,j;scl=0;nopp(5);sda=1;nopp(5);for(i=0;i8;i+) /循环8次读出一个字节数据scl=1;nopp(5);j=(j1)|sda;scl=0;nopp(5);return j;void at24_write(uchar address,uchar date) start(); /初始信号write_byte(0xa0); /写入芯片地址0xa0response(); /应答信号write_byte(address); /写入芯片内部寄存器地址addressresponse(); /应答信号write_byte(date); / 写入数据response(); /应答信号stop(); / 停止信号uchar at24_read(uchar address)uchar date;start(); / 初始信号write_byte(0xa0); / 写入芯片地址0xa0response(); / 应答信号write_byte(address); / 写入芯片内部寄存器地址addressresponse(); / 应答信号start(); / 初始信号write_byte(0xa1); / 初始信号response(); / 写入芯片地址0xa1(读)date=read_byte(); / 读出数据stop(); / 停止信号return date; / 返回读出值void input_password()i=0;while(flag=1&i10)while(1)/输入的不是数字键或删除键,在此等待if(key0&key=13)/即按下back键 - 后退,取消之前输入的那一位数i-;aa-;if(i=0)lcd_show_address(i);lcd_write_data( );lcd_show_address(i);if(key=14)/清除键cleanshow_init();i=0;if(key10&i6)depositi=key;display(hide0);i+;flag=0;while(flag=0);if(3i7&key=15)flag=0;k=i;/确定密码的位数show_init();uchar compare()for(cc=0;cctt;cc+)if(k!=tt)sure=0; break;if(depositcc=passwordcc)sure=1;else sure=0;break;return sure;void keyscan() interrupt 0fm=0;ea=0;judgement();if(flag=1&int_0=0)p1=0xfe;delay(5);an=p1;if(int_0=0)switch(an)case 0xee:key=1;break;case 0xde:key=4;break;case 0xbe:key=7;break;case 0x7e:key=10;break;/key=10表示 input 键 p1=0xfd;delay(5);an=p1;if(int_0=0)switch(an)case 0xed:key=2;break;case 0xdd:key=5;break;case 0xbd:key=8;break;case 0x7d:key=0;break;p1=0xfb;delay(5);an=p1;if(int_0=0)switch(an)case 0xeb:key=3;break;case 0xdb:key=6;break;case 0xbb:key=9;break;case 0x7b:key=11;break;/key=11表示 unlock 键p1=0xf7;delay(5);an=p1;if(int_0=0)switch(an)case 0xe7:key=12;break;/key=12表示 setti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全员c证考试题库及答
- 2025年湖北邮政秋季校园招聘考试模拟试题及答案解析
- 新能源行业2025技术创新动态及知识产权保护策略分析报告
- 小学语文语音教学设计方案
- 工业互联网IPv6技术升级在工业互联网平台系统集成中的应用与部署报告
- 2025河南开封教投体育场馆管理有限公司开封运动汇招聘1人考试模拟试题及答案解析
- 2025云南省曲靖市第二幼儿园招聘(3人)备考考试试题及答案解析
- 小学英语语法专项训练题
- 旅行社客户订单处理工作流程
- 投资管理企业发展战略策划模板
- 部编人教版六年级上册道德与法治全册教案
- 第13章第2节 人体免疫课件-2025-2026学年北师大版八年级上册生物
- 2025上海科技馆招聘高层次专业技术人才3人备考考试试题及答案解析
- 2025年秋季学期安全主题班会教育记录
- 线路维护材料管理办法
- 2025年外企面试英语常见问题与答案解析
- 火电厂安全员课件
- 2025年银行内部审计部门财务审计员竞聘考试指南
- 洗煤厂冬季三防知识培训课件
- Unit 1 A new start Starting out 课件(内嵌音视频)高一英语外研版必修第一册
- 2025西安医学院第一附属医院第二批招聘(42人)考试备考题库及答案解析
评论
0/150
提交评论