基于pic单片机的电子密码锁设计 外文文献翻译

上传人:第*** 文档编号:33558723 上传时间:2018-02-15 格式:DOC 页数:8 大小:976.50KB
返回 下载 相关 举报
基于pic单片机的电子密码锁设计 外文文献翻译_第1页
第1页 / 共8页
基于pic单片机的电子密码锁设计 外文文献翻译_第2页
第2页 / 共8页
基于pic单片机的电子密码锁设计 外文文献翻译_第3页
第3页 / 共8页
基于pic单片机的电子密码锁设计 外文文献翻译_第4页
第4页 / 共8页
基于pic单片机的电子密码锁设计 外文文献翻译_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于pic单片机的电子密码锁设计 外文文献翻译》由会员分享,可在线阅读,更多相关《基于pic单片机的电子密码锁设计 外文文献翻译(8页珍藏版)》请在金锄头文库上搜索。

1、基于 PIC 16F628A 的安全电子锁微控制器0基于 PIC 16F628A 的安全电子锁微控制器Kerbala Iraq 大学计算机系讲师Muhanad Hayder Mohammedmuhanad.hayderuokerbala.edu.iq摘要:论文:提出的系统实现了电子嵌入式锁比传统锁拥有的一个很好的优势,它只使用一个手动键。如果传统的情况下,钥匙丢失或被盗之后任何人都可以打开锁使用钥匙。另一方面,丢失一个比较长而且复杂的密码或把它偷来的难度比传统的钥匙要难的多。此外,两者的结合,手动键和电脑密码使系统更安全。更长的密码将减少密码丢失和锁被破坏的可能性。这个系统由键盘和 HD447

2、80 20x2 和 PIC16f628a 单片机。固件控制系统与键盘交互非常容易和顺利。液晶为用户提供消息和通知有关当前系统的状态。用户可以执行一些操作,如打开和关闭锁,在单片机 EEPROM 中改变当前的密码,当输入密码错误时清除单个数字。论文提出系统的固件开发使用汇编语言和 MPLAB 开发环境。只在实际硬件级别测试,实现与系统的正常运行,这是完全错误的关键词:电子锁、嵌入式系统、PIC 单片机。 介绍今天,在我们生活的周围充满嵌入式系统设备,如汽车、洗衣机微波炉、医疗设备等。嵌入式系统是一个计算机系统,为特定的控制功能而设计,通常受实时计算约束。嵌入式系统作为一个完整的设备通常包括硬件和

3、机械零件。相比之下,一台通用计算机,例如个人电脑(PC),设计灵活能满足各种终端用户的需要。今天,嵌入式系统被用来控制许多常用的设备1 。嵌入式系统的一个突出的例子是微控制器,它是一个小型和微型计算机,指定执行一些特定的任务。单片机程序(固件),决定什么功能单片机提供给所需求的用户。一个程序,可以在单片机上运行,而不需要一个被称为固件的操作系统。这意味着,一个固件直接访问硬件的特权。本文试图详细解释电子锁固件。单片机的基本思想是在一个简单的电路中收集所有的输入和输出,外围设备,代表了只需要单片机而不是大型和复杂的计算机微处理器和大量的外设1。基于 PIC 16F628A 的安全电子锁微控制器1

4、单片机固件直接处理外围设备和输入/输出端口以实现其完整功能。 微处理器和微控制器微处理器与微控制器在许多方面不同。第一和最重要的方面是它的架构。为了一个微处理器功能的正常运行,其他组件,如内存、外设和输入输出端口必须连接到它。简而言之,我们可以说,一个微处理器是计算机的核心,它的工作原理与其他外围设备/部件的计算机系统。另一方面,一个微控制器被设计成由作为一个单元可以独立执行。不需要其他外部组件的应用程序,因为所有必要的外围设备和端口已经内置。最终,它节省了所需的时间和空间构造设备2。 系统实现该系统是使用汇编语言实现。使用这种语言的目的是为了实现更好地功能,对PIC 体系结构的理解。使用汇编

5、语言的另一个积极的方面是,它给了非常广泛和灵活的方式与微控制器进行交互,尽管它的实现比 BASIC 或 C 语言困难,其也用作语言编程微控制器。系统实现的主要有两部分:A. 键盘实现系统使用的 PORTB 键盘通过 4 针为列,其余 4 针行保留实现。因此,系统使用这些 8 针构成 16 键矩阵,PIC16F628A 中提供一个有效的使用有限的端口。下面是表格(1)PORTB 针作业键盘。表 1:PORTB 针作业键盘RB4(列 0) RB5(列 1) RB6(列 2) RB7(列 3)RB0(行 0) 1 2 3 A=空格RB1(行 1) 4 5 6 B=锁定RB2(行 2) 7 8 9 C

