如何用单片机制作电子密码锁电路

电子密码锁按照输入密码方式的不同可分为好多种,其中最常用的一种是用数字键盘输入密码的电子密码锁。这一讲主要介绍用ATmega8和LCD1602液晶显示器等组成的电子密码锁,这个电子密码锁能够由用户自行修改密码,掉电后密码不丢失。通过实验和学习使大家掌握电子密码锁的工作原理和ATmega8中EEPROM存储器的使用方法。

  一,EEPROM数据存储器简介ATmega8的存储器由可分别独立寻址的程序存储器Flash、片内数据存储器SRAM和EEPROM三部分组成。

  ATmega8包含512字节的EEPROM数据存储器,可用于保存系统的设定参数、掉电后数据保存等。EEPROM可以按字节为单位进行读写,至少可进行100000次擦写操作。EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。

  在程序中EEPROM的访问是通过I/O空间的寄存器来实现的,EEPROM的编程时间典型值为8.5ms。

  为了防止无意的EEPROM写入,必须遵照规范的写入顺序。当读取EEPROM时,单片机将暂停4个时钟周期再执行下一条指令;当写EEPROM时,单片机将暂停2个时钟周期再执行下一条指令。

  下面介绍与EEPROM相关的几个寄存器。

  1.EEPROM地址寄存器

  EEARH、EEARL因为ATmega8有512(2的9次方)字节的EEPROM,所以要用两个8位寄存器来作地址寄存器,编址为0x0000~0x01FF。地址寄存器EEAR可读可写,EEAR的初始值没有定义,在访问EEPROM之前必须写入一个正确的地址值。

  如何用单片机制作电子密码锁电路

  EEAR的定义见下表。

  2.EEPROM数据寄存器

  EEDR数据寄存器EEDR用来存放即将写入EEPROM或者从EEPROM读出的某个单元的数据,写入或读出的地址由地址寄存器EEAR给出。EEDR的初始值为0x00。

  如何用单片机制作电子密码锁电路

  3.EEPROM控制寄存器EECREECR的定义见下表。

  EERIE位为EEPROM中断准备好使能位,当EERIE置位而且SREG寄存器中的全局中断位I置位时,若EEWE为0,则单片机产生一个中断。

  EEMWE位为EEPROM主机写入使能位,EEMWE决定了EEWE置位是否可以启动EEPROM写操作。当EEMWE为置位时,在4个时钟周期内EEWE置位将把数据写入EEPROM的指定地址;若EEMWE为0,则操作EEWE不起作用。EEMWE置位后4个周期,硬件对其清零。

  EEWE位为EEPROM写使能位,当EEPROM数据和地址设置好之后,需置位EEWE以便将数据写入EEPROM。此时EEMWE必须置位,否则EEPROM写操作将不会发生。写时序如下:

  (1)等待EEWE位变为零。

  (2)将新的EEPROM地址写入EEAR(可选)。

  (3)将新的EEPROM数据写入EEDR(可选)。

  (4)置位EEMWE。

  (5)在置位EEMWE的4个周期内,置位EEWE。

  EERE位为EEPROM读使能位,当EEPROM地址设置好之后,需置位EERE以便将数据读入EEDR。

  EEPROM数据的读取只需要一条指令。读取EEPROM后CPU要停止4个时钟周期才可以执行下一条指令。

  如何用单片机制作电子密码锁电路

  二、电子密码锁实验

  1.实验电路

  电子密码锁主要由单片机ATmega8、液晶显示器LCD1602和电磁铁锁芯等部分组成。实验板上与电子密码锁有关的电路部分见下图。图中SB1、SB2、SB3为输入按键,用于输入数字密码。VD6、R7、VT4等组成电磁铁驱动电路,由ATmega8的PD7脚进行控制,实际使用时只要将VT4的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。

  2.程序设计

  程序有主函数、初始化函数、LCD显示函数、键盘扫描函数、密码设置函数、EEPROM读写函数和延时函数等部分组成。

  程序中共使用了6个数组,其中数组Datal[]用来存储按键值,它存储在SRAM数据存储区,用来记录输入的。

  按键值。其中数组a[]用来存储密码值,为了防止密码值掉电丢失,a[]存储在EEPROM数据存储区,a[]的初始值为a[]={0,0,0,0,0,0,0,0,0,0,0,0},即初始密码为000000000000。

  实验板上的SB1、SB2两个按钮作数字输入键,SB1输入数字0,SB2输人数字1。SB3为确认键。由于只有两个数字输入按钮,因此密码只能采用二进制数,密码长度为12位。输入的12位密码存储在数组Datal口中,按一下确认键SB3后,程序将数组Datal口的各元素和数组a[]的对应元素进行比较,如果两个数组相等,说明密码正确,LCD显示屏显示:RIGHT,PD7输出高电平,由VT4推动电磁铁吸合打开电子密码锁;反之,如果密码错误,LCD显示屏显示:ERROR,打不开电子密码锁。输入密码时输入几个数字LCD显示屏就显示几个·号。<<容~源~电~子~网~版权声明:本站内容部分来源于网络,如侵犯到你的权利请及时与我们联系更正,联系QQ:316520686。

本文地址:http://www.dziuu.com/dz/22/15502206593162.shtml

  • 如何用单片机制作电子密码锁电路已关闭评论
    A+
发布日期:2019年07月13日  所属分类:参考设计