《《单片机原理与应用及上机指导》第11章:单片机电子密码锁设计课件》由会员分享,可在线阅读,更多相关《《单片机原理与应用及上机指导》第11章:单片机电子密码锁设计课件(34页珍藏版)》请在金锄头文库上搜索。
1、第11章 单片机电子密码锁设计,教学提示和教学目标 11.1 系 统 概 述 11.2 设计思路分析 11.3 基本功能介绍 11.4 主要芯片介绍 11.5 硬件电路设计 11.6 软 件 设 计 11.7 总 结 11.8 上 机 指 导,教学提示和教学目标,教学提示:本章主要介绍了利用单片机实现电子密码锁的设计思路和一般方法,从电子密码锁的基本构成单元入手,着重介绍了单片机电子密码锁的系统功能和结构框图,硬件电路设计思路和软件设计思路。 教学目标:了解利用单片机实现电子密码锁的构成框架;熟悉单片机电子密码锁的设计和制作流程;掌握基于单片机电子密码锁的硬件系统和软件系统设计的思路和一般方法
2、。,11.1 系 统 概 述,本系统以AT89C51单片机为核心和AT24C02 E2PROM存储器构成的简单电子密码锁,实用、功能灵活多样,除基本功能外,还可以扩展带实时时钟功能。采用6位密码控制(可以扩展至多位),由于单片机不具备掉电保存功能,因而,采用AT24C02来存储用户密码信息,它具有掉电后密码信息可以保存功能,可以广泛地应用在各种防盗场所。 本章介绍由AT89C51单片机为核心与AT24C02 E2PROM存储器构成的简单电子密码锁,它具有可以设定密码、门铃呼叫、限制密码输入错误次数和报警等功能,并介绍通过Proteus和Keil联合仿真,来完成该课题的设计和掌握Proteus和
3、Keil软件的使用。,11.2 设计思路分析,11.2.1 系统构成框图 11.2.2 器件选择,11.2.1 系统构成框图,基于单片机的电子密码锁的系统构成框图如图11.1所示。由控制模块AT89C51、E2PROM AT24C02存储器模块、键盘显示器模块、报警驱动模块、电源模块等组成。 本系统采用单片机AT89C51作为本设计的核心元件。利用7段共阳极LED数码管作为显示器件,用于开机时显示提示信息和工作时显示密码提示信息或实时时钟显示。另外,采用AT24C02(E2PROM存储器)来存储用户密码信息,它具有掉电后密码信息保存功能。,11.2.2 器件选择,本系统在设计过程中主要选取了以
4、下一些器件: 单片机:AT89C51。 显示器件:6位7段共阳极LED显示器。 按键:欧姆龙按键。 存储器:AT24C02 E2PROM。 报警单元:蜂鸣器。,11.3 基本功能介绍,1密码设置 初始密码通过密码修改程序用单片机写入E2PROM存储器,初始密码为951688。 2密码修改 当需要修改密码时,先输入原始密码,单击OK按钮确认后,系统先进行密码校验,如果正确则显示“HELLO!”,输出LED指示灯点亮,然后输入新的6位数密码,再单击SET按钮,完成密码的设置。 3密码存储 由键盘输入的密码存储在单片机的输入缓冲区,掉电后就消失了;而E2PROM则存储着系统设置的密码,掉电后密码依然
5、还在,这就是采用E2PROM的优点。 4本机键开锁 输入正确的密码后,单击OK按钮,系统显示“HELLO!”的欢迎信息,同时输出指示灯LED点亮,驱动电控锁机构完成开锁动作。 5密码错误报警 当输入的密码不正确时,系统显示“NO-!”,然后输入次数减1,返回等待继续输入密码,当输入错误的密码达3次后,系统显示“NO-!”,系统同时发出声光报警,驱动LED闪烁和蜂鸣器发出报警声。 6密码显示 正常情况下,系统显示“-”,在每输入一位密码后系统显示一个“H”,掩盖掉当前输入的密码,所以可以防止密码信息泄露而比较安全。 7门铃呼叫 当单击CALL按钮后,系统显示“HELLO!”欢迎信息,同时驱动蜂鸣
6、器发出门铃呼叫声。,11.4 主要芯片介绍,AT24C02是一款带有2KB的电擦写存储器。地址和数据通过I2C总线传输,在每次对数据字节进行读或写操作后,内建的字地址寄存器自动增加。器件读/写地址为0A1/0A0,I2C通信总线中SDA为数据传输线、SCL为时钟线,A0、A1、A2为片选地址硬件连接线,这样允许将8个24C02器件连接到总线上,它对应指令中的A0、A1、A2来寻址区分。,11.5 硬件电路设计,硬件电路包含以下几个部分。 1显示电路设计 采用6位7段共阳极数码管,ADP连接到单片机的P0.0P0.7,位选端由P2.0P2.5控制74LS04(6输入输出非门)来控制数码管的6个阳
7、极。 2存储电路设计 存储电路 如图11.2所示,单片机P3.6、P3.7分别连接I2C接口的E2PROM AT24C02的SDA和SCL线,外接两个4.7k的上拉电阻,构成I2C总线通信电路。 3按键电路设计 按键电路 如图11.3所示,由单片机的P1.0P1.3构成行线,由P1.4P1.7构成列线分别与按键相连,构成44矩阵式扫描键盘,分布数字09、功能OK、ESC、SET、CALL等按键。 4报警电路设计 报警电路 如图11.4所示,由单片机的P2.6端口与PNP型2N3905三极管的基极相连,通过发射极来驱动蜂鸣器。 5整体电路工作原理,图11.2 存储电路,图11.3 按键电路,图1
8、1.4 报警电路,11.6 软 件 设 计,采用模块化方法编写程序,由于AT89C51不具有I2C硬件接口,所以必须通过程序来模拟I2C通信,对E2PROM进行读、写操作。 主要程序为: 键盘输入控制程序。 显示输出控制程序。 报警控制程序。 密码校验程序。 发声程序。 模拟I2C通信等控制程序。 11.6.1 主程序流程图 11.6.2 模拟I2C通信程序的读、写流程图,11.6.1 主程序流程图,主程序流程图如图11.6所示。,11.6.2 模拟I2C通信程序的读、写流程图,11.7 总 结,对于E2PROM AT24C02读、写,它分为现行地址、随机地址、顺序读3种读操作,写分为字节写和
9、页面写。此程序采用随机地址读和字节写,原理图中有一个I2C式样的器件,它是用来观察和调试I2C系统的一个虚拟仪器,功能十分强大,通过它可以观察对E2PROM的读、写时的数据及地址。 在Proteus仿真环境下,由于I2C器件暂不支持添加.BIN文件密码(调试多次发现),因此: (1)在Proteus中仿真调试时,当需要改变设置密码时,在Keil软件中,请打开程序I2CSY.ASM,编辑输入想设置的密码,然后保存编译。再回到Proteus仿真环境下,在图中单片机上单击右键添加程序I2CSY.ASM,单击“运行”按钮,单片机向E2PROM写入6位密码数据,并且读取显示修改的密码。然后停止仿真进行下
10、面步骤。 (2)在Proteus中添加程序DZ-LOCK.ASM,单击“运行”按钮进行调试,通过按钮输入新的密码,单片机校验正确则点亮LED灯,否则输入错误次数达3次时报警。 反复进行调试步骤(1)、(2),观察I2C工作原理。 程序DZ-LOCK.ASM也可以完成密码设置功能,但必须输入原来正确的密码,单击OK按钮确认,输出指示LED灯点亮,然后再输入新的密码,单击SET按钮即可设置密码。,11.8 上 机 指 导,仿真环境:Proteus 7.1/6.9SP5、Keil 750。 11.8.1 电路原理图绘制步骤 11.8.2 仿真步骤 11.8.3 调试说明,11.8.1 电路原理图绘制
11、步骤,Proteus包括:ISIS智能原理图输入系统,系统设计与仿真的基本平台。 ARES 高级PCB布线编辑软件,如图11.8所示。 本节只讲Proteus ISIS智能原理图输入系统,以及系统设计与仿真的基本平台的使用和设置。 (1)元件选取:打开Peotrus软件,单击查找元件P按钮,输入器件型号89C51、AT24C02等,双击该元件,再继续输入其他元件型号选取元件,然后关闭该窗口。 (2)元件布局:单击右键选取,按“”可以旋转元件,移动到适合的地方排列好。 (3)绘制连线:把鼠标移动到元件引脚,单击该引脚,然后移动到其他元件引脚,双击该引脚,完成连线,并保存。 (4)绘制完原理图后,
12、进行电气规则检查,单击 按钮确认没有错误后,则完成电路原理图的绘制。,图11.8 仿真环境,11.8.2 仿真步骤,Proteus 7.1与Keil 750联调,前提是两个软件都安装好了,并且安装了联机程序,则可以进行联合调试,否则无法进行这个实验,下面分别说明两个软件的设置步骤。 1Keil的设置 2Proteus的设置 打开Proteus设计好的电路如“电子密码锁”,单击Debug菜单,选择Use Remote Debug Moniter命令,如图11.17所示,完成Proteus的设置。 3开始仿真,1Keil的设置,打开Keil软件(图11.10),选择ProjectNew Proje
13、ct命令新建工程,输入工程名字,如DZ_lock,注意必须是英文,然后单击“保存”按钮。 然后在弹出的对话框中,如图11.11所示,选择CPU,这里选AT89C51,然后单击“确定”按钮。 接着在弹出的对话框中单击“否”按钮,完成了工程的建立,如图11.12所示,下面开 始进行设置。 在Keil 工程浏览框中单击右键添加程序,选择DZ-Lock.asm文件,单击Add按钮添加,然后关闭,如图11.13所示。 回到Keil编辑环境,编译该程序,确认没有错误后,再进行通信的设置。在Keil工程 浏览框中右击,如图11.14所示,右击Target1,在弹出的快捷菜单中选择OPtions for Ta
14、rget Target 1命令。 选择Debug选项卡,弹出该选项卡,单击Settings按钮,如图11.15所示。 如图11.16所示,设置Host:127.0.0.1,Prot:8000,然后单击OK按钮确认,完成Keil的设置。,图11.10 执行ProjectNew Project命令,图11.11 选择CPU,图11.12,图11.13 选择工程文件,图11.14 选择目标,图11.15 Debug选项卡,图11.16 设置主机和端口,图11.17 选择菜单命令,3开始仿真,回到Keil软件界面,单击调试按钮,出现如图11.18所示的试控制界面,从左至右依次为复位、全速、停止、单步执
15、行等,单击相应按钮,就可以进行全速、单步、断点运行进行仿真,然后回到Proteus软件界面中,就可以看到交互试运行现象和结果了。 至此完成两个软件的联合调试步骤,下面讲述Proteus的单独调试。 在Proteus软件中,打开设计好的电路,右键单击选中单片机,然后单击左键弹出图11.19所示的对话框,单击文件图标添加十六进制的.hex文件或者二进制.bin后缀名的文件,单击OK按钮确认。 回到Proteus仿真环境中,单击如图11.20所示的仿真按钮,可以全速、单步运行进行调试,单击暂停按钮可以查看单片机的寄存器、PC、RAM、I/O等情况,注意看现象和 结果。,图11.18 Keil调试控制界面,图11.19 添加文件,图11.20 仿真按钮,11.8.3 调试说明,(1)输入正确密码,单击OK按钮确认,输出指示灯LED点亮,按ESC键则熄灭,当密码错误次数达3次时,蜂鸣器发出错误报警。 (2)设置密码步骤:输入原来的正确密码,单击OK按钮确认,输出指示灯LED点亮,再输入新的密码,单击SET按钮即可设置。 (3)直接单击CALL按钮可以用门铃呼叫。,