6、=修改RB3(行 3) * 0 # D=输入实现键盘功能时有一个必须采取的重要的预防措施,因为键盘处理依赖于一个机械过程( 按下和释放键) 。这一现象生成一个火花,影响销的电气性能,同时按下和释放键,导致销状态不稳定,不能正确识别是否为 0 或 1。所以,为了克服这个问题,必须提供足够的时间延迟销的状态是稳定的,才可以正确读取,这一时间可能是 20ms 或更多。基于 PIC 16F628A 的安全电子锁微控制器21. 键盘的扫描键盘的设计是受电现象,即,如果我们短路两针,一个零,另一个高电压,那么销电压将下降到零。这个事实可以用于设计键盘。如前所述,PORTB 被预留给键盘和最重要的 4 位用

7、于列索引,它们设置为输入端口(输入端口,我们必须设置 TRISB 寄存器高3)来检查他们是否有电压降至 0 时按下键后附有选中的行。另一方面,最重要的 4 位 PORTB 将输出,和用于行索引。因为他们是输出端口,可以设置为高(1) 或低(0) 的固件。通过设置为每个键扫描每一行到零,系统可以检查每一列,以查看是否有任何其中一个设置为 0。如果是这样的话,这就意味着,一个关键的排压。这个过程是对所有行重复检查所有的钥匙。负责扫描的功能键是 row_scan 和col_scan。1.1 行扫描这个函数设置为零,每一行调用 col_scan 函数来检查任何列针电压降为零。然后增量的关键变量作业是索

8、引每一行。1.2 列扫描这个函数扫描每一列销,检查如果任何其中一个设置为零,那么调用 find_key 函数,发现键值把指数构造使用变量键和硬编码的值从工作寄存器 w 调出 col_scan 函数。图(1) 显示键盘连接到结构 PIC 16 f628a 单片机和液晶。图 1 单片机与键盘连接B. LCD 的实现基于 PIC 16F628A 的安全电子锁微控制器3另一个系统实现的主要部分是液晶实现。LCD 配置有 4 位接口模式,因为PIC16F628A 端口限制。发送命令 0 x20,然后 0 x28 将配置液晶在 4 位两行接口工作模式4 ,这意味着 20 x2 液晶使用的系统最大可以显示

9、40 个字符。send_word 函数功能的实现是在 4 位液晶接口模式发送一个词。执行以下步骤send_word 函数发送一个词的 4 位接口模式4 :1 设置 E 线低。2 为发送数据,设置 RS 行高,或为发送一个命令设置为低。3 设置 E 线高。4 设置最重要的四个比特为 DB4 到 DB7。5 设置 E 线低。6 设置 E 线高。7 设置四个最低有效位为 DB4 到 DB7。8 设置 E 线低,E 线应该是比较低的,直到时钟在另一个字节。 操作系统当系统启动时,它直接进入到主循环。在其整个操作时间中,只有两个部分之间的互换。第一部分不断扫描输入键,其他部分 PORTB 处于睡眠状态,

10、因为 PORTB 配置将使系统在节电模式。这节省了电池和提高了系统的操作性能,由于单片机不需要执行连续不断的的指令,即使没有人与系统交互。系统从睡眠醒来的状态,按任何键,改变 PORTB 的状态。PIC 16 f628a 用了PORTB 产权所有 PROTB 针3。当系统处于锁定状态,用户试图打开锁,用户必须输入十个数字,必须符合存储在 eepm 十位数。下图提示用户输入密码:基于 PIC 16F628A 的安全电子锁微控制器4图 2 消息提示用户输入密码然后用户输入限制在 10 位数的密码,可以结合特殊字符*和#使密码更复杂。下面是图显示用户输入的密码系统(液晶数字显示为*但是在这里向读者清

