密码锁-单片机课程设计
51单片机四位密码锁课程设计

51单片机四位密码锁课程设计51单片机四位密码锁是一种常见的电子锁,它使用51单片机作为控制核心,通过输入四位密码来控制锁的开关。
本文将介绍关于51单片机四位密码锁的课程设计。
我们需要明确设计的目标和要求。
本设计的主要目标是实现一个四位密码锁系统,并且需要满足以下要求:1.能够输入四位数字密码。
2.密码输入正确时,能够解锁并输出解锁信号。
3.密码输入错误时,不能解锁。
4.能够重置密码。
接下来,我们将详细介绍设计的步骤和实现。
1.硬件设计:在硬件设计方面,我们需要准备以下器件:- 51单片机-数码管显示模块-按键模块-继电器模块-电源模块2.软件设计:在软件设计方面,我们需要编写51单片机的程序,通过编程实现密码锁的功能。
以下是设计的主要步骤:-初始化:设置输入输出引脚,并初始化时钟和数码管显示。
-输入密码:设计密码输入的函数,通过按键模块获取用户输入的密码。
-检验密码:设计密码检验的函数,将用户输入的密码与预设的密码进行比对。
-解锁信号:如果密码输入正确,输出解锁信号,通过继电器控制开关,实现解锁。
-密码错误:如果密码输入错误,通过数码管显示密码错误的提示信息。
-重置密码:设计密码重置的函数,将新设置的密码保存。
3.程序流程:根据以上设计的步骤,我们可以得到以下主要的程序流程:-初始化引脚和时钟。
-设置初始密码。
-进入主程序循环。
-接收用户输入的密码。
-检验密码是否正确。
-如果密码正确,显示解锁信号并控制继电器解锁。
-如果密码错误,显示密码错误信息。
-进入下一次循环。
4.调试和测试:完成程序编写后,我们需要进行调试和测试。
在测试过程中,我们需要输入正确和错误的密码进行验证,检查程序是否能够正常运行,并且能够正确判断和处理用户输入的情况。
5.优化改进:如果在测试中发现问题或不足之处,我们可以对程序进行优化和改进。
例如,可以增加密码输入的最大尝试次数,增加延时等待时间,增加密码保护等功能。
总结:通过对51单片机四位密码锁的课程设计,我们学习了如何使用51单片机编写程序,实现密码锁的功能。
单片机课程设计 电子密码锁

第1章设计目的1.利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。
2.我们这次的课程设计是以单片机为基础,设计出一个具有一定功能的电子密码锁。
3.掌握一些重要芯片的功能特性及使用方法,并能运用其组合成一个简单的单片机机应用系统。
4.锻炼同学们的动手能力和独立思考的能力,巩固理论知识,加深对课堂内容的理解。
5.培养同学们对单片机的兴趣,通过课程设计调动同学们的积极性,使更多的人将来能在单片机领域有所建树。
第2章设计要求及总体思路2.1设计要求1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密“12345”共5位密码。
2、密码的输入:采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键。
在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。
然后进入密码的判断比较处理状态并给出相应的处理过程。
3、按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。
2.2 总体思路系统总体设计方案框图如下:图2-1一般而言,要实现相同的功能,硬件复杂的系统其软件一般较简单,而软件复杂的系统其硬件一般相对简单,本着经济性的原则,我们应该尽可能少用硬件,根据这个设计理念和设计要求,本单片机系统的设计思路如下:1)电子密码锁所用的数据的存储和运算用单片机来完。
2)因为没有专用的输入键盘,所以按键输入用计算器输入键盘代替。
按键密码从P3口输入。
3)用六位显示器显示五位密码,显示器选择动态扫描,用P0口作段控,用P2口作位控。
4)开锁信号从P1.1口输出,报警信号从P1.0口输出。
5) 按键分为功能键和数字键,具体如表2-1。
6)输入五位密码后按确认键,系统验证密码是否正确,若密码正确,则产生开锁信号,若接连三次输入错误密码,则产生报警信号。
7) 当错误输入某位密码时,可按删除键进行删除,也可按清零键对所输入的数进行整体清除。
密码锁-课程设计

