欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年数字式密码电子锁电路课程设计任务书 .pdf

    • 资源ID:38584263       资源大小:2.24MB        全文页数:34页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年数字式密码电子锁电路课程设计任务书 .pdf

    课程设计任务书学生姓名:柯一凡专业班级:通信 1102 指导教师:许建霞工作单位:信息工程学院题目: 数字式密码电子锁电路设计初始条件: Protel 软件、 PC 机和相关地参考书籍如:1.Protel99 入门与提高 .赵品编著 .人民邮电出版社.2000.112.Protel99 高级应用 .赵品编著 .人民邮电出版社.2000.113.Protel 99 SE 电路设计与仿真应用要求完成地主要任务: 1、绘制具有一定规模、一定复杂程度地电路原理图*.sch(自选) .可以涉及模拟、数字、高频、单片机、或者一个具有完备功能地电子电路系统.(注意:电路选择不可过分简单,元件种类(包括电源和信号源)少于5 种;或者元件个数少于10 个将导致不及格.)2、绘制相应电路原理图地双面印刷版图*.pcb3、对电路原理图进行仿真,给出仿真结果(如波形*.sdf 、数据)并说明是否达到设计意图. (注意:仿真提倡对所绘制地原理图*.sch进行全面仿真,如果不能做到全面仿真成功,则要说明原因,但要完成局部电路地仿真. )时间安排:序号设 计内容所 用时 间1 选择合适地电路1 天2 用 Protel 绘制相应地电路双面印刷版图,并仿真3 天3 总结编写课程设计报告1 天合计1 周指导教师签名: 2014年 6 月 10 日系主任(或责任教师)签名: 2014 年 6 月 10 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 34 页目录目录 . 摘要 . Abstract . I1 设计任务与要求.01.1 设计任务 .01.2 设计要求 .02 原理分析 .12.1 单片机控制原理.12.2 模块硬件电路分析.12.2.1 单片机最小系统.12.2.2 键盘矩阵 .22.2.3 LCM1602 液晶显示 .32.2.4 声光显示 .33 电路原理图绘制.53.1 DXP 绘制电路原理图 .53.2 DXP 绘制 PCB 图 .83.2.1 加载网络表 .83.2.2 PCB 板地排版 .93.2.3 PCB 板地布线 .93.3.4 PCB 板地覆铜 .104 电路仿真及分析.125 心得体会 .146 参考文献 .14附录 .15数字式密码电子锁程序源代码(仿真) .16精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 34 页摘要本系统以STC89C52 单片机最小系统为核心,结合矩阵键盘、1602LCD 和报警系统组成.系统能完成锁闭状态显示、密码输入错误超次(大于三次)异常,系统锁定声光告警、初始化设置用户密码等基本地密码锁地功能.除上述基本地密码锁功能外,依据实际地情况还可以添加通过超级密码重置密码、键盘背光与通过背光显示密码、系统产生随机密码等扩展空间.Protel DXP 6 将工程管理方式、原理图和PCB 图地双向同步技术、多通道技术、自动布线技术以及强大地电路仿真地技术完美地融合在一起.Protel DXP 提供了丰富地元件库,包括原理图符号.PCB 封装、 SI 模型及仿真模型,可以方便地进行同步修改.这次课程设计主要要求掌握原理电路图设计、PCB设计和仿真 .关键词: Protel DXP ,PCB 设计,电子密码锁,STC89C52,液晶显示精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 34 页Abstract The system STC89C52 microcomputer as the core, combined with matrix keyboards, 1602LCD and alarm system components. System can complete the lock status display, the password input error and Ultra (more than three times) abnormal sound and light alarm system lock, initialized to set user passwords, and other basic lock function. In addition to the basic lock function, based on the actual situation can also be added through super password reset your password, keyboard backlight and password through the backlit display, the system generates random passwords for expansion.Protel DXP 6 combine Project management, the PCB and schematic map of the two-way synchronization technology, multi-channel technology, automatic routing technology and a strong circuit simulation technology together perfectly. Protel DXP provides a rich library, including the principle of symbols. PCB package, SI model and simulation model can easily synchronize edits. The main demands of the curriculum design master principle circuit design, PCB design and simulation.Keywords: Protel DXP ,PCB design tools,electronic code lock ,STC89C52, liquid crystal display精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 34 页1 设计任务与要求1.1 设计任务设计一个以单片机AT89C52 为主控芯片,结合外围电路,组成电子密码锁.用户想要打开锁,必先通过提供地键盘输入正确地密码才能将锁打开,密码输入错误有提示,为提高安全性,当密码输入错误三次将报警.密码可以由用户自己修改设定,锁打开后才能修改密码.修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作.完成密码锁地功能.1.2 设计要求(1) 使用 protel制作数字式密码电子锁地电路原理图(2) 使用 protel制作数字式密码电子锁地PCB图(3) 使用 Protuse对数字式密码电子锁电路进行仿真精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 34 页单片机最小系统声光显示模块1602液晶显示模块矩阵键盘2 原理分析2.1 单片机控制原理本次设计选用单片机STC89C52 作为本设计地核心元件,利用单片机灵活地编程设计和丰富地I/O 端口,及其控制地准确性,实现基本地密码锁信号判断、状态保存、电平控制地功能.设计从总体可以分为硬件和软件两个部分.在硬件部分中,由单片机最小系统、矩阵键盘、1602 液晶显示、声光显示这几个部分,其相关控制如图2-1;在软件部分中,由矩阵键盘键值读取、1602 液晶显示函数、延时模块、密码读取模块、密码设置模块、密码比较模块、声光状态模块等几部分组成.图 2-1 硬件模块关系2.2 模块硬件电路分析2.2.1单片机最小系统此为一个单片机最小系统,其有P0P3 四组 I/O 口,可以进行相关地电平状态读取与控制操作.开关 SW_RST 为复位开关,当其接通,单片机RST9 复位端至于高电位,满足一定时长后,单片机会进行复位操作,重新开始工作.Y1、C1.2、C1.3 组成了单片机地振荡电路,为单片机系统提供稳定可靠地时钟信号,协助单片机完成相关操作.Header9 为一组排阻,座位上拉电阻.由于 STC89C52 使用串口方式下载程序,因此需要使用MAX232 完成程序下载地处理工作.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 34 页图 2-2 单片机最小系统原理图图 2-3 串口电路2.2.2键盘矩阵设计准备使用4 4 键盘,对应地电路如图2-4 所示 .09 输入相应地数字.在输入密码是LR 分别实现输入位置地左右移动,B 为退格键, C 为清除键,清楚当前所有地输入字符,S为功能扩展键,暂时未定义, E 为确认键 .由于本设计所用到地按键数量较多而不适合用独立按键式键盘.采用地是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列地交叉点上,密码锁地密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O 口. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 34 页图 2-4 4 4 键盘矩阵2.2.3 LCM1602 液晶显示图 2-5 为 1602 液晶地引脚分布.1,2 为液晶显示供电,3 接滑 动 变 阻器改变3 地相对电位,调节显示对比度.4,5,6 为液晶地控制端 , 调 节工作状态 .714 为液晶地数据输入端,15、 16 为液晶背光地电源接口.17,18 可以悬空不接.图 2-5 LCM1602 液晶显示2.2.4声光显示光显示有红绿两种颜色地发光二极管组成,负极接单片机引脚,正极结一个限流电阻后接地.当单片机输出高电平,其不亮,当单片机输出低电平,二极管点亮.声信号告警有长鸣蜂鸣器与一个三极管、电阻组成,三极管在单片机地控制下驱动蜂鸣器正常工作.长鸣蜂鸣器,在给予有效电平时可以不间断地以一定地频率发出蜂鸣.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 34 页图 2-6 蜂鸣器工作电路精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 34 页3 电路原理图绘制3.1 DXP 绘制电路原理图进入 Protel DXP 2004 后,依次点击工具栏上地File/New/PCB Project,新建一个后缀名为prjPCB地工程文件 .图 3-1 新建 prjPCB 工程文件接下来在刚建立地prjPCB 地工程文件下点击File/New/Schematic 新建一个后缀名为SchDoc 地原理图,建立原理图与工程地关联.图 3-2 新建原理图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 34 页在绘制原理图时,Protel DXP 2004 在工具栏上提供了常用元件地快捷方式,例如电阻、电解电容、瓷片电容以及常用地与、或、非等组合逻辑门,使用起来很方便.如果要使用其他元件则可以使用Place/Part命令打开元件选择窗口.若 使 用 地 是 比 较 基 本 地 元 件 可 以 在Protel DXP 2004 默 认 提 供 地 元 件 库Miscellaneous Devices.lntLib 中直接浏览 .Protel DXP 2004 将元件地原理图符号,元件描述、封装号以及SI 仿真模型都集中在一起显示,使用起来很方便,也在一定程度上避免了Protel 99 SE 中不知道元件封装号地问题.如果需要修改,可以在Model Name 框中自行修改 .图 3-3 添加元件如果是寻找不那么常用地元件可以在元件库管理器中选择Libraries/Search/Search Libraries 命令,再输入元件名称查找.根据电路要求可以在DXP 中加载相应地元件库,DXP 中带有非常丰富地元件库,并且按照芯片地生产公司地名称分开放置,便于查找.如果没有相应地元件,还可以通过PCB 库文件编辑器来自己编辑.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 34 页图 3-4 加载元件库在依照电路安放好所有元件之后再开始连线.点击工具栏上地place wire 图标进行连线操作,将各元件地引脚连接起来.在连线时需要注意导线交叉时是否导通地问题.如图 3.5 所示,第一条水平导线与竖直导线导通,但在绘图时经常忽略这一点,处理成第二条水平线.所以在画图时应该在连接处用Place菜单下地ManualJunction 工具添加一个电气结点.图 3-5 连线时地结点处理完 成 所 有 连 线 之 后 , 选 择File/New/TextDocument命 令 , 开 启 一 个 数 据 库 文 本 ; 再 选 择Project/Project Options 命令设置工程检查参数,在执行Project/Compile Document检查系统错误 .如果提示错误则返回修改原理图,如果没有错误,则选择Design/Netlist For Document/Protel命令生成网络表.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 34 页图 3-6 数字式密码电子锁原理图3.2 DXP 绘制 PCB 图3.2.1 加载网络表生成网络表之后,就进入了PCB 板绘制地阶段 .选择 File/New/PCB 生成一个后缀为PcbDoc 地文件.PCB 板分为很多层,主要有Top-Layer、 Bottom-Layer 、Mechanical 、Top Overlay、 Keep-Out-layer和 Multi-Layer.按步骤设置PCB 板地Mechanical 物理边界以及Keep-Out Layer 电气边界 .先执行Design/Board Sharp/Redefine Board Sharp 命令,此时光变变成十字形.然后在 Mechanical 层面上划定PCB 板地物理边界,最后在禁止布线层(Keep-Out Layer )上面划定电器边界.在正确设置完成PCB 板之后,在PcbDoc 文件下选择Design/Import Changes From 命令加载网络表(或者在SchDoc 文件下选择Design/Update PCB Document 命令),屏幕上显示详细地网络连接信息.点击 Validate Changes按钮可以检查装入地元件封装、电器规则以及元件地网络连接是否正确,如果正确,屏幕上将显示绿色打勾标记.再点击 Execute Changes按钮完成元件网络表地加载. 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 34 页3.2.2 PCB板地排版网络表加载完成之后,PCB 根据网络表产生预拉线,在屏幕上会出现排列整齐地所有元件以及设置过地PCB 板,然后PCB 根据预拉线一条一条变为铜膜走线.选定所有地元件拖至PCB 板上,执行Tools/Auto Placement/Auto Placer/Cluster Placer 命令, DXP 开始自动排版 .一般来说DXP 地自动排版后地 PCB 板已经比较理想了,但是仍然可以手动排版进行进一步美化.图 3-7 PCB 手动排版3.2.3 PCB板地布线在元件排版完毕之后,就可以进入到最后地布线阶段.Protel DXP 2004 沿袭了 Protel99 SE 强大地自动布线功能,不仅布线快速而且合理,通过率很高.我们可以执行Auto Route/All命令,选择Default 2 Layer Board 选项,再点击Route All 完成双层 PCB 板地布线 .精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 34 页图 3-8 DXP 自动布线后地PCB 板DXP 在完成自动布线之后显示一共布线总数,并且全部成功,至此基于DXP 地 PCB 板设计全部制作完成 .3.3.4 PCB板地覆铜选择工具栏上地按钮,将弹出一个对话框,如图3-9 所示,在Connect to Net 中选择 GND 点击OK,鼠标将变成光标,用光标将需要覆铜地区域圈起来,则得到覆铜后地顶层图,如图3-9 所示,在设计工作区地板层标签选中BottomLayer ,执行以上相同步骤,得到覆铜后地底层图,如图3-9.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 34 页图 3-9 覆铜参数设置图 3-10 覆铜后地顶层图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 34 页4 电路仿真及分析(1)密码锁开始菜单图 4-1 密码锁开始菜单(2)密码锁设置初始密码图 4-2 设置初始密码(3)成功设置密码精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 34 页图 4-3 设置密码成功提示(4)输入错误提示图 4-4 密码输入错误提示结论:由此可以看出,此设计地矩阵键盘键值读取,1602 液晶显示模块,密码读取模块,密码设置模块比较模块,声光状态模块都能正常工作,设计成功.精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 34 页5 心得体会作为电路设计必须使用地软件,Protel DXP 被现代电子设计者们广泛地使用,我们作为电子信息工程专业地学习者,理应熟练掌握这种实用性好、专业性强地软件.经过对 Protel DXP 一周地学习和应用,从开始地无法上手,到现在地马马虎虎,虽然不能说做地很好,但是自己看到了自己地进步,从这点上还是很高兴地.本设计从经济实用地角度出发,采用美国Atmel 公司地单片机AT89C52作为主控芯片与数据存储器单元,结合外围地键盘输入、显示、报警、开锁等电路并用C编写主控芯片地控制程序,研制了一款可以多次更改密码具有报警功能地电子密码锁.设计完全可行可以达到设计目地.使用单片机制作地电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点.可应用于住宅、办公室地保险箱及档案柜等需要防盗地场所,有一定地实用性.该电路设计还具有按键有效提示,输入错误提示,控制开锁电路,控制报警电路,修改密码等多种功能.可在意外泄密地情况下随时修改密码.保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等诸多场所.与此同时本次课程设计也使我学到了关于protel软件地安装、电子线路原理图地设计、电路原理图元件库文件地设计、电子线路PCB电路板设计、PCB元件封装库设计.但是这些内容对于我们今后地所用是远远不够地.为此,在以后地时间里要进一步地去学习和思考,对protel要有近一步地认识,更好能熟练地掌握各种操作此软件.6 参考文献1 伍时和等数字电子技术基础北京:清华大学出版社,2009.4精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 34 页2 张天凡等 51 单片机 C 语言开发详解北京:电子工业出版社,2008.63 李东生,许四毛. Protel 电路设计教程. 北京:电子工业出版社,2010.4 朱定华,蔡苗. Protel 原理图和印制板设计.北京:清华大学出版社,2011. 5 陈汝全电子技术常用器件应用手册2 版北京:机械工业出版社,2006.6 余孟尝数字电子技术基础简明教程.2 版北京:高等教育出版社,2007.7 谢自美 .电子线路设计.实验 .测试 .武汉:华中科技大学出版,2006.附录名称型号数量备注精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 34 页单片机芯片STC89C521石英晶振12M1瓷片电容3321054电解电容4.7uf1电位器10K1电阻1K410K110K 排阻1LED红色1绿色1长鸣蜂鸣器1三极管85501LCD 显示模块16021按键开关17自锁开关1排针若干导线若干万用表1电工工具1 套数字式密码电子锁程序源代码(仿真)#includereg52.h #include string.h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 34 页#define LCD_DATA P0 /LCD 地数据口/输入方式设置#define LCD_AC_AUTO_INCREMENT 0 x06 /数据读、写操作后,AC 自动增一#define LCD_AC_AUTO_DECREASE 0 x04 /数据读、写操作后,AC 自动减一#define LCD_MOVE_ENABLE 0 x05 /数据读、写操作,画面平移#define LCD_MOVE_DISENABLE 0 x04 /数据读、写操作,画面不动/设置显示、光标及闪烁开、关#define LCD_DISPLAY_ON 0 x0C /显示开#define LCD_DISPLAY_OFF 0 x08 /显示关#define LCD_CURSOR_ON 0 x0A /光标显示#define LCD_CURSOR_OFF 0 x08 /光标不显示#define LCD_CURSOR_BLINK_ON 0 x09 /光标闪烁#define LCD_CURSOR_BLINK_OFF 0 x08 /光标不闪烁/光标、画面移动,不影响DDRAM #define LCD_LEFT_MOVE 0 x18 /LCD 显示左移一位#define LCD_RIGHT_MOVE 0 x1C /LCD 显示右移一位#define LCD_CURSOR_LEFT_MOVE 0 x10 /光标左移一位#define LCD_CURSOR_RIGHT_MOVE 0 x14 /光标右移一位/工作方式设置#define LCD_DISPLAY_DOUBLE_LINE 0 x38 /两行显示#define LCD_DISPLAY_SINGLE_LINE 0 x30 /单行显示unsigned char code tab44= 1,2,3,C, 4,5,6,B, 7,8,9,S, L,0,R,E。/键盘键值表unsigned char input_password9=0,0,0,0,0,0,0,0,0。/临时读入密码数组unsigned char normal_password9=12345678。/密码存储数组unsigned char temp_normal_password9=12345678。/临时设定密码数组unsigned char lock=0,miss=0,key=0 。/系统环境变量分别为锁状态、连续错误次数、读入键值sbit beep=P32。/蜂鸣器控制变量sbit LEDR=P34 。/开锁指示灯控制变量sbit LEDE=P36 。/闭锁指示灯控制变量sbit LCD_BUSY=LCD_DATA7 。/LCD 忙信号位sbit LCD_RW=P20 。/LCD 读写控制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 34 页sbit LCD_RS=P21 。/LCD 寄存器选择sbit LCD_EN=P22 。/LCD 使能信号*/ void LCD_cls(void) 。void LCD_write_data(unsigned char) 。void LCD_initial(void)。void LCD_set_position(unsigned char) 。void LCD_prints(unsigned char *)。void LCD_printc(unsigned char) 。void didi() 。/蜂鸣报警模块函数void verify_password () 。/开锁判断模块函数void Load()。/初始化函数void First()。void read_password ()。/读入密码模块函数void Set_password()。/设定密码模块函数void delay(unsigned char a)。/毫秒延时模块函数unsigned char kbscan()。/键盘扫描模块函数void LCD_check_busy(void) /检测LCD 状态 while(1) LCD_EN=0 。 LCD_RS=0 。 LCD_RW=1 。 LCD_DATA=0 xff。 LCD_EN=1 。 if(!LCD_BUSY)break。 LCD_EN=0 。 void LCD_cls(void) /LCD 清屏 LCD_check_busy() 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 34 页 LCD_RS=0 。 LCD_RW=0 。 LCD_DATA=1 。 LCD_EN=1 。 LCD_EN=0 。 void LCD_write_instruction(unsigned char LCD_instruction) /写指令到LCD LCD_check_busy() 。 LCD_RS=0 。 LCD_RW=0 。 LCD_DATA=LCD_instruction。 LCD_EN=1 。 LCD_EN=0 。 void LCD_write_data(unsigned char LCD_data) /输出一个字节数据到LCD LCD_check_busy() 。 LCD_RS=1 。 LCD_RW=0 。 LCD_DATA=LCD_data 。 LCD_EN=1 。 LCD_EN=0 。 void LCD_set_position(unsigned char x) /LCD 光标定位到x 处 LCD_write_instruction(0 x80+x)。 /* void LCD_go_home(void) /LCD 光标归位 LCD_write_instruction(LCD_GO_HOME)。 */ void LCD_printc(unsigned char lcd_data) /输出一个字符到LCD LCD_write_data(lcd_data) 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 34 页void LCD_prints(unsigned char *lcd_string) /输出一个字符串到LCD unsigned char i=0 。 while(lcd_stringi!=0 x00) LCD_write_data(lcd_stringi)。 i+ 。 void LCD_initial(void) /初始化 LCD LCD_write_instruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE)。 LCD_write_instruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF)。 LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE)。 LCD_cls() 。 /* Function: delay(unsigned char t) * Input Variables: t0。i-) 。 /* Function: kbscan() * Input Variables: None * Return Variables: key * Usage: 将读出地按键保存在全局变量key,并将其当做函数值返回* Notes: None */unsigned char code kbscan() /键盘扫描模块函数 unsigned char hang,lie。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 34 页if(P1!=0 x0f) delay(5)。/软件消抖if(P1!=0 x0f) /判断是否有按键 switch(P1&0 x0f) case 0 x0e:hang=0。break。case 0 x0d:hang=1。break。case 0 x0b:hang=2。break。case 7:hang=3。 break。/ 扫 描行 P1=0 xf0。P1=0 xf0。switch(P1&0 xf0) case 0 xe0:lie=0。break。case 0 xd0:lie=1。break。case 0 xb0:lie=2。break。case 0 x70:lie=3。break。/扫描列 P1=0 x0f。while(P1!=0 x0f) 。key=tabhanglie 。/确定按键键值 else key=0。/无按键return (key)。 /* Function: Load() * Input Variables: None * Return Variables: None * Usage: 系统初始化* Notes: None */void Load() 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 34 页/初始化函数 unsigned char i。beep=1。LEDR=0 。LEDE=1 。key=0。P1=0 xf0。P0=0 xff 。for(i=0 。i9。i+) input_passwordi=0 。 / 系 统变量数组清零normal_password9=0 。LCD_initial() 。LCD_set_position(1) 。LCD_prints(Whys Electron)。LCD_set_position(0 x40) 。LCD_prints( Cipher Lock)。/提示信息LCD显示while(kbscan()=0) 。/ 按 任意值返回return。 /* Function: first() * Input Variables: None * Return Variables: None * Usage: 等待清屏函数* Notes: None */void first() while(kbscan()=0) 。LCD_cls() 。return。 /* Function: read_password() * Input Variables: None * Return Variables: None * Usage: 读入通过键盘输入地密码* Notes: None 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 27 页,共 34 页*/void read_password() / 读 入密码模块函数 unsigned char i=0。LCD_set_position(0 x40) 。LCD_prints( ) 。for(i=0 。i9。i+) input_passwordi=0 。 / 读 入密码数组初始化for (i=0 。i=0&key0)i- 。break。/读入位置左移case R: if(i0。i-) input_passwordi=0 。input_passwordi=0 。break。/清空读入内容case B: if(i0) i-。input_passwordi=0 。LCD_set_position(0 x44+i) 。LCD_printc( ) 。 /进行退格操作精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 28 页,共 34 页break。case S: break。/功能键处理default : input_passwordi=key 。/有效数字密码保存LCD_set_position(0 x44+i) 。LCD_printc(input_passwordi+)。 key=0。/键值清零 /* Function: void Set_password() * Input Variables: None * Return Variables: None * Usage: 设置密码锁系统地密码* Notes: None */void Set_password() / 设 定密码模块函数 unsigned char i,j。/局部循环、判断变量while(1) LCD_cls() 。LCD_set_position(1) 。LCD_prints(Set Password) 。LCD_set_position(0 x40) 。LCD_prints( ) 。/提起信息显示read_password()。/读入密码strncpy(temp_normal_password,input_password,9) 。/读入密码保存在临时设定密码数组for(i=0 。i9。i+) input_passwordi=0 。 / 读 入密码数组初始化LCD_set_position(0 x44) 。while(kbscan()=0) 。LCD_cls() 。LCD_set_position(1) 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 29 页,共 34 页LCD_prints(Input again)。read_password()。 /进行设定密码确认j=strcmp(input_password,temp_normal_password)=0 。/判断两次密码是否相同for(i=0 。i9。i+) input_passwordi=0 。 if(j) LCD_cls() 。LCD_set_position(2) 。LCD_prints(Set Password) 。LCD_set_position(0 x42) 。LCD_prints(Successfully) 。strncpy(normal_password,temp_normal_password,9) 。for(i=0 。i9。i+) temp_normal_passwordi=0 。 while(kbscan()=0) 。break。/如果相同保存密码进行提示 else LCD_cls() 。LCD_set_position(1) 。 for(i=0 。i9。 i+) temp_normal_passwordi=0 。 LCD_prints(Passwords is) 。LCD_set_position(0 x43) 。LCD_prints(difference)。while(kbscan()=0) 。continue。/如果不同放弃密码并返回重新设定 /* Function: verify_password () * Input Variables: None * Return Variables: None * Usage: 验证密码,控制锁和声光显示部件地状态* Notes: None */void verify_password () / 开 锁判断模块函数精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 30 页,共 34 页 unsig

    注意事项

    本文(2022年数字式密码电子锁电路课程设计任务书 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开