11、晰显示)。图 3 用户输入密码打开锁输入密码后,用户需要按 Enter 按钮。然后 verify_password 会调用这个函数以验证如果输入密码是类似于一个存储在 eepm。如果两个密码是相同的,那么锁将打开和消息在 LCD 上显示“ 验证成功 ”。下面的步骤 verify_password 函数,将比较两个数组,如果他们有相同的值。直接访问内存用于比较2。1 初始化计算值 10。2 使 FSR 指向第一个数组的起始地址。3 存储位置,FSR 的值指向的变量名 data1(第一个数组 )。4 增量 FSR 并在 save1 变量中保存它的值。5 测试如果函数在循环的第一步。6 如果是 FS

12、R 上指向第二个数组的起始地址,转到步骤 8。7 如果没有,将变量 save2 的值赋予 FSR。8 存储位置,FSR 的值指向的变量名 data2(第二个数组 )。9 增量 FSR 并在 save2 中保存它的值。10 把 save1 的值放在 FSR。11 如果 data1 等于 data2 然后:递减计数。计数等于零转到步骤 13。基于 PIC 16F628A 的安全电子锁微控制器5否则将转到步骤 3。12 其他去的循环和分配是错误的。13 返回并分配标记。下一个功能是 ReadEEPROM,用于从数组 eepm 文件读取存储的密码,进一步重置用户输入的密码。以下是 ReadEEPROM

13、 执行的步骤:1 初始化计算值 10。2 eepm 的开始地址分配给特定的指针。3 使 FSR 指向数组的起始地址,它将包含 eepm 的值。4 增量 FSR。5 从 eepm 阅读值的一个位置,把它写在数组中。6 增量的指针指向 eepm。7 递减计数。如果等于零,这意味着 eepm 密码已经完全阅读然后返回。否则,转到步骤 4。另一个重要功能是 WriteEEPROM 函数,当用户想要改变密码,它将新密码写入eepm。写 eepm 是至关重要的操作,不应出现意外 3,因为结果将是永久性的,除非我们重写 eepm 的同一位置。出于这个原因,两个值 AAh 和 55 h 必须写入 EECON2

14、 注册,一个接一个地确保程序给 eepm 写入。以下是 WriteEEPROM 函数执行的步骤1 初始化计算值 10。2 eepm 的开始地址分配给特定的指针。3 使 FRS 指向数组的起始地址,必须存储在 eepm 中4 增量 FRS。5 读值数组来取得临时变量的一个位置。6 向 EECON2 写 0。7 向 EECON2 写 0 x55 。8 写 eepm 的临时变量。9 增量的指针指向 eepm。基于 PIC 16F628A 的安全电子锁微控制器610 减量计算如果等于零,这意味着所有密码完成写 eepm 和返回的位置,否则转到步骤 4系统有蜂鸣器代表一个警报,当用户输入一个密码错误三次

15、,蜂鸣器会发出声响。当出现安全漏洞,这个针可以配置依赖切换高功率报警。论文提出系统非常简单,很少涉及到的组件,因为所有的固件中实现的功能是安装在 PIC 单片机。图 4 中,我们展示了完整的系统硬件组件。图 4 中,完成系统的硬件组件从图中可以很明显看出,只有少数电子元件参与该系统的工作。这确实是一个伟大的事情,使用嵌入式系统,使硬件架构非常简单,但是复杂性在于最终要根据软件和硬件的相互配合。 结论编程 4 位液晶界面模式非常有效,发送一个字节的延迟两个步骤并不明显,另一个问题是使用 PORTB 往上拉,这证明是有利于系统的,因为它将在无限循环系统在睡眠模式下在等待按键。所以当没有与系统的交互

16、时,它节省了电池功率和提高系统的功能。因此没有浪费 CPU 周期。基于 PIC 16F628A 的安全电子锁微控制器7系统使用真实的硬件组件的实现后,有一个我所遇到的技术困难,本文想强调是键盘的实现。通过尽可能多的研究,列设置为读取输入,检查他们的状态就知道哪个键被按下,行输出,可以通过固件设置为 1 或 0(5、6)。这种方法并没有在这里实现,因为如果 4 针同时设置为输入,这部分将会受到影响,当其中之一是改变扫描读取,按键导致不准确的关键。找到的解决方案是每个端口列设置为输入,然后每次输出我们检查列状态。在这种情况下,只有一个针将设置为输入一次和其他输出而不会受到改变。这给了我们一个精确和光滑的键盘操作。系统是完整的、合理的,并且进行了一些改进和操作测试,可以被认为是一个成功的产品,可以运往市场。 引用1 Verle 米兰“PIC 微控制器”,mikroElektronika;第 1 版,2008 年.2 Nebojsa, Matic,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号