《单片机原理与应用》课程设计报告基于单片机的密码锁的设计院系:专业(班级):姓名:学号:指导教师:职称:完成日期:《单片机原理与应用》课程设计任务书院(系):专业:指导教师:目录1 课题设计 (1)1.1 课题背景 (1)1.2 课题设计目标 (1)2系统方案论证 (2)2.1 主控部分的选择 (2)2.2 密码输入方式的选择 (2)3 系统总体设计和主要芯片介绍 (3)3.1 系统总体设计 (3)3.2 主要芯片介绍 (3)4 系统硬件构成 (10)4.1 系统整体电路图 (10)4.2 单片机最小系统原理图 (10)4.3 电源输入部分 (11)4.4 键盘输入部分 (12)4.5 密码存储部分 (12)4.6 显示部分 (13)4.7 报警部分 (14)5软件的设计与实现 (14)5.1 设计原理 (15)5.2 主程序流程图 (15)6 结论 (16)[参考文献] (17)7 附录 (18)1课题设计随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
1.1 课题背景由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
1.2 课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能;5. 完成实际实物的焊接;2系统方案论证系统从主控部分和密码输入方式两方面进行论证2.1 主控部分的选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。
单片机密码锁课程设计

目录1 引言 (1)2主要元器件介绍 (2)2.1主控芯片AT89S51 (2)2.1.1 AT89S51性能简介 (2)2.1.2 AT89S51引脚功能说明 (3)2.2 LCD1602显示器 (5)2.2.1接口信号说明 (5)2.2.2主要技术参数 (5)2.2.3 1602基本操作步骤 (5)3系统硬件 (7)3.1设计原理 (7)3.2电路总体构成 (7)3.3键盘输入部分 (8)3.4 LCD1602显示 (8)4系统软件设计 (10)4.1主程序模块 (10)4.2按键功能模块 (11)4.3修改密码模块 (13)4.4开锁模块 (14)参考文献 (16)附录 (17)1引言锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。
由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。
单片机课程设计——数字密码锁

课程设计课程名称:单片机原理与应用课题名称:数字密码锁设计所在学院名称:湖南大学电气与信息工程学院目录一、前言..................................... - 3 -二、总体方案设计.............................. - 3 -2.1方案论证与比较 ................................................................. - 3 -2.2方案选择............................................................................. - 4 -三、单元模块设计.............................. - 4 -3.1硬件支持............................................................................. - 4 -3.2功能单元模块设计.............................................................. - 4 -3.2.1 开锁机构 .................................................................. - 4 -3.2.2 矩阵键盘设计电路 ................................................... - 5 -3.2.3 声音提示电路设计 ................................................... - 6 -3.2.4 显示模块设计........................................................... - 7 -四、程序设计与系统仿真.......................... - 8 -4.1 模块介绍............................................................................ - 8 -4.1.1 主程序模块............................................................. - 10 -4.1.2 密码比较判断模块 ................................................. - 10 -4.1.3 键盘扫描模块......................................................... - 10 -4.1.4 修改密码模块......................................................... - 11 -五、系统功能 .................................. - 13 - 六.设计总结 .................................. - 13 - 七、附录:源程序............................... - 13 -一、 前言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
基于AT89S51单片机的电子密码锁的课程设计

基于单片机的电子密码锁设计学生姓名学号专业班级系别指导教师职称课题名称基于单片机的电子密码锁设计1课题设计的目的和意义1.1课题设计的目的通过完成基于单片机的电子密码锁系统设计,将机电一体化专业相关的理论融会贯通,掌握单片机控制系统的软件、硬件设计方法和基本的调试步骤等,学习系统工程设计方法,学会分析、解决简单的工程实际问题,为今后从事专业相关的设计、研发等方方面的工作打下一定基础。
1.2课题设计的意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。
电子密码锁是由电子电路控制锁体的新型锁具,它采用触摸键盘方式输入开锁密码,操作方便。
触摸式电子锁的输入部分采用触摸开关(键盘输入),其优势在于传统的机械开关之出在于其保密性高,使用灵活性好,安全系数高,无活动零件,不会磨损,寿命长等受到了广大用户的亲呢。
出于安全、方便等方面的需要许多电子密码锁已相继问世。
但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。
而且卡片式IC卡还有易丢失等特点,加上其成本一般较高,一定程度上限制了这类产品的普及和推广。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。
针对平常锁具给人们带来的不便,若使用机械式钥匙开锁,则结构简单,安全性不好。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生,电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
它的出现为人们的生活带来了很大的方便,有很广阔的市场前景,相信随着社会的进一步发展,它的方便,安全,实用,小巧,精致的特点会越来越得到人们的喜爱,是人们居家旅行必备之品。
单片机课程设计——可改密码的电子密码锁设计

