单片机的电子密码锁设计

人们对电子密码锁并不陌生,因为它在生活中是一种很常见的物品。密码锁中有的是简易的电路产品,但应用较广的则是以芯片为核心,通过编程来实现的性价比较高的产品。单片机是一种应用广泛的芯片,它的I/O端口丰富,编程设计灵活,不仅具有较快的运算速度、较强的控制能力和较低的功耗,而且体积和质量小,价格还不贵。因此,本设计方案就是以STC89C52RC单片机为核心的。本设计要求实现的密码锁功能有:数码管显示功能 、开锁功能 、.密码更改功能 、.重输及重设密码功能、键盘锁定与报警功能、关闭密码锁功能和密码存储功能。硬件方面,本设计使用郭天祥的TX-1C的单片机实验板。 软件方面,使用C语言编程,并且使用 Keil uVision 软件对程序进行调试。调试成功后,使用单片机下载软件STC_ISP,将程序下载到实验板上,验证密码锁功能的实现效果。 M000224
关键词:电子密码锁  单片机  Keil uVision  STC_ISP
People are familiar with electronic password locks ,because it is a very common item in our lives. Simple circuit product is an example. However, Cost-effective product is widely used, because it has chip as the core and realizes function through programming. Single chip microcomputer is a kind of widely used chip. Its I/O port is rich , programming is flexible , operation is fast , control function is strong , power consumption is low, weight is light, volume is small and price is low. Therefore, this design scheme is centered with STC89C52RC SCM to realize the combination of the following basic functions: digital tube display function, open lock function, password change function, retry and reset of password function, keyboard lock and alarm function, close lock function and password storage function. In the aspect of hardware, this design uses Guo Tianxiang TX - 1C SCM experiment board. In the aspect of software, it uses the C language for programming and the Keil uVision software to debug program. After debugging successfully, It uses the single-chip microcomputer download software STC_ISP to download the program to experiment board, then verify the realization of password lock function.
Key Words: Electronic password lock; Single chip microcomputer; Keil uVision; STC_ISP
目录 查看完整请+Q:351916072获取
1.绪论………………………………………………………………………………1
2.系统总体设计方案………………………………………………………………1
3.硬件分析…………………………………………………………………………4
3.1芯片介绍……………………………………………………………………………………4
3.1.1 STC89C52RC单片机……………………………………………………………………4
3.1.2 I2C总线AT24C02芯片…………………………………………………………………7
3.2 电路分析…………………………………………………………………………………9
3.2.1键盘输入电路…………………………………………………………………………9
3.2.2数码管显示电路……………………………………………………………………10
3.2.3开锁电路……………………………………………………………………………11
3.2.4 蜂鸣器发声电路……………………………………………………………………12
3.2.5密码存储电路………………………………………………………………………12
4.软件设计………………………………………………………………………13
4.1 主函数…………………………………………………………………………………13
4.2 键盘检测程序…………………………………………………………………………14
4.2.1键盘检测流程图…………………………………………………………………14
4.2.2关键语句分析……………………………………………………………………15
4.3 数码管显示程序………………………………………………………………………16
4.3.1数码管显示控制流程图…………………………………………………………16
4.3.2 共阴极数码管编码………………………………………………………………17
4.4 输密码执行程序…………………………………………………………………………18
4.5 密码验证程序…………………………………………………………………………19
4.6定时器中断服务程序…………………………………………………………………20
4.6.1 定时器中断服务流程图…………………………………………………………20
4.6.2 定时器初值的计算………………………………………………………………21
4.7 AT24C02读写程序……………………………………………………………………22
4.7.1 AT24C02读写程序流程图………………………………………………………22
4.7.2 地址控制字格式…………………………………………………………………23
5.程序编译与下载……………………………………………………………23
5.1 程序编译………………………………………………………………………………23
5.2 程序下载………………………………………………………………………………24
6.总结……………………………………………………………………………26
参考文献…………………………………………………………………………27
致谢………………………………………………………………………………28
1.绪论
俗话说的好:安全第一。这个安全除了人生安全,还有财产安全。要保护我们的财产安全,我们就不得不想到锁。密码锁作为一种很常见的锁,经常被用在保险箱上。我们在市场上就可以看到很多类别的密码锁,除了常见的电子类的和机械类的,有的还能遥控,有的需要刷卡,有的需要指纹认证。其中,电子密码锁因为具有良好的保密性、密码修改方便、使用起来快捷、开锁只需输入0—9数字等优点而被广泛应用于日常生活中。它的种类很多,有简易的电路产品,但应用较广的则是以芯片为核心,通过编程来实现的性价比较高的产品。[1-3]单片机是一种应用广泛的芯片,具有较快的运算速度和较低的功耗,它的质量和体积小,价格还不贵 [4]。而且,单片机是我所学的电子类专业经常接触的一种芯片。因此,本设计课题对我来说非常有研究价值。
该毕业设计课题,以我之前所学的单片机相关知识和C语言知识为基础,并且加以拓展。课题与生产实际相结合,具有较高的实用价值。通过不断学习,不断研究,培养自己学习新知识、解决问题的能力,从而具备使用单片机完成电子及相关技术系统设计的能力。以此作为对我在本科阶段学习的评估。
本文在第二章的系统总体设计方案中将对我设计的密码锁的功能做详细的介绍,包括数码管显示功能 、密码验证开锁功能 、密码更改功能 、重试及重设密码功能、键盘锁定与报警功能、关闭密码锁功能和密码存储功能。除了功能的介绍,还会涉及硬件和软件选取的说明。第三章将先对本设计使用的STC89C52RC单片机和AT24C02芯片做个简单介绍,再附上各模块的电路连接图,并且加以分析。第四章主要是对编程方面的介绍,包括一些流程图和关键程序的分析。第五章主要介绍编译软件Keil uVision C51和下载软件STC_ISP使用方法以及一些注意事项。第六章则是我对这次毕业设计的总结。
2、系统总体方案设计
本设计的控制方案是以STC89C52RC为核心的。从用户的实际需要出发,秉着操作简单且保密性好的原则,本设计中要求实现以下基本的密码锁功能。[5-8]
(1)数码管显示功能
在逐位输入验证密码时,考虑到密码可能会泄露,要求在LED数码管上依次显示“-”号;如果6位密码输入的是正确的,数码管就会显示“OPEN”;如果6位密码输入的是错误的,数码管就会显示“ERROR”。如果连续三次输错,数码管上前三位就会显示“ERR”,最后两位显示30秒倒计时。
按下“重设密码”键后,数码管显示六个“.”,表示等待新密码的输入。每输一位密码,该位数码管原本显示的“.”被所重设的数字密码代替,数码管依次显示新设密码。数字密码支持数字0~9。
(2)密码验证开锁功能
本毕业设计用一列发光二极管的亮灭模拟锁的开闭状态。整列发光二极管点亮,代表锁被打开;发光二极管不亮,代表锁处于关闭状态。只有验证密码输入正确,锁才会被打开。
(3)密码更改功能
只有在锁打开的时候才能执行此功能。更改密码前需要按功能键“更改密码”,输完新密码则需要按功能键“确定更改密码”。出于对实际的考量,重设密码需要二次确认,也就是说两次输入同一新密码才可以完成密码的更改操作。
(4)重输/重设密码功能
当输错验证密码时按下功能键“重输/重设”,就会清除数码管上显示的数据,以便重新输入;当重设密码未完成时,也可按此键清除数码管上显示的数据,重新输入新密码。
(5)键盘锁定与报警功能
如果验证密码连续三次输入都是错误的,那么输密码的人的身份就可疑。为了安全起见,键盘锁定30秒,并且在这期间蜂鸣器发出报警提醒。
(6)关闭密码锁功能
当想要关闭密码锁的时候,按下功能键“关闭密码锁”,密码锁就会关闭。此时,整列发光二极管自动熄灭,数码管上也不显示任何内容。
(7)密码存储功能
密码锁记忆下最新设定的密码,不会因为掉电的缘故,使新设密码丢失。
为了完成以上设计方案,硬件方面除了使用AT89C52RC单片机,还使用郭天祥的TX-1C的单片机实验板。实验板上配置的的四行四列矩阵键盘当做密码锁的数字按键和功能按键,从而用于密码的输入和一些功能的控制;上面的六位数码管可以当做密码锁的显示器件,用来显示一些提示信息;发光二极管的亮灭可以模拟锁的开闭状态;蜂鸣器可以提供按键音和报警音;AT24C02芯片可以用来存储密码,防止掉电密码丢失。单片机内部的定时/计数器可以作为键盘锁定期间的计时工具。整个密码锁的系统电路框图见图2.1。

图2.1 密码锁系统电路框图
TX-1C实验板上配置的四行四列矩阵键盘的16个按键上分别标注着S6~S21。本设计总共使用的是14个按键,分别作为0~9九个数字键和四个功能键。出于对操作的方便与按键布局美观的考虑,本设计选择最后一行按键作为四个功能键。对键盘上16个按键的具体分配见表2.1。
表2.1 数字键和功能键分配表
软件方面,使用C语言编程,并且使用 Keil uVision 软件对程序进行编译和调试.调试成功后,使用单片机下载软件STC_ISP,将程序下载到实验板上,验证密码锁功能的实现效果。查看完整请+Q:351916072获取

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/2441.html

好棒文