基于单片机的数字密码锁设计大学学位论文.doc

上传人:教**** 文档编号:93040120 上传时间:2023-06-22 格式:DOC 页数:28 大小:2.70MB
返回 下载 相关 举报
基于单片机的数字密码锁设计大学学位论文.doc_第1页
第1页 / 共28页
基于单片机的数字密码锁设计大学学位论文.doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《基于单片机的数字密码锁设计大学学位论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的数字密码锁设计大学学位论文.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 陕西理工学院毕业设计 毕业设计论文题目 基于单片机的数字密码锁设计 学生姓名 李苏喜 学 号 1110064055 所在院系 物理与电信工程学院 专 业 电子信息科学与技术 班 级 电信1102 指导教师 周平和 2015年6月 陕西理工学院毕业设计基于单片机的数字密码锁李苏喜(陕西理工学院物电学院电子信息科学与技术专业1103班级,陕西 汉中 723000)指导教师:周平和摘要伴随我们生活水平的提高,电子数字密码锁慢慢取代了普通的锁具,电子密码锁在安全性能上比普通锁具更好,普通的机械锁其机构非常的简单,从而在安全性能方面得不到保障,电子密码锁使得我们在安全保障方面更有自信,并且电子密码锁还

2、有不用钥匙、无锁孔、无机械传动、不易损坏、不磨损等优点,很多用户都想简单出门,电子密码锁就能满足他们。本次设计的系统由单片机系统、矩阵键盘、显示电路和报警提示系统组成,系统能完成开锁、密码保护、密码正确与否的提示。单片机是采用的美国Atmel公司的单片机AT89C52;矩阵键盘采用44矩阵键盘;显示电路主要是采用液晶显示,具有设计简单、工作电压低、响应速度快、价格低廉等特点;报警系统采用的是LED指示灯。设计采用C语言作为主片控制程序,因其具有方法合理、简单易行、成本低、实用等特点。关键词AT89S51单片机;LCD1602;电子密码锁;44矩阵键盘The No. three soft lan

3、ding trajectory design and control strategyLi Suxi(Grade11, Class1102, Electronic Information Science and Technology, School of Physics and Telecommunication Engineering, Shaanxi University of Technology, Hanzhong 723000, Shaanxi)Tutor: Zhou Pinghe Abstract:With the improvement of our living standar

4、ds, the electronic digital lock slowly replaces the ordinary mechanical lock, the electronic password lock is better than the ordinary mechanical lock on the safety factor, the institution of ordinary mechanical lock is very simple, so that it can not guarantee the safety, and electronic lock makes

5、us more confidence on safety, and the electronic lock has an advantage that without a key, keyhole, mechanical transmission, which is difficult to damage, wearing, and can not easily be deciphered, Many users want to go out simple, the electronic lock can meet their needs. The system consists of MCU

6、 system, matrix keyboard, the showing of circuit and alarm system components. password-protected and the showing of password whether it is correct or not. The design uses the C language as the main chips control procedures, which is proved that the design of rational design method is simple, safe an

7、d practical. Key words:MCU AT89S51; LCD1602; Electronic lock; 4x4 Matrix keyboard目录引言11数字密码锁功能要求12总体方案12.1方案选择22.2方案实现22.3方案结构框图23硬件电路的设计33.1单片机及单片机最小系统33.2键盘电路53.2.1键盘接口53.2.2键盘的识别方式63.2.3按键去抖动63.2.444行列式键盘电路63.3LCD1602显示电路63.3.1LCD1602的介绍63.3.2LCD1602显示的外围电路83.4报警提示电路83.5电源输入及电源指示电路94软件设计104.1软件设计

8、思路104.2软件设计的流程图105系统调试125.1基于单片机的数字密码锁硬件调试135.2基于单片机数字密码锁的软件调试135.3基于单片机数字密码锁的总体调试135.3.1Proteus仿真调试135.3.2软硬联合调试146结论与展望14致谢14参考文献15附录A16附录B23附录C24引言在我们日常的生活和工作中,安全防盗已成为社会不可避免的问题。现在的用户都追求具有简洁方便、高安全,易操作等特点的安全锁。因此电子数字密码锁是我们生活中不可少的一部分了,数字密码锁的发展标志着我们生活水平的提高。随着社会经济的日益增长和人们生活水平的提高,安全成为当下人们最关心的问题之一。而锁自古以来