百度文库- 让每个人平等地提升自我目录课程设计(论文)任务书 (1)可改密码电子密码锁设计报告 (1)第一章概述 (2)第二章系统整体方案设计 (2)第三章硬件电路设计 (3)键盘电路设计 (3)显示电路 (4)开锁电路 (6)报警电路 (6)密码掉电保留电路 (6)第四章软件设计 (8)软件设计思路 (8)程序设计流程图 (9)程序设计 (10)第五章系统调试 (10)3、开锁状态: (10)第六章心得体会 (12)致谢 (13)参考文献: (13)课程设计(论文)任务书设计题目:可改密码电子密码锁设计任务:以89C52单片机为核心,制作一个能够更改6位密码的模拟电子密码锁。
设计要求:密码位数为6位。
显示利用1602液晶显示。
更改的密码支持断电保留。
支持持续输入三次错误密码报警。
密码输入状态动态显示。
别离利用两个发光二极管表示输入正确和错误密码。
可改密码电子密码锁设计报告摘要本文介绍基于MCS-51单片机的可更改密码的电子密码锁设计,并支持掉电保留密码,程序利用了C语言编写。
关键词单片机电子密码锁改变Abstract:This article describes the MCS-51 microcontroller based on the password change the design of electronic locks, and to support power-down save the password, the program uses the C language.Key word: MCU Electronic code lock Change第一章概述密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
此刻应用较广的数字密码锁是以芯片为核心,通过编程来实现的。
单片机密码课程设计

