版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的电子密码锁设计班级: :指导老师:摘要目前国普遍使用的锁都是机械式的,这种锁结构简单、使用方便,但利用工具可轻易将其打开,这给用户带来极大的困扰和损失。本文介绍了一种基于STC89C52 单片机的电子密码锁的设计方法。该设计以STC89C52单片机为硬件核心,结合4×4 矩阵键盘电路、 LCD 显示电路、密码存储电路、开锁电路和声音报警电路等外围电路。利用单片机灵活的编程方法和丰富的I/O 端口,该系统能实现密码的输入、清除、比较,密码正确开锁,密码错误次数超次报警,用户修改密码等功能。关键词:单片机;电子密码锁;矩阵键盘;声音报警ABSTRACTAt present,
2、the widespread use of all mechanical locks, this lock structure is simple and easy to use, but easy to use tools to open it, which gives users a lot of confusion and loss.This paper introduces a design of electronic password lock which is based on the SCM ofSTC89C52. This design uses the SCM of STC8
3、9C52 as hardware core , combining with other peripheralcircuits such as 4×4 matrix keyboard interface circuit, password storage circuit,LCD displaycircuit,unlock circuit and voice alarm circuit. Using the flexible programming and the rich I/O port ofthe SCM ,the system can accomplish the follow
4、ing functions:input ,clear or compare the password,unlock when the password is correct, alarm when the wrong enter password times is over and the usercan change the password. keywords:Single-Chip Microcomputer; electronic password lock; matrix keyboard; voicealarm目录1 绪论41.1设计的背景和意义41.2 电子密码锁的国外现状41.
5、3 电子密码锁的发展趋势52 系统设计52.1系统方案设计52.2系统工作原理63 系统硬件设计73.1 STC89C52最小系统设计73.1.1时钟电路设计73.1.2复位电路设计73.2 键盘、显示电路硬件设计83.2.1键盘电路硬件设计83.2.2显示电路硬件设计93.3 AT24C02掉电存储单元的设计113.4 声光提示报警电路123.4.1 报警提示电路123.4.2 LED提示电路124 系统软件设计134.1 主程序模块134.2 密码比较判断模块154.3 密码修改模块154.4 键盘扫描模块164.5 1602A液晶显示模块175 总结18致18参考文献18附录191 器件
6、清单192 源程序201 绪论1.1设计的背景和意义随着科学技术的发展和社会物质财富的日益增长,安全问题已成为人们关注的焦点之一。而锁自古以来就是用于安全防盗的重要器件,如何制作既安全可靠又使用方便的锁是制锁工程师们长期以来研制的主题。众所周知机械锁由于结构上的局限其钥匙很容易被仿制,很多钥匙可以互开,安全性差,且钥匙丢失后其安全性随即大打折扣。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的电子密码锁应运而生。本文从经济实用的角度出发,以STC89C52 单片机为核心,设计了一款具有自动报警功能的电子密码锁。该密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可
7、应用于住宅、办公室的保险箱与档案柜等需要防盗的场所,有比较强的实用性。1.2 电子密码锁的国外现状据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路
8、的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定围,难以普与,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国有几个厂生产供应市场。但国自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过
9、不断的努力,使电子密码锁在我国也能得到广泛应用。1.3 电子密码锁的发展趋势在日常的生活和工作中, 住宅与部门的安全防、单位的文件档案、财务报表以与一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密
10、码锁无论在技术上还是在性能上都获得了大大的提高。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等缺点,再加上其成本较高,一定程度上限制了这类产品的普与和推广。鉴于目前的技术水平与市场的接受程度,电子密码锁是
11、这类电子防盗产品的主流。2 系统设计2.1系统方案设计以STC89C52单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动1602A显示器提示程序运行过程和开锁的步骤,利用AT24C02芯片实现掉电存储。图1为单片机控制密码锁的系统原理框图。STC89C52单片机AT24C02存储芯片矩阵键盘控制LCD1602A蜂鸣器提示电路电源模块LED密码校验提示图1 单片机控制密码锁的系统原理框图2.2系统工作原理 本系统以ST C89C52 单片机为核心, 使用4 * 4 矩阵键盘作为数据输入方式, 驱动1602 显示器提示程序运行过程和开锁的步骤。本系统的密码判断过程如下:当使用者
12、输入6 位密码后按下确认键, 单片机通过密码逐个比较, 如果输入的6 位密码和设定的密码完全一样, 那么能成功驱动开锁模拟灯(LED绿灯)将锁打开。若输入6 位密码与设定的密码不一样, 按下确认键后, 模拟灯(LED绿灯)不亮, 自动返回主界面可以重新输入。由于输入密码过程中难免输入失误, 如果密码输错, 蜂鸣器会短时报警一次, 但是系统不允许无限次地出错, 以免密码被套用, 当3 次密码输入都错误, 单片机将驱动蜂鸣器长时间报警 。 修改密码功能如下:当密码输入正确后, 按下修改密码键可新设置密码。每设定一位新密码, 单片机将其送给E2PROM, 当6 位新密码都输入完毕,按确认键系统将自动
13、回到程序开始, 重新读取密码并保存, 使用者需输入新的密码才能将锁打开。3 系统硬件设计3.1 STC89C52最小系统设计3.1.1时钟电路设计时钟电路用于产生单片机工作时所必需的时钟控制信号,常用的时钟电路有部时钟方式和外部时钟方式。部时钟方式电路外接两个电容和一个晶振,根据振荡频率要求的不同选用不同阻值的电容和晶振。时钟电路中的晶振震荡频率围通常是1.2MHz12MHz,STC89C52常选择6MHz或12MHz的石英晶体,为消除误差,得到准确的波特率,本设计选择震荡频率为11.0592MHz的石英晶,时钟电路如图2所示。图2时钟电路3.1.2复位电路设计复位是单片机的初始化操作,只需在
14、单片机的复位引脚加上大于2个机器周期的高电平就可使单片机复位,当程序运行出错或操作进入死循环状态可通过复位重新启动程序。MCS-51的复位是由外部的复位电路来实现的,STC89C52也不例外,复位电路通常采用上电自动复位和按钮复位两种方式,为方便复位操作,本文采用按键电平复位,电路如图5所示。其中C取10uF,R2取10K,复位电路如图3所示。图3复位电路3.2 键盘、显示电路硬件设计3.2.1键盘电路硬件设计每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要M条行线和N条列线,即可组成具有M×N个按键的键盘。由于本设计中要求使用1
15、6个按键输入,为减少键盘与单片机接口时所占用的I/O线的数目,故使用矩阵键盘。本设计中,矩阵键盘行线和单片机P1.0-P1.3相连,列线与单片机P1.4-P1.7相连。矩阵键盘设计电路图,如图4所示。键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。1234567890输入密码确认更改密码CBA图4 矩阵键盘设计电路图3.2.2显示电路硬件设计本设计中,显示电路采用1602A液晶显示器显示7。如下所示,图5为1602A液晶显示器的接口示意图,表1为接口说明。图5 1602A液晶显示器的接口示意图表1 接口说明管脚序名称电平功能描述1
16、VSS0V接地2VCC5.0V电源输入3V0LCD驱动电压输入4RSH/L寄存器选择:RS=H,选择数据寄存器;RS=L,选择指令寄存器5R/WH/L读写信号线:R/W=H,读操作;R/W=L,写操作6EH,HL使能信号7DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15BLA5.0V背光电源正极16BLK0V背光电源负极本设计中液晶串口一共用到11根导线与单片机相连, 具体连接情况如表2显示模块与MCU连接说明所示。表2 显示模块与MCU连接说明序号1602A液晶显示器引
17、脚STC89C52单片机引脚1RS引脚P2.5(A13)2R/W引脚P2.6(A14)3E引脚P2.7(A15)4D0引脚P0.0(AD0)5D1引脚P0.1(AD1)6D2引脚P0.2(AD2)7D3引脚P0.3(AD3)8D4引脚P0.4(AD4)9D5引脚P0.5(AD5)10D6引脚P0.6(AD6)11D7引脚P0.7(AD7)3.3 AT24C02掉电存储单元的设计本设计中掉电存储单元采用AT24C02外部存储器,其作用是在系统电源断开的时候,存储当前设定的密码数据。AT24C02是一个2K位串行CMOS E2PROM,部含有256个8位字节, 含一个16字节页写缓冲器,具有写保护
18、功能。其采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。如下所示,图6为AT24C02管脚示意图,表3为AT24C02管脚说明。A0A1A2GNDSDASCLWPVCC12348765C02图6 AT24C02管脚示意图表3 AT24C02管脚说明管脚名称功能管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟信号WP写保护VCC1.8V-6.0V工作电压VSS接地本设计中,AT24C02的SCL和SDA引脚接上拉电阻后与单片机的P3.4
19、(T0)和P3.5(T1)脚相连,其电路图如图7所示。图7 AT24C02掉电存储单元设计图3.4 声光提示报警电路3.4.1 报警提示电路 报警提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以与信号的频率发出各种不同的声音,这样可以根据系统要求在密码出入正确和密码输入错误时发出不同的声音提示,已达到报警的要求。蜂鸣器电路,如图8所示。图8 报警电路3.4.2 LED提示电路当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。本次设计中,基于节省成本考虑,用发光二极管代替电磁锁,信息通过LCD显示,并利用蜂鸣器和二极管声光指示。其中,绿发光二极管
20、亮,表示开锁;否则,表示密码输入错误并开启报警电路,如图9所示。图9 LED开锁电路4 系统软件设计在系统设计中,除了硬件设计之外,软件设计也是很重要的,它是系统工作的指挥者,因此系统软件设计时要遵循结构合理、操作性能好、具有一定的保护措施、兼容性好的设计原则来开发设计。密码锁系统软件设计主要包括主程序模块、密码比较判断模块、键盘扫描模块、修改密码模块、数码管显示模块等与按键检测模块。4.1 主程序模块 主程序主要用于定义全局变量,给全局变量赋初值,启动定时器,为整个程序提供数据;检测按键;调用显示等功能。系统程序流程如图10所示。开始系统初始化显示主界面按键检测读入键值A键是否按下开锁,绿灯
21、亮判断密码对否B键是否按下设置新密码A键是否按下新密码设置完成否是否是否是报警,红灯亮否是否是图10 系统程序流程图4.2 密码比较判断模块该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则开启报警电路,复位后重新输入密码。其密码输入和比较判决流程图如图11所示。输入密码核对键盘锁定,开启报警电路开锁,灯亮,可密码修改NY复位图11 密码输入和比较判决流程图4.3 密码修改模块在密码输入正确情况下,可以按下“重置密码”对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的密
22、码。图12为修改密码流程图。开始输入原密码密码比较比较正确?输入新密码再输入新密码调用AT24C02密码比较正确修改成功返回菜单键盘锁定,启动报警电路复位YN图12 修改密码流程图4.4 键盘扫描模块键盘使用矩阵式键盘,由行和列组成,CPU对所有键盘进行监视,从而实现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能。如图13所示,为键盘扫描流程图。开始延时去抖动计算输入键值键值送入单片机有按键输入?有按键输入?有按键输入?返回NNYY图13 键盘扫描流程图4.5 1602A液晶显示模块 此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令是用
23、于控制液晶状态是否显示光标, 光标是否闪烁, 是否清除原来数据以与显示的具体位置。数据显示主要是将要显示的信息按需要准时显示出来。5 总结从基本方案的制定,到硬件电路的选择,再到电路的焊接,最后进行程序调试在此期间我遇到很多困难,但经过不懈努力,和再学习,终于击破了各个难点,达到的所需要的效果。在这次设计中,我深刻认识到自身的不足专业知识不足,缺少实战经验。与此同时,也因为这次设计,我们得到一定的锻炼,体会到理论与实践相结合的重要意义。由于本次设计时间有限,一些设想没有完全实现,比如说:电子密码锁的网络通信扩展,人机界面智能化等。期待以后有机会对以上设想进行进一步研究实践。但是,基本成功实现了
24、1602 液晶显示, 密码开锁, 密码设置, 防止多次试探, 报警等功能。致非常感在这次毕业设计中给我很大帮助的朱金荣老师,感朱老师一如既往的严格要求,感朱老师给我们的压力,让我强迫自己从开始的迷茫困惑中渐渐熟悉掌握了毕业设计的思路和方向。在论文写作和实物设计过程中,朱老师严格认真的教学作风深深感染了我,我对他提出的各种疑难问题他都一一给我做了解答,并给我纠正了许多错误。这次毕业设计我学到许多新的知识,也巩固了很多原来学过的知识,这对我以后的工作有极帮助。同时感曾经妍,凯,朱俊,卫峰等多位老师的专业课的讲授,才有学生今日的设计成果。感王志俊同学对我的无私的帮助。感祖国,感党,给我们当代大学生营
25、造的和谐环境,才有我们今日顺利完成的学业。参考文献1郭海英.基于单片机的电子安全密码锁的设计J.现代电子技术,2005,28(13):95-97.2毅刚.单片机原理与应用M.:高等教育,2003.3谭浩强.C程序设计M.:清华大学,20054章伟,雪,浩然.跟我学C程序设计M.:清华大学,20105培仁.基于C语言编程MCS-51单片机原理与应用M.:清华大学,20026周润景,丽娜,丁莉.基于PROTEUS的电路与单片机设计与仿真M.:航天航空大学,2010720070711.亚斌YB1602A液晶模块使用说明书DB/OL. wenku.baidu./view/7c80dd9951e79b8
26、9680226f3.html8AT24C02DB/OL. baike.baidu./view/1837975.htm9at24c02中文资料DB/OL. .doc88./p-.html10金桂,向国梁.基于C语言STC89C52单片机电子密码锁的设计与仿真J.现代电子技术,2010,19:176-182.附录1 器件清单器件名称规格型号编号数量单价(元)总价(元)备注MCUSTC89C52U1177外部存储器AT24C02U210.430.43LCD1602ALCD112020发光二极管3mmD110.050.05绿光普亮3mmD210.050.05红光普亮三极管8550Q110.20.2晶振
27、12MHzX110.50.5电阻4.7k40.020.0810k20.020.0410K排阻RP110.50.5电容22PC1C220.050.110FC310.050.5IC座8脚IC座10.350.3540脚IC座10.30.3单排插座10.50.5蜂鸣器LS110.650.65电池盒5V电池盒144焊锡212导线111电路板9×15cm万用板11.51.52 源程序#include<reg51.h>#define uchar unsigned charvoid WrToROM(uchar Address,uchar Data,uchar Num);void RdFr
28、omROM(uchar Address,uchar Data,uchar Num);void LCD_init();void LCD_DISPLAY(uchar *str);void KeyDisp();extern uchar passwd5;uchar ppp5="222"void main() LCD_init();WrToROM(0x00,passwd,5);RdFromROM(0x00,passwd,5);LCD_DISPLAY("Welcome china ! Plz input passwd");while(1)KeyDisp();/* 8
29、0s52对键盘 */#include<reg51.h>#include<string.h>#define uchar unsigned charvoid LCD_DISPLAY(uchar *str);void write_(uchar );void write_data(uchar Data);void WrToROM(uchar Address,uchar Data,uchar Num);void RdFromROM(uchar Address,uchar Data,uchar Num);uchar code tab1="ERROR!"uchar
30、 code tab2="RIGHT!"uchar code tab3="0123456789*"uchar code tab4="Input the codes:"uchar code tab5="Input new codes:"uchar code tab6="Input old codes:"uchar mima9 ="22224444" /存放用户密码和正确密码:前四位是用户输入密码,后四位是系统的正确密码uchar passwd5="1111"u
31、char te9=0;sbit relay = P20;sbit beep = P21;/*矩阵键盘子程序*/void delay(uchar v)/延时while(v!=0)v-;void delaynms(uchar n) /延时50*n毫秒 uchar a,b,c;for(c=n;c>0;c-) for(b=173;b>0;b-) for(a=143;a>0;a-);uchar Keycan(void) /按键扫描程序 P1.0-P1.3为行线 P1.4-P1.7为列线uchar rcode, ccode; P1 = 0xF0; / 发全0行扫描码,列线输入 if(P1
32、&0xF0)!= 0xF0) / 若有键按下 delay(200);/ 延时去抖动 if(P1&0xF0) != 0xF0) rcode = 0xFE; / 逐行扫描初值 while(rcode&0x10)!= 0) P1=rcode; / 输出行扫描码 if(P1&0xF0)!= 0xF0) / 本行有键按下 ccode=(P1&0xF0)|0x0F; do;while(P1&0xF0)!= 0xF0); /等待键释放 return (rcode)+(ccode); / 返回键编码 else rcode=(rcode<<1)|0x0
33、1; / 行扫描码左移一位 return 0; / 无键按下,返回值为0bit Check_passwd() uchar comfirm_passwd5=0; /存放用户输入的密码,用于验证 uchar temp,j=0,key,chance=3; while(chance) LCD_DISPLAY("Input Passwd :"); write_(0xc0); /显示屏换行 j=0; while(j<4)do key=Keycan();while(key=0);switch(key) /数字键case 0x11: comfirm_passwdj='1
34、9;j+;write_data('1');break;case 0x21: comfirm_passwdj='2'j+;write_data('2');break;case 0x41: comfirm_passwdj='3'j+;write_data('3');break;case 0x81: comfirm_passwdj='4'j+;write_data('4');break;case 0x12: comfirm_passwdj='5'j+;write_data(
35、'5');break;case 0x22: comfirm_passwdj='6'j+;write_data('6');break;case 0x42: comfirm_passwdj='7'j+;write_data('7');break;case 0x82: comfirm_passwdj='8'j+;write_data('8');break;case 0x14: comfirm_passwdj='9'j+;write_data('9');bre
36、ak;case 0x24: comfirm_passwdj='0'j+;write_data('0');break;default: break;beep=0;delaynms(1);beep=1;while(!(key=0x84)key=Keycan(); /等待确认键temp=1; /验证输入的密码if(strcmp(comfirm_passwd,passwd)temp= 0;chance-;/不相等if(!temp)LCD_DISPLAY("ERROR PASSWD !");delaynms(15);else return 1; /密码
37、正确返回1 return 0; /密码不正确返回0void KeyDisp() uchar j=0,temp;uchar key;uchar comfirm_passwd5=0;/存放用户输入的密码,用于验证key=Keycan();if(key=0x44) /按下的为设置键if(!Check_passwd() /如果密码验证不通过/LCD_DISPLAY("ERROR PASSWD !");beep=0;delaynms(15);beep=1;LCD_DISPLAY("Welcome Baby ! Plz input passwd");/重新显示欢迎界
38、面return;LCD_DISPLAY("Input new passwd:");write_(0xc0); /换行while(j<4)do key=Keycan();while(key=0);switch(key) /数字键 case 0x11: passwdj='1'j+;write_data('1');break; case 0x21: passwdj='2'j+;write_data('2');break; case 0x41: passwdj='3'j+;write_data(&
39、#39;3');break; case 0x81: passwdj='4'j+;write_data('4');break; case 0x12: passwdj='5'j+;write_data('5');break; case 0x22: passwdj='6'j+;write_data('6');break; case 0x42: passwdj='7'j+;write_data('7');break; case 0x82: passwdj='8
40、'j+;write_data('8');break; case 0x14: passwdj='9'j+;write_data('9');break; case 0x24: passwdj='0'j+;write_data('0');break; default: break;beep=0;delaynms(1);beep=1;while(!(key=0x84)key=Keycan();/等待确认键WrToROM(0x00,passwd,5);/按确认键后将密码写入EEPROMwrite_(0x01);/cl
41、ear screanLCD_DISPLAY("OK!");/设置成功,显示OKbeep=0;delaynms(10);beep=1;LCD_DISPLAY("Welcome china ! Plz input passwd");/重新显示欢迎界面 else if(key!=0)LCD_DISPLAY("Input passwd:");write_(0xc0); /显示屏换行while(j<4)switch(key) case 0x11: comfirm_passwdj='1'j+;write_data('
42、*');break;/存放的是字符1 case 0x21: comfirm_passwdj='2'j+;write_data('*'); break; case 0x41: comfirm_passwdj='3'j+;write_data('*'); break; case 0x81: comfirm_passwdj='4'j+;write_data('*'); break; case 0x12: comfirm_passwdj='5'j+;write_data('*
43、'); break; case 0x22: comfirm_passwdj='6'j+;write_data('*'); break; case 0x42: comfirm_passwdj='7'j+;write_data('*'); break; case 0x82: comfirm_passwdj='8'j+;write_data('*'); break; case 0x14: comfirm_passwdj='9'j+;write_data('*');
44、break; case 0x24: comfirm_passwdj='0'j+;write_data('*'); break; default: break;beep=0;delaynms(1);beep=1;do key=Keycan();while(key=0);while(!(key=0x84)key=Keycan(); /等待确认键temp=1; /验证输入的密码if(strcmp(comfirm_passwd,passwd)temp= 0;write_(0x01); /clear screanif(temp)LCD_DISPLAY("RIHG
45、T");relay=0; /显示RIGHT,打开继电器else LCD_DISPLAY("ERROR");/显示ERRORbeep=0; /打开蜂鸣器delaynms(15);beep=1;LCD_DISPLAY("Welcome Baby ! Plz input passwd");/重新显示欢迎界面/* 80s52对eeprom */#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#defi
46、ne nop _nop_ ()sbit SDA= P35; sbit SCL= P34;void delay10ms(void) /10ms误差 -0.2us unsigned char a,b; for(b=249;b>0;b-) for(a=17;a>0;a-);/*/void start(void) /SCL=1: SDA=1->0; SCL=0;SDA=1;SCL=1;nop;nop;nop;nop;SDA=0;nop;nop;nop;nop;SCL=0;SDA=1;/*/void stop(void) /SCL=1: SDA=0->1;SCL=0;SDA=0;
47、nop;nop;nop;nop;SCL=1;nop;nop;nop;nop;SDA=1;nop;nop;nop;nop;SCL=0;/*/void ack(void) SDA=0;SCL=1;nop;nop;nop;nop;SCL=0;nop;nop;nop;nop;SDA=1;/*/void noack(void) SDA=1;nop;nop;nop;nop;SCL=1;nop;nop;nop;nop;SCL=0;/*/bit testack()bit errorbit;SCL=0;SDA=1;SCL=1;nop;nop;nop;nop;errorbit=SDA;nop;nop;nop;no
48、p;SCL=0;return errorbit; / 1->noack; 0->ack;/*/void send(uchar command)uchar i;SCL=0;for(i=8;i>0;i-)SCL=0;nop;nop;nop;nop; if(command&0x80) SDA=1; else SDA=0; nop; nop; nop;SCL=1;nop;nop;nop;nop;command=command<<1; SCL=0;/*/void writebyte(uchar bytew_addr,uchar bytew_data) start();send(0xa0); /0xa0=1010 000 0 = firm(1010) Chip_Addr(000) re(1)/wr(0) testack(); /*1*send send(by
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告发布合同广告代理及发布协议3篇
- 2024年度版美发店租赁合同模板下载2篇
- 2024版电子产品供应与代理销售合同2篇
- 2024年个人小额借款合同9篇
- 2024年度高校教师人事代理合同2篇
- 净水器品牌2024年度代理经营合同2篇
- 2024年互惠共赢:商务咨询中介合同2篇
- 2024年事业单位医疗卫生人员聘用协议2篇
- 股票合作协议模板三篇
- 教师与学生之间的有效沟通计划
- 2024年度工程咨询三人合伙协议书3篇
- 屋面板的拆除与更换施工方案
- 中药水飞蓟简介
- 生命不是游戏拒绝死亡挑战主题班会
- 8《我们受特殊保护》说课稿-2023-2024学年道德与法治六年级上册统编版
- 2024智能配电房技术导则
- 2024秋国家开放大学网课思政课《毛概》大作业+2024春+试题C
- 大数据开发工程师招聘笔试题及解答(某世界500强集团)2025年
- 2024年新人教版七年级数学上册教学课件 第六章 几何图形初步 6.1.2 点、线、面、体
- 2024年军队文职统一考试《专业科目》管理学试卷(网友回忆版)含解析
- GB/T 44456-2024电子竞技场馆运营服务规范
评论
0/150
提交评论