9、就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,以及承受钥匙丢失后的麻烦和风险。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等因素人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也

10、是一个国家生活水平的一种表现。数字密码锁是通过密码输入来控制电路,从而控制机械的闭合,完成开锁和关锁的基本操作的电子产品,它的种类比较多,而此次设计就是基于单片机控制的数字密码锁,它的设计以单片机为核心,通过编程来实现,它负责获取处理用户输入的密码,将其和正确的预置密码比较,产生相应的输出,其性能得到了改善。基于单片机控制的数字密码锁与普通机械锁相比,其具有保密性好、密码可变、寿命长,不用钥匙、无锁孔、无机械传动、不易损坏、不磨损、不易被破译等优点,数字密码锁是利用数字密码来开启的锁具,其重复概率仅为十万分之一,具有很高的安全性;而普通机械锁使用却相对不够安全,通过对社会各阶层千余人的调查,百

11、分之百的人都愿意一身轻松没有任何顾虑的出入家门,都愿意用上一种锁具可使人摆脱钥匙的束缚。因此,设计数字密码锁的市场发展前景极为广阔。1 数字密码锁功能要求本次设计的数字密码锁有密码的输入、有密码的修改功能,并且密码是八位,在输入密码的过程中有显示提示,让用户更好的操作密码锁,而在密码输入正确与否(锁的开否)也需要显示提示,此次设计的时候没有把机械部分设计出来,因此引用了红绿灯的显示(报警提示),来代表机械部分的,即表示锁的开闭状态。此次设计实现功能要求如下:1) 加电后,液晶显示英文“Enter Password!”来欢迎用户。2) 输入密码时,逐位显示“*”,此次设计的密码为八位,因此为“*

12、”,以防止泄露密码,这样让用户用的放心。3) 输入密码过程中,如果不小心出现了输入错误,可按“复位”键清除屏幕,取消此次输入,再次输入需要重新输入所有密码。4) 当密码输入完毕时,单片机将输入的密码与设定的密码比较,若密码正确,则绿色发光二极管亮(表示密码锁打开),并且显示屏上也有所提示“Password is right!”蜂鸣器报警一秒;若密码不正确,显示屏上同样显示“Password is wrong!”,并且有密码输入错误时,报警三秒,用户可以重新输入,但是一次性有三次输入密码的机会,若是一次性输入了三次错误密码,则报警五秒钟,期间用户就不能再输入密码了,只能等到复位后再重新输入。5)

13、 此次设计的数字密码锁密码可以修改,当输入正确的密码后,你可以根据自己的需要对已设的密码进行修改,修改成功后,有两秒提示音。6) 此次设计的数字密码锁的初始密码为八位密码“11111111”。2 总体方案2.1 方案选择设计本次毕业设计之前构思了两种方案:一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案;另一种是用以单片机为核心的电子密码锁。第一种方案应用数字电子技术的编、译码技术,并通过按键实现密码的设置、修改及识别功能,在设计的时候考虑到第一种方案需用到较多集成芯片,电路焊接起来很复杂;密码采用脉冲输入法,故对输入脉冲有很高要求,而且密码输入及修改过程也比较繁杂。而第二种方案

14、是采用集成芯片单片机还有其他集成芯片来控制整个电路,灵活准确性好且保密性强还具有扩展功能,并且焊接起来很简单,因此采用了后一种方案,即单片机控制的数字密码锁设计。2.2 方案实现此次设计的基于单片机的数字密码锁,它主要由单片机、矩阵键盘、液晶显示和报警提示等部分组成。单片机作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能,其原理图如图2.1所示。矩阵键盘用于输入数字密码和进行各种功能的实现,主要有数字输入按键、确认按键、密码修改按键等,用户可以通过连接单片机的矩阵键盘输入密码,液晶显示屏提示一些输入,让用户更方便的操作电子密码锁锁,当你输