单片机密码课程设计一、课程目标知识目标:1. 理解单片机的基本原理和功能,掌握密码锁的基本工作原理;2. 学会使用C语言或汇编语言进行单片机编程,实现对密码锁的控制;3. 掌握单片机密码锁系统的硬件连接和调试方法。
技能目标:1. 能够运用所学的单片机知识,设计并实现一个简单的密码锁系统;2. 培养学生动手实践能力,学会使用相关工具和仪器进行硬件调试;3. 提高学生的问题分析和解决能力,能够在遇到问题时进行有效排查和修改。
情感态度价值观目标:1. 培养学生对单片机及嵌入式系统的兴趣,激发学生学习主动性和创新精神;2. 培养学生的团队协作意识,学会与他人共同分析和解决问题;3. 增强学生的自信心,让他们在实际操作中体验成功,形成积极的学习态度。
分析课程性质、学生特点和教学要求,本课程旨在通过单片机密码锁的设计与实现,使学生掌握单片机基本知识和技能,培养实际操作能力,提高解决实际问题的能力。
课程目标具体明确,可衡量,便于后续教学设计和评估。
通过本课程的学习,学生将能够独立完成一个简单的单片机密码锁项目,为今后的学习和工作打下坚实基础。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理和性能特点,涉及课本第二章内容。
- 单片机内部结构- 工作原理和指令系统- 性能参数与选型2. 单片机编程语言:学习C语言或汇编语言编程,针对单片机密码锁项目进行编程实践,涉及课本第三章内容。
- 编程语法基础- 单片机编程技巧- 编程实例解析3. 硬件设计:介绍单片机密码锁硬件设计,包括原理图绘制、元器件选型、电路板设计等,涉及课本第四章内容。
- 原理图绘制方法- 元器件选型原则- 电路板设计技巧4. 系统编程与调试:学习单片机密码锁系统的编程与调试方法,包括程序下载、硬件调试等,涉及课本第五章内容。
- 程序下载与烧录- 硬件调试方法- 故障排查与解决5. 项目实践:根据教学进度,安排学生进行单片机密码锁项目实践,将所学知识应用于实际项目中,巩固所学内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 绪论随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。
电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。
本次设计使用AT89S52单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。
2 设计任务、功能要求说明及总体方案介绍2.1 设计目的与任务本设计采用AT89S52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD 1602A等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统。
2.2 设计内容及要求(1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。
(2)其密码为方8位十进制代码(代码自设定)。
(3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。
当开锁密码与存储密码不一致时,电路则报警并实现自锁。
(报警动作为响1分钟,停10秒)(4)选择电路方案,完成对确定方案电路的设计。
计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。
安装调试设计电路,查阅至少5篇参考文献。
按《湖南工学院课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
2.3 设计总体方案及工作原理说明采用以单片机AT89S52为核心的控制方案,总体框图见图1。
单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用。
一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O 端口,以及控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接加以3×4矩阵键盘、LED、蜂鸣器等。
矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入。
系统开始显示“INPUT PASSWORD:”,提示输入密码;当密码输入完毕按下Enter键时,若输入密码与设定的密码相同,即密码正确,液晶屏显示为“Mission Success!”提示锁打开,同时LED绿灯亮;若密码不正确,LED显示电路显示提示“Forgot Password?”,LED红灯亮,发出警报声同时锁定键盘,不能进行任何操作。
投在输入过程中发现输入错误的数字,可通过重新输入AC键清除所有数字。
图1 系统设计框图如图1所示,系统主要由电源(由三角电源口、六角开关、红色LED灯、电阻组成),3×4键盘(键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入),复位电路,LED灯(密码输入错误时亮红灯,密码输入正确时亮绿灯),蜂鸣器(输入密码时,输入一位响一次,密码输入错误时有报警功能),以及液晶显示电路(显示功能)组成。
3 系统硬件设计3.1 硬件系统各模块功能简要介绍3.1.1 复位以及振荡电路如图2所示,即为AT89S52复位和振荡电路结构。
图2 系统的复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。
本设计晶振选择频率为12MHZ,电容选择33pF。
经计算得单片机工作胡机器周期为:12×(1÷12M)=1us。
3.1.2 3×4矩阵键盘如图3所示,本系统采用3×4矩阵键盘,12个按键分为输入数字键:0、1、2、3、4、5、6、7、8、9;功能键:确认输入Enter、重新输入AC。
键盘与单片机相连接,其连接方式为前三行分别P1.0—1.3连接;后四行分别与PP1.5—1.8连接分别控制;图3 系统的键盘电路3.1.3 报警蜂鸣器报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P35引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警其电路如图4所示:图4 系统的报警电路3.1.4 液晶显示电路为了使该电子锁能人性化的显示输入密码的状态以及密码输入正确与否,添加了液晶显示放弃了数码管显示。
本次设计使用的是LCD 1602A液晶显示器,采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个1K的电阻调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光电源正极第16脚:背光电源负极LCD 1602A自带英文字库,各引脚分别接入P2.0口,其接入电路如图5所示:图5 系统的液晶显示电路3.2 电路原理图、PCB图、元器件布局图设计电路原理图、PCB图、元器件布局图分别见附录A、附录B、附录C。
3.3 硬件实物图实物图见附录D。
3.4 元器件清单元器件清单见附录E。
4 软件系统的设计4.1 软件设计所用到的单片机资源情况P0口作为显示输出,P2口作为键盘输入,用到外部中断0即P3.2脚,P1.2脚和P1.3脚分别与开锁电路与报警电路相连,P1.5、P1.6、P1.7分别于液晶显示器的E、RW、RS脚相连。
4.2 软件系统的模块功能如图6所示为系统的主程序流程图,图7所示为开锁流程图。
图6 主程序流程图主程序清单:void main() /*主程序*/{uint i; /*预置初始化*/P30=1;/*开启数据/命令*/P31=0; /*禁止读写*/P35=0; /*关闭报警*/P36=0; /*关闭开锁*/write_com(0X38); /*设置数据总线为8位,分2行显示*/ del(5);write_com(0X01); /*显示器清零,光标归位*/del(5);write_com(0X0f); /*打开显示功能*/del(5);write_com(0X06); /*每写入一个数据光标右移*/del(5);write_com(0X80+0X00); /*写入字符码,使显示器显示相应字符*/del(5);for(i=0;i<15;i++){write_dat(table[i]); /*显示器输出内容*/del(10);}write_com(0Xc0);del(5);while(1){if(ky_press()) /*如果有键按下*/{ky_scan(); /*键盘扫描*/}}}uchar ky_press() /*检查是否有按键按下*/{ P1=0Xf0; /*按键口初始化*/if((P1&0xf0)!=0xf0) /* 若有键按下*/del(1); /* 延时去抖动*/if((P1&0xf0)!=0Xf0){return 1; } /* 有键按下,返回值为1*/ else{return 0;} /* 无键按下,返回值为0*/}void ky_scan() /*确认所按按键的具体位置*/ { uchar ky,i=0X7F,j;del(10);if(ky_press()); /* 如果有键按下*/{do{i=(i<<1)|(i>>7); /* 行列扫描*/P1=i; /* 输出扫描码*/ky=P1;j=ky&0XF0;}while(j==0XF0); /*有键按下*/图7 开锁流程图开锁程序清单:void jiaodui(){ uchar i=0,j=0;while(password[i]==new[i]) /*密码比较*/{ i++; /*i自加1*/if(i==8) break;}if(i==8) /*如果密码全部正确*/{ P36=1; /*开锁*/write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/del(5); /*调用延时程序*/for(i=0;i<17;i++){write_dat(table2[i]); /*显示器显示Mission Success! */ del(20);}}else if(i<8) /*密码错误*/{ P35=1; /*报警*/write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/del(5);for(i=0;i<17;i++){write_dat(table3[i]); /*显示密码错误*/del(20);}while(1);}else if(j!=3){ k=0;write_com(0X80+0X40); /*锁定键盘*/}}4.3 软件系统程序清单软件系统程序清单见附录F。
5 设计结论、仿真结果、误差分析、教学建议5.1 设计结论及使用说明本程序从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52作为主控芯片,结合外围的键盘输入、显示、报警、开锁等电路并用C语言编写主控芯片的控制程序,研制了一款可以多用户使用可多次更改密码具有报警功能的电子密码锁。