logo资料库

用24C04与1602LCD设计电子密码锁课程设计.doc

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
3.矩阵键盘电路的设计
5.液晶显示电路
十.系统软件设计
1.系统主程序
2. 初始化及按键识别
3 .开锁处理
4.改密处理
5. 液晶显示子程序
一、题目:可改密的六位电子密码锁 二、摘要: 单片机技术是智能化检测与控制领域应用非常普及并且 具有很大潜力的技术。论文阐述一个基于单片机的液晶显示电子密码 锁的设计与实现。系统采用美国 Atmel 公司的 AT89S52 单片机作为 系统核心,液晶显示器 LCD1602 作为输出设备显示系统提示信息, 4*4 矩阵薄膜键盘作为输入设备,配合蜂鸣器、继电器等电路构成整 个系统硬件;系统软件采用汇编语言编写。设计的系统液晶显示,密 码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办 公用锁需求,具有一定的实用价值 三、任务和要求:1 要求电子密码锁设计 (1)熟悉电路,理解各个元件之间的控制流程。(2)熟悉 PROTEUS 平台的运行环境。 (3)熟练掌握汇编语言,矩阵式键盘的实时控制 操作。 (4)理解电子密码锁的工作原理。 2 任务 (1)确定 4×4 键盘控制识别方案。 (2)分析电子密码锁的流程。 (3)画出程序流程图。 (4)分析电路图。 (5)编写代码。 (6) 程序分析与调试。 四、设计思路: 该电路是一种采用以 AT89C51 为核心的单片机控制方 案。利用单片机灵活的编程设计和丰富的 IO 端口,及其控制的准确性,不但能 实现基本的密码锁功能,还要根据实际需要添加调电存储、声光提示甚至增加遥 控控制功能。 五、方案的确立: 为了实现密码的保密性,采用一个 4×4 的矩阵式键盘可以任意设置用户密码(1-16 位长度),从而提高了密
码的保密性。 设计采用一个超级密码,送电开机时,只要输入超级密码便可开 门,这样可预防停电后再送电时无密码可用。 采用了 1602 液晶显示器来作为显示单元,提高了可读性,使用 户对密码锁的运行情况一目了然。 六、总体设计方框图: 键盘输入 模块 密码存储模块 蜂鸣器报警电路 复位电路 晶振电路 LCD 显示模块 8 9 C 5 1 开锁电路 图2.1 系统结构框图 七、各模块的功能: 1.键盘输入模块:分为密码输入按键与几个功能按键,用 于完成密码锁输入功能。 2.密码存储模块:用于完成掉电存储功能,使修改的密码 断电后仍能保存。 3.蜂鸣器报警电路:用于完成输错密码时候的警报功能。 4.晶振电路:用于单片机的起振。 5.复位电路:完成系统的复位。 6.显示模块:用于完成对系统状态显示及操作提示功能。 7. LED 显示模块:用于辅助报警与输入提示。
8.开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁 提示。 八、设计原理分析: 本系统外围电路包括键盘输入部分、密码存储部分、复位部分、 显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选 择 4×4 矩阵键盘,显示部分选择字符型液晶显示 LCD1602,密码存 储部分选用内部存储器来完成。其原理图如下: 九、单片机及其外围电路: 1.复位电路:
2.时钟电路:时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程 都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶 振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所 示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶 振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一 般在几十皮法, C 1 C 2 XTAL1 Y1 XTAL2 3.矩阵键盘电路的设计 为了加强密码的保密性,采用一个 4×4 的矩阵式键盘可以任意设置用户密码 (1-16 位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占 用的 I/O 口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采 用这种方法。
每一行与每一列的交叉处不相同,而是通过一个按键来连通,利 用这种行列式矩阵结构只需要 N 根行线与 M 根列线,即可组成具有 N × M 个按键的矩阵键盘。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先 执行等待按键并确认有无按键按下的程序段。 当确认有按键按下后,下一步就是要识别哪一个按键被按下。对 键的识别方法通常有两种:一种是通用的组行扫描查询法;另一种是 速度较快的线反转法。 此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下, 在单片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。具体 方法是:向行线输出全扫描字 00H,把全部列线置成低电平,然后将 列线的电平状态读入累加器 A 中。如果有按键被按下,总会有一根 行线电瓶被拉至低电平从而使行线不全为 1。 判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平 后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后 检查所有行线状态,如果全为 1,则所按下的按键不在此列;如果不 全为 1,则所按下的按键必在此列,而且是在与零电平行线相交的交 点上的那个按键。
4.操作面板 10 个数字键用来输入密码,另外 6 个功能键分别是:更正、改 密、锁定。其中更正键的功能是当输入密码错误的时候,清除前面已 经输入的数据,重新输入。在输入密码状态下,0-9 数字键为有效键, 有时间和次数限制功能:只有三次输入密码机会,每次限制在 10 秒 内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错 误。当 3 次输入都错误时,程序将返回起始状态。密码输入正确后, 继电器吸合,表示锁被打开。在密码输入正确的情况下,程序进入查 看密码和修改密码状态,。按“改密”键进入重新设置密码状态,在 输入密码时,如发现输入有误,可按“更正”键删除后,重新输入, 按“锁定”确认后,程序退出修改密码状态。 5.液晶显示电路 本系统设计的显示电路是为了给使用者以提示而设置的为了达 到界面友好的目的,显示部分由液晶显示器 LCD1602 取代普通的数 码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键 0-9 输入密码,每按下一个数字键后在显示器上显示一个*,输入多 少位就显示多少个*。当密码输入完成时,如果输入的密码正确的话, LCD 显示“OK”,绿灯亮起,单片机其中 P3.0 引脚会输出低电平, 使三极管 T2 导通,电磁铁吸合,继电器开关跳转,电子密码锁被打 开,如果密码不正确,LCD 显示屏会显示“ERROR”,P3.0 输出的 是高电平,电子密码锁不能打开,同时红灯亮起。通过 LCD 显示屏, 可以清楚地判断出密码锁所处的状态。
图3.7 显示器电路 显示器主要用于显示以下几个字符,指示如图所示。 P A S S W O R D 图3.8(a) 开机状态 等待输入状态 KO 密码输入正确状态 E R R O R 密码输入错误及输入密码超时的提示
十.系统软件设计 系统的软件设计采用汇编语言编码。设计方法是先用文本编辑器编写 源码,然后用软件 Keil C51 编译,如果没有错误,可连接生成.HEX 格式的文件(需事先在 Keil C51 中设置)。如果有错误则无法连接,但 可在生成的.OBJ 文件中找到代码错误的地方,便于修改。当然也可 以直接在 Keil 中编码。生成的 HEX 文件是记录文本行的 ASCII 文本 文件,在 HEX 文件中,每一行是一个 HEX 记录,由十六进制数组成 的机器码或者数据常量。HEX 文件经常被用于将程序或数据传输存 储到 ROM、EPROM,大多数编程器和模拟器使用 HEX 文件。 1.系统主程序 系统的主程序如图 4-1 所示。由于用户在使用系统的过程中,可能在任何时 刻按下任何按键,而程序都必须对此作出正确响应。 主程序流程图
分享到:
收藏