15、入的密码位数达到所需要输入的密码位数后,单片机对用户输入的密码与自己内部设置保存的密码进行对比,从而判断密码是否正确,液晶显示屏提示你输入的密码是否错误,然后控制其他引脚的高低电平送到报警提示电路控制报警提示(红绿发光二极管显示),表示锁的开或者闭合,而在实际使用时只要将单片机的负载换成电子密码锁的电磁铁吸合线圈即可。密码输入单片机控制修改密码密码处理锁开是否图2.1 单片机控制密码锁的原理图2.3 方案结构框图基于单片机控制的数字密码锁结总构框图如图2.2所示,框图由电源输入,晶振电路,单片机控制系统,键盘电路,显示电路,报警提示电路构成。电源为单片机控制器和其他芯片提供工作电源,此次设计的

16、时候引用直流电源,但在实际应用到生活中去的时候需要通过交流电源转变为直流电源(降压、整流、滤波等过程),并且需要加个备用电源,防止停电或者其他故障而造成无法供电的时候的备用电源。单片机控制系统包括晶振电路和复位电路。 单片机电源输入键盘电路报警指示开锁电路晶振电路显示电路图2.2 基于单片机控制的数字密码锁总结构框图3 硬件电路的设计3.1 单片机及单片机最小系统单片机选用常用的Atmel公司的51系列单片机AT89C52。AT89C52是Atmel公司生产的低电压、高性能CMOS8位单片机,AT89C52采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定,单片机AT89C52

17、引脚如图3.1所示。图3.1 单片机AT89C52引脚 P0口是双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载;P1口是8位准双向I/O口,可驱动4个LS型TTL负载;P2口是8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载;P3口是8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载,并且P3口具有特殊功能。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的

18、缘故。P1口有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型IO口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不须作为A/D使用的口可继续作为IO口使用。 在FLASH编程和校验时,P1口作为第八位地址接收;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储

19、器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P

20、3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR (外部数据存储器写选通)P3.7 RD (外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号;RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器

21、时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1:反向振荡放大器的输入及内

22、部时钟工作电路的输入;XTAL2:来自反向振荡器的输出;EA/VPP(31引脚):“EA”为英文“External Access”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。单片机最小系统如图3.2所示,其中由复位电路和晶振震荡电路组成。复位电路:单片机上电时,当振荡器正在运行时,只要持续给出RST引脚两个机器周期的高电平,便可完成系统复位。外部复位电路是为内部复位电路提供两个机器周期以上的高电平而设计的。其中复位电路通常有上电

23、自动复位和按钮复位两种模式,本次采用的是按键手动复位并是电平复位方式,其中电平复位时通过RST端经电阻与电源VCC接通而实现的,电源VCC取+5V,复位电路的电阻取的10k,电容取的10uF。晶振振荡电路:XTAL1脚和XTAL2脚分别构成片内振荡器的反相放大器的输入端和输出端,外接石英晶体或陶瓷振荡器以及补偿电容C1、C2构成并联振荡电路。当外界石英晶体时,电容C1、C2选30pF10pF;当外接陶瓷振荡器时,电容C1、C2选47pF10pF.AT89C52系统中晶振可在024MHz选择。外接电容C1、C2的大小会影响振荡器的高低、振荡频率的稳定度、起振时间及温度稳定性。在设计电路板时晶振和

24、电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠的工作,并且在系统设计中,为保证串行通信波特率的误差,选择11.0592MHz的标准石英晶振,电容应C1、C2应选择20pF。此次设计采用的是12MHz的晶振。单片机最小系统如图3.2所示,其中由复位电路和晶振震荡电路组成。图3.2 单片机最小系统图3.2 键盘电路3.2.1 键盘接口常用的键盘接口分为独立键盘和行列式键盘两种。独立键盘就是按键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。在按键数目较多的时候,独立式键盘电路需要较多的输入口线且电路结构繁杂,此种键盘适用于按键较少或操作速度较高

25、的场合。行列式(也称矩阵式)键盘用于按键数目较多的场合,它由行线和列线组成的按键电路,其按键位于行、列的交叉点上,如图3.3所示,一个44的行、列式结构可以构成1个16个键的键盘,很明显节省了很多的I/O口线。矩阵式键盘的扫描原理主要是分为两个步骤:首先是确定是否有键闭合,然后逐一扫描以步确定哪一键闭合。图3.3键盘电路3.2.2 键盘的识别方式键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键按下(闭合键)以及被按键的位置,可使用这种方法:扫描法(常用)。扫描法就是首先是判定有没有键被按下,键盘的行线一端经上拉电阻接+5V电源,另一端接单片机的输入口线。各列线的一端接单片机

26、的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态中有低电平,则表示有键被按下。然后再判定被按键的位置。3.2.3 按键去抖动当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实际上就是一个机械开关结构,被按下时,由于机械接触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图3.4所示。抖动时间长短与键的机械特性有关,一般为510ms。而键的稳定的闭合时间和操作者按键动作有关,大约为十分之几到几秒不等。键按下前沿抖动后沿抖动x = 0x = 0x = 0x = 0x = 0x = 0x = 0x =

27、 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0x = 0图3.4键闭合和断开时的电压抖动3.2.4 44行列式键盘电路此次设计为44行列式键盘,由16个按键组成的行列式键盘,主要作为用户输入数字密码及确认、取消、修改等功能键,此次设计按键扫描方法采用的是扫描法。44行列式键盘电路如图4.4所示,把芯片AT89C52中的P1.0P1.3端口用4个10K的上拉电阻连接到44行列式键盘的行线上,把芯片AT89C52中的P1.4P1.7端口直接连接44行列式键盘的列线。(上拉电阻的作用,就是把电位拉高,比如拉到VCC。一般就是刚上电的时候,端口电压不稳定,为了让端口稳定为高

28、,就会用到上拉电阻。)3.3 LCD1602显示电路3.3.1 LCD1602的介绍LCD1602是一种专门用来显示字母、数字、符号等的点阵型的液晶模块,它由若干个57或者511等点阵字符位组成,每个点阵字符都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602是指显示的内容为162,可以显示两行,每行16个字符的液晶模块,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,此次设计引用LCD1602,是因为它具有微功耗、体积小、显示内

29、容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。LCD1602的引脚如图3-6所示,LCD1602有16个引脚。图3.5 LCD1602的引脚LCD1602的引脚介绍:第1引脚为:VSS为电源地 第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7

30、为8位双向数据端。第1516脚:空脚或背光电源脚。15脚背光正极,16脚背光负极。LCD1602的基本操作时序为:读状态:RS=L,RW=H,E=H 输出:D0D7=状态字写指令:RS=L,RW= L,D0D7=指令码,E=高脉冲 输出:无读数据:RS= H,RW=H,E=H 输出:D0D7=数据写数据:RS= H,RW= L,D0D7=数据,E=高脉冲 输出:无LCD1602的显示模式设置如表3.1所示:表3.1显示模式设置指令码功能00111000设置1602*2显示,5*7点阵,8位数据口。LCD1602的显示开/关机光标设置如表3.2所示:表3.2 开关机光标设置指令码功能00001D

31、CBD=1 开显示,D=0 关显示;C=1 显示光标,C=0 不显示光标;B=1 光标闪烁,B=0 光标不显示。000001NSN=1 当读或写一个字符后地址指针加一,且光标加一;N=0当读或写一个字符后地址指针减一,且光标减一;S=1 当写一个字符,整屏显示左移(N=1)。3.3.2 LCD1602显示的外围电路LCD1602显示电路由单片机C52的P2.5、P2.6、P2.7分别于LCD的第4、5、6脚(RS、RW、E)相连,将单片机C52的P0.0P0.7口通过10K的上拉电阻分别与LCD的第714脚(D0D7)相连来组成数字密码锁的显示电路。LCD1602显示电路如图4.2所示。图3.

32、6 LCD1602显示电路3.4 报警提示电路LED指示灯用来提示模拟锁的开闭,此次设计采用了红、绿两个LED指示灯,红灯表示输入密码正确告警(及数字密码锁开锁),绿灯表示输入密码错误,锁未打开。报警提示电路如图3.7所示,P3.0、P3.1作普通I/O口使用,P3.0控制绿色发光二极管,指示密码输入正确状态;P3.1控制红色发光二极管,指示密码输入错误状态。而在实际应用中应该接密码锁的机械部分,这些引脚将会接继电器线圈,只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合

33、用来启动密码锁的开或关的状态,此次设计用红绿指示灯来代替了机械部分,设计简化了。其电路图如图3.7所示。图3.7 报警电路3.5 电源输入及电源指示电路基于单片机控制的数字密码锁的工作需要+5V的电压作为输入电压,家用电一般都是采用220V、50Hz的交流电,因此需要将交流电转换成直流电,先通过一个整流电路,使交流电压变成直流电压。为了保证其输出的电压是+5V,在后面接一个稳压电路,由一个7805稳压器,其中电容C1起滤波作用,电容C3是抑制高平信号。电容C2,C4直接接地,起到抗干扰的作用,能使电压稳定在+5V。有了电源模块避免了因没有直流电源而无法使用的问题,使这个仪表能够在更多的环境中使

34、用。电源部分如图3.8所示。图3.8 电源电路图此次设计的数字密码锁就引用了电源指示模块,虽然这个模块很简单,但确实也是电路中不可少的一部分,当电源通电后,黄色发光二极管就亮表示电路有电源输入,让用户更能方便的清楚密码锁是否通电,如没有电通入,数字密码锁无法工作,需要及时更换电源,以保证数字密码锁的正常工作。4 软件设计4.1 软件设计思路对于基于单片机的数字密码锁的设计,我们需要解决三个问题:键盘的输入、液晶显示、单片机电路以及密码比较与处理的有关程序设计。键盘的输入通过行列键盘扫描程序获取所按键的行、列号,而键值编码规则如下:将字节的高四位(D7、D6、D5、D4)表示列号(4、3、2、1

35、),低四位(D3、D2、D1、D0)表示行号(4、3、2、1),比如11H(00010001)表示第1行第1列,21H(00100001)表示第1行第2列,以此类推,可得其他键值的编码。LCD1602显示,根据获取的键值编码,选择相应的功能,驱动LCD1602显示。在LCD接受指令前,微处理器必须先确认其内部处于非忙碌状态,则LCD的(D7到D0)的D7位为0,方可接受新的指令。如果在发送一个指令时前没有检查D7标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即等待前一个指令确实执行完成。液晶显示的操作主要由初始化程序、写命令和写数据程序等组成。而单片机电路以及密码比较处理程序则为

36、主程序了,主要是处理键盘输入程序和调用显示程序。4.2 软件设计的流程图结合硬件结构,可以将键盘输入的识别用来作为系统的监控程序,用显示程序来延时,不断查询键盘。如果有键按下,就得到相应的键值。结合当前系统所处的状态,调用不同的操作模块,实现相应的功能。而执行模块主要有数字输入模块、显示模块及报警提示模块。键盘部分应实现如下功能:首先,对键盘进行扫描,判断是否有键被按下。如果没有,则转回键盘扫描,看下次是否有键被按下;如果有键被按下,则先对键进行去抖动,然后算出是哪个键被按下,再延时等待键释放。因为数字键和功能键都对应不同的处理子程序,得到闭合键的键码后,就可以根据键码,转相应的键处理子程序,

37、进行字符、数据的输入或命令的处理。这样就可以实现该键所设定的功能。本次设计的键盘处理程序流程图,如图4.1所示。显示流程图如图4.2所示,显示部分是分屏显示数据的,因此显示子程序为关闭状态显示子程序、密码输入及密码修改状态显示子程序、密码输入后错误提示程序。密码在规定的时间内输入的错误次数超过3次的锁定状态显示子程序。LCD1602显示程序包括初始化子程序、写数据子程序、写命令子程序、清屏子程序、光标定位子程序。报警提示部分主要是对输入密码的错误(锁未开)和正确(锁开)以及修改密码的提示,这个和显示程序保持一致。主程序是首先进行整个程序的初始化及清屏,调用显示程序,读取键盘程序,当有按键按下时

38、,程序判断是哪个键被按下,然后执行相应的按键功能,并调用显示程序中的显示功能,当没有键按下时,返回键盘扫描,再判断是否有键被按下,当输入的密码达到了八位,将会与单片机内设置好的密码进行比较,密码正确锁开,并报警提示电路启动,密码错误,可以有三次输入密码的机会。本次设计的主程序结构流程图,如图4.3所示。是否否x = 0x = 0.4x = 0x = 0.4x = 0.8x = 0.846x =1H / m46x =1H / m2q / L462q / Lh-1h-12q / L462q / Lh-1h-1x = 0x = 0.4x = 0x = 0.4x = 0.8x = 0.846x =1H / m46x =1H / m2q / L462q / Lh-1h-12q / L462q / Lh-1h-1键扫描开始去抖动键码计算

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