




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江西现代职业技术学院 毕业设计(论文)题目:密码锁系统设计姓 名 吴翔 学 院 信息工程学院 专 业 电气自动化 班 级 08电气自动化 指导 教师 刘建春 提交 时间 年 月 日 论文题目:浅析网络安全技术姓名:吴翔 班级:08电气自动化 指导老师:刘建春摘要:随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。为了更好地推广单片机在家电领域中的应用,该设计介绍了一种基于p89c51单片机设计的电子密码锁。经设计验证该密码锁具有安全、实用、成本低等优点,符合住宅用锁的要求,可作为产品进行开发。 该设计提出的是一种能防止多次试探密码的基于单片机的密码锁设计方案
2、,根据用户的总体要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了器件的选择、硬件设计、软件流程图、c语言源程序及详细注释等内容。本文简要介绍了mcs-51单片机的结构及应用特点,并详细地提出了基于mcs-51单片机多功能密码锁的软件和硬件设计的方法。鉴于其有安全可靠、价格低廉、硬件电路简单、便于实现、易于改进等优点,它具有很好的市场推广价值。 关键词:mcs-51,多次试探,密码锁目 录摘 要abstract第一章 绪论11.1 选题背景11.2 电子密码锁的特点11.3 电子锁的基本原理21.4 电子密码锁的发展趋势2第二章 系统概要设计42.1 系统结构42.2 系统组成42.2
3、.1 按键模块42.2.2 报警模块62.2.3 开锁机构模块62.2.4 显示模块72.3 系统技术可行性分析10第三章 硬件电路设计113.1 单片机简介113.1.1主要特性133.1.2 管脚说明143.1.3 震荡器特性143.2 七段led显示器153.2.1 led的作用153.2.2 led的功能153.2.3 led字型显示原理153.3 芯片hd7279a163.3.1 hd7279a的作用163.3.2 hd7279a的主要特性163.3.3 hd7279a的功能163.3.4 hd7279a的技术参数163.3.5 hd7279a引脚说明183.4 震荡电路183.5
4、复位电路193.6 系统电源20第四章 软件程序设计224.1 软件设计思路224.2 主程序流程图224.3 软件工具及其说明234.3.1 keil c234.3.2 protel 99 se24第五章 软硬件调试265.1 硬件调试部分265.1.2 电路通电观察275.1.3 功能模块调试275.2 软件调试部分27结 论30参考文献31致 谢32附录a 源程序33附录b 硬件原理图43第一章 绪论1.1 选题背景密码锁在当今社会用得越来越多,特别是银行等保密行业,密码锁要求在输入正确的密码后才能打开相应的设备进行操作,但是目前的密码锁有个很大的问题就是容易试探,在被多次试探后容易破译
5、,从而造成损失.在本设计中设计一种能够防止多次试探的密码锁,以解决该问题。 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺
6、点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 1.2 电子密码锁的特点电子密码锁是一种通过密码输入来控制电路或是芯片工作【1】,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下:1保密性好,编码量多,远远大于弹子锁,随机开
7、锁成功率几乎为零。2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3误码输入保护。当输入密码多次错误时,报警系统自动启动。4. 电子密码锁操作简单易行,一学即会。1.3 电子锁的基本原理电子锁的组成框图,它是以51系列单片机(p89c51)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收hd7279a送来的报警信号、发送数据等功能【2】。 单片机接收键入的代码,并与存贮在eeprom中的密码进行比较,如果密码正确,则驱动电磁执行器(该设计中用发光二级管代替开锁状态)开锁;如果密码不正确,则允许操作人
8、员重新输入密码,最多可输入三次;如果三次都不正确,将密码锁功能锁存,在10分钟内不允许操作密码锁,并且发出持续的报警5s。1.4 电子密码锁的发展趋势在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。本文介绍以51系列单片机为核心的电子密码锁,详细阐述了其工作原理、基本功能框图、关键
9、设计技术及软件工作流程。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,ic卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。从历史上技术发展的规律看,在功能相似的情况下,简单可靠的东西总是替代繁杂的东西,而它正是以简代繁的东西。所以,它是大众化的实用性新产品,替代传统圆盘式机械密码锁和部分电子密码锁是应该的。拨码盘式全
10、机械密码锁适用于在保险柜、保险箱、文件柜、防磁防火柜、防盗门、银库门、仓库门、车门、民用门及机械卡阻机构上广泛使用。它可以替代现有的传统圆盘式机械密码锁和部分电子密码锁。为某些产品的更新提供了契机。 由于电子技术的风靡,很多产品以采用了电子结构为荣。但在某些场所,电子产品并没有绝对的优势,反而是机械产品或机电混合产品更实用。举两个例子:一是燃气灶的打火装置,早期是晶体管的点火器风靡一时,但它不耐潮湿,容易损坏,离不了电池。时间一长,反而是靠手扭动旋钮储能的机械(压电)打火装置显露出它的优越性-简单实用,成为燃气灶点火器的主流。二是汽车的后视镜及公共汽车(单厢)的后门窥视器,都曾有被电子监视器替
11、代的危险,但人们发现:传统的后视镜及公共汽车驾驶员上方的普通后视镜,观察效果并不比电子监视器差,更简单实用。 事实上,在传统的工业中,也能够找到比所谓的“新经济”更保险但是利润却毫不逊色的投资方向。密码锁并不是一种频繁操作使用的产品,可以说是一种半静态的产品,采用机械方式更实用一些。但电子方式的密码量大,人们主观感觉会安全一些。本设计产品的密码量接近电子密码锁,操作又比传统机械密码锁快得多,简单实用,可以像前述两例一样,有望成为高档次密码锁主流。第二章 系统概要设计2.1 系统结构本设计介绍的是一种基于p89c51rd2xx密码锁的硬件和软件设计及实现方法。这种电路设计具有按键有效提示,输入错
12、误提示,开锁控制电路,控制报警电路等多种功能。可在意外泄密的情况下随时修改密码。6位数密码共10万组不重复,保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所【3】。完整系统的硬件连接图2-1所示。硬件电路由显示模块、按键模块、超次键盘锁定模块、开锁模块、延时报警模块组成。键盘控制p89c51单片机显示电路输入错误锁定键盘延时报警控制电路开锁控制电路图2-1系统总框图 2.2 系统组成2.2.1 按键模块按键模块包括有数字键和功能键。数字键包括09键,用于密码的输入。功能键有退格键和确认键。具体的功能定义如表2-1所示:表2-1按键键名功能说明09键数字键输入密码a键退格键取消刚
13、才输入的密码b键确认键密码输入完成由于本环境地特殊性,一般密码键盘用于对保密性要求比较高的行业,考虑该因素,对按键的控制不采用一般的行列扫描形式,而是采用专用按键/led集成控制器hd7279,该控制器可以驱动8个共阴数码管,同时可以驱动64个独立按键,并且带有消隐、闪烁等功能,特别是具有内部去抖动功能,非常适合按键和led集成的场合。本设计中打算采用该控制器,通过仿spi总线时序来完成对hd7279的控制,通过中断来识别按键,保证数据的实时性。具体的电路图如2-2所示:图 2-2 按键电路图在实际的连接电路中,连接到键盘的4只10k电阻和8只100k的下拉电阻均不可以省略,由于在该设计中接入
14、了数码管,所以串入dp和sg-sa连线的8只200的电阻也不能省略。在实际应用中,8只下拉电阻和4只键盘位选线dig0-dig3的四只电阻应遵循一定的比例关系,下拉电阻应该大于位选电阻的5倍而小于其50倍,典型值为10倍。下拉电阻的取值范围是10k-100k,位选电阻的阻值范围是1k-10k。在不影响显示的前提下,下拉电阻应尽可能地取较小的值,这样可以提高键盘部分的抗干扰能力。按键值得读取时通过中断来实现的,hd7279a的读键盘数据指令15h,该指令从hd7279a读出当前的按键代码。此指令的前半段,hd7279a的data引脚处于高阻输入状态,以接收来自微处理器的指令;在指令的后半段,da
15、ta引脚从输入状态转为输出状态,输出键盘代码的值。当hd7279a检测到有效的按键的时候,key引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果hd7279a接收到读键盘数据指令,则输出当前的按键键盘代码;如果在收到读键盘指令时没有有效按键,hd7279a将输出ff。2.2.2 报警模块在单片机测控系统发生故障或处于某种紧急状态时,单片机系统应能发出报警信号,报警信号可分为闪光报警、鸣音报警和语音报警。本设计中采用的是鸣音报警。鸣音报警接口有二种:一种是蜂鸣音报警接口,另一种是音乐报警。下面介绍的是该设计中采用的蜂鸣音报警接口。蜂鸣音报警的发音器件常采用压电式蜂鸣器。压电式蜂鸣器约
16、需10ma的驱动电流,因此,可以使用ttl系列的集成电路7406或7407低电平驱动,也可以用一个晶体三级管驱动,如图2-3所示。在图2-3中,p1.3接晶体管基级输入端。当p1.3输出高电平“1”时,晶体管导通,压点蜂鸣器两端获得约+5v电压而鸣叫;当p1.3输出低电平“0”时,三级管截止,蜂鸣器停止发声。图2-3蜂鸣器电路如图2-3所示,蜂鸣器的正极接到vcc(5v)电源上面,蜂鸣器的负极接到三极管的集电级,三极管的基级b经过限流电阻r18后由单片机的p1.3引脚控制【4】。 2.2.3 开锁机构模块通过单片机送给开锁执行机构,从而达到开锁的目的。其原理如图2-4所示:返回密码正确?开锁驱
17、动电路发光二极管亮单片机微控制器yn图2-4密码锁开锁机构示意图当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁(本设计用发光二级管代替),达到开门的目的。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。具体的电路图如2-5所示:图2-5密码锁开锁电路图2.2.4 显示模块本系统设计的显示电路是为了给使用者以提示而设置的。考虑到为了节约单片机的口资源,本系统的显示采用串行显示的方式。方案一:通过移位寄存器显示只使用单片机的两个串行口,就可以完成单片机的显示功能。方案二:通过芯片hd7279
18、显示 hd7279为串行接口,可直接同时驱动8位共阴式数码管而不需要外围元件,内部含有译码可接受bcd码或16进制码;各位独立控制译码或不译码及消隐和闪烁属性;还有其他指令方便控制独立led;由此可以看出hd7279功能非常强大。相对于方案一的使用hd7279更方便程序设计;而且对后面的测试工作也很有帮助。所以方案二是比较好的选择【5】。显示器主显示几个字符,给用户提供指示见图2-6所示。图2-6a关闭状态图2-6b 开锁状态图2-6 c 密码输入及修改状态图2-6d 密码输入错误后的提示图2-6 e锁定状态具体的显示电路图如2-7所示:图2-7 显示电路1图2-7显示电路2因为采用循环扫描的
19、工作方式,如果采用普通的数码管亮度可能不够,采用高亮或超高亮的型号,可以解决这个问题。数码管的尺寸,亦不宜选的过大,一般字符的高度不应超过1英寸,如果选用大型的数码管,应适用适当的驱动电路。显示电路由6位led显示器,它将输入的密码即时显示出来,显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只p1口的p12和p13及p14用以串口的发送和接收,六只数码管采用hd7279芯片驱动,显示比较清晰,hd7279a芯片接个振荡电路。2.3 系统技术可行性分析主要的设计实施过程:首先,选择周立功p89c51rd2xx单片机,以及选购其他电子元器件:hd7279a、小键盘和七段led显
20、示器。第二步,使用protel 99 se设计硬件电路原理图,并决定采用万能板焊接。第三步,使用keil c软件编写单片机的c语言程序、仿真、软件调试。第四部,使用proteus软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计【6】。2.4 系统方案设计论证方案一:采用数字电路控制采用数字密码锁电路的好处就是设计简单。用74ls112双jk触发器构成的数字逻辑电路作为密码锁的核心控制,共设了12个用户输入键,其中只有6个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过50秒(一般情况下
21、,用户不会超过50秒,若用户觉得不便,还可以修改)电路将报警5秒,若电路连续报警三次,电路将锁定键盘10分钟,防止他人的非法操作。方案二:采用一种是用以p89c51rx2rd。利用单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。通过比较以上两种方案,单片机方案有较大的活动空间【7】,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。电路应该由两大部分组成:密码锁电路和备用电源(ups),其中设置ups电源是为了防止因为停电造成的密码锁电路失效,使用户免
22、遭麻烦。但是在该设计中由于的技术的有限和时间的有限性备用电源并没有在其中得到相应的体现。密码锁电路包含:键盘输入、密码检测、开锁电路、执行电路、报警电路、键盘输入超次锁定电路。第三章 硬件电路设计3.1 单片机简介3.1.1主要特性单片机自20世纪70年代问世以来,以及其高的性能价格比收到人们的重视和关注,所以应用广泛,发展很快。单片机的优点是体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。广大工程技术人员通过学习有关单片机的知识后,也能依靠自己的力量来开发多希望的单片机系统,并可以获得较高的经济效益。正因为如此,在我国,单片机已经被广泛的应用在工业自
23、动化控制、自动监测、智能仪器仪表、家用电器等各个方面。从20世纪80年代,单片机的发展非常迅速,就通用单片机而言,世界上一些著名的计算机厂家已投放市场的产品就有50多个系列,数百个品种。尽管单片机的品种很多,但是在我国使用最多的还是intel公司的mcs51系列单片机和美国atmel公司的89c51单片机mcs51系列;单片机包括三个基本型8031、8051、8751。8031内部包括一个8位cpu、128个字节ram,21个特殊功能寄存器(sfr)、4个8位并行i/o口、1个全双工串行口、2个16位定时器/计数器,但片内无程序存储器,需外扩eprom芯片。比较麻烦,不予采用。8051是在80
24、31的基础上,片内集成有4k rom,作为程序存储器,是一个程序不超过4k字节的小系统。8051单片机是高性能的单片机,它具有8位的微处理器,128b片内ram ,4k 的片内rom,4个八位的并行io 接口pop3,两个定时计数器,及五个中断源的中断控制系统。在不接任何外围电路的情况下可以实现大部分较为复杂的逻辑控制功能,进行外部ram 扩展还可以用于数据采集,点阵显示屏控制等方面的应用。对于存储容量要求不高的实际应用,8051是一种不可多得的高性能的单片机,被广泛应用于各个领域。8051单片机的每个端口都是8位准双向口,每一条io线都能独立的用作输人或输出。每个端口都包括一个锁存器,一个输
25、出驱动器和输人缓冲器。在无片外扩展存储器的系统中,这四个端口都可以作为准双向通用的io口使用。在具有片外扩展存储器的系统中,p2口送出高8位地址;p0口为双向总线,分时送出低8位地址和数据的输人输出。p3口是一个多功能端口,各个引脚具有第二功能。(p30为串行口输入,p31为串行口输出,p32为外部中断0输入,p33为外部中断1输入,p34为定时器0的外部输入,p35为定时器1的外部输入,p36为片外数据存储器“写选通控制”输出,p37为片外数据存储器“读选通控制”输出)。且因8051适合与应用在程序已定,批量大的单片机产品中;所以8051非常合适。我选择的是周立功p89c51rd2xx单片机
26、。8051适合与应用在程序已定,且批量大的单片机产品中;所以8051非常合适。我选择周立功p89c51rd2xx单片机。p89c51rd2xx单片机包含具有8k/16k/32k/64k 并行可编程的非易失性flash 程序存储器,并可实现对器件串行在系统编程isp 和在应用中编程(iap)。在系统编程isp in-system programming,当mcu 安装在用户板上时允许用户下载新的代码,在应用中编程iap in-application programming,mcu可以在系统中获取新代码并对自己重新编程,这种方法允许通过调制解调器连接进行远程编程。片内rom中固化的默认的串行加载程
27、序boot loader 允许isp 通过uart 将程序代码装入flash 存储器,而flash代码中则不需要加载程序,对于iap 用户程序通过使用片内rom 中的标准程序对flash 存储器进行擦除和重新编程【8】。该器件可通过并行编程或在系统编程的方法对一个flash 位进行编程,从而选择6 时钟或12 时钟模式。此外也可通过时钟控制寄存器ckcon 中的x2 位选择6 时钟或12 时钟模式,另外当处于6 时钟模式时,外围功能可以选择一个机器周期6 时钟或是12 时钟,这是通过ckcon 寄存器进行选择的该系列微控制器是80c51 微控制器的派生器件,是采用先进cmos 工艺制造的8 位
28、微控制器指令系统与80c51 完全相同。该器件有4 组8 位i/o 口3 个16 位定时/计数器,多中断源-4 中断优先级-嵌套的中断结构,1 个增强型uart 片内振荡器及时序电路新增的特性使得p89c51ra2/rb2/rc2/rd2 成为功能更强大的微控制器,更好地支持应用于脉宽调制高速i/o 递增/递减计数能力如电机控制等场合。特性l 80c51 中央处理单元l 具有isp 和iap 功能的片内flash 程序存储器l 片内boot rom 包含底层flash 编程子程序以实现通过uart 下载程序l 可实现最终用户应用的编程iapl 与87c51 兼容的并行编程硬件接口l 每个机器周
29、期为6 个时钟周期标准l 可通过并行编程器选择6 时钟/12 时钟模式芯片擦除后默认的时钟模式为12时钟l 可通过isp 对选择6 时钟/12 时钟模式的flash 位进行擦除和编程l 可通过sfr 位在运行中改变 6 时钟/12 时钟模式l 当cpu 为6 时钟模式时外围功能pca 定时器uart 可选择使用6 时钟/12 时钟模式l 采用6 时钟周期时频率可高达20mhz 相当于40mhz 采用12 时钟周期时频率可达33mhzl 全静态操作l ram 可外部扩展到64k 字节l 4 个中断优先级l 7 个中断源l 4 个8 位i/o 口l 全双工增强型uartl 帧错误检测l 自动地址识
30、别l 电源控制模式l 时钟可停止和恢复l 空闲模式l 掉电模式l 可编程时钟输出l 异步端口复位l 双dptr 寄存器l 低emi 禁止alel 可编程计数器阵列pca3.1.2 管脚说明表3-1名称类型名称和功能rsti复位xtal1i晶体1:震荡反向放大器输入端xtal2o晶体2:震荡反向放大器输出端p1口i/op1口是带内部上拉的双向i/o口p3 口i/op3口是带内部上拉的双向i/o口3.1.3 震荡器特性(1) xtal1 和xtal2 分别作为一个反相放大器的输入和输出,此管脚可配置为使用内部振荡器,要使用外部时钟源驱动器件时,xtal2 可以不连接而由xtal1 驱动外部时钟信号
31、,无占空比的要求,但高低电平的最长和最短时间必须符合手册的规定。(2) 该器件在出厂时配置为每机器周期12 个时钟(参见12 时钟模式),可通过商用的flash 编程器或isp或软件配置为每机器周期6 个时钟(参见6 时钟模式)【9】。3.2 七段led显示器3.2.1 led的作用七段led显示器在该设计中的作用是用来接收hd7279送来的字型码显示编码结果。3.2.2 led的功能led显示器有共阳极和共阴极两类。笔画型led显示器是由8个二极管电路adp按字型8的方式排列,当不同的二极管被选通后根据发光效果会显示不同的自型。本设计中采用共阴极连接方式,adp分别与hd7279的sgsa相
32、连,接收段选码信号(高电平);2位led显示器的2根共阴极引线与hd7279的dig0dig1相连,接收位选码信号(低电平)。段选码和位选码共同作用以显示不同的字型。3.2.3 led字型显示原理表3-2 led字型显示原理数字dpgfedcba二进制编码(字形)0001111113fh10000001103h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fha0111011177hb011111007chc0011100169hd010111105eh
33、e0111100179hf0111000171h3.3 芯片hd7279a3.3.1 hd7279a的作用hd279作为驱动芯片来驱动led显示器3.3.2 hd7279a的主要特性hd7279a为串行接口,可直接同时驱动8位共阴式数码管而不需要外围元件,vdd接正电源,cs片选输入端,低电平时向芯片发送指令,data串行数据输入输出端,sgsa段f段a驱动输出,dig0dig7数据07驱动输出hd7279a。 主要特性:l 串行接口,无需外围元件可直接驱动ledl 各位独立控制译码或不译码及消隐和闪烁属性l 具有段寻址指令,方便控制独立ledl (循环)左移/(循环)右移指令l 具有段寻址指
34、令,方便控制独立ledl 64键键盘控制器,内含去抖动电路l 有dip和soic两种封装形式供选择3.3.3 hd7279a的功能vdd接5v电源,dig0dig1与6位led显示器的6根共阴极引线,对led进行片选, hd7279的sgsa与led的ag相连,对led进行段选, data与clk与单片机89c51的p12, p13相连用于接收数据,reset与复位电路相连用来进行复位,rc与振荡器相连用来产生时钟信号。单片机将输入的数字给hd7279,hd7279发出段选与位选信号给led将密码显示出来。3.3.4 hd7279a的技术参数表3-3 hd7279技术参数符号参数测试条件最小典
35、型最大单位vcc电源电压4.55.05.5vicc工作电流不接led35maicc工作电流led全亮iseg=10ma60100mavih逻辑输入高电平2.05.5vvil逻辑输入低电平00.8vtkey按键响应时间含去抖动时间101840msik0key引脚输出电流7maik1key引脚输入电流10mat1从cs下降沿到clk脉冲时间2550250ust2传送指令时clk脉冲宽度58250ust3字节传送时脉冲宽度58250ust4指令与数据时间间隔1525250ust5读键盘指令中指令与输出数据时间间隔1525250ust6输出键盘数据建立时间58-ust7读键盘数据时clk脉冲宽5825
36、0ust8读键盘数据完成后data 转为输入状态时间5ushd7279a电特性vcc为5v,驱动电流为100ma,而led的工作电流只需20ma,完全满足设计要求。3.3.5 hd7279a引脚说明表3-4引脚名称说明1,2vdd正电源3,5nc无连接,必须悬空4vss接地6cs片选输入端,低电平有效7clk同步时钟输入端,此引脚电平上升沿表示数据有效8data串行数据输入/输出端9key按键有效输出端,平时为高电平,当检测到有按键按下时,此引脚边为低电平10-16sg-sa段g-段a驱动输出17dp小数点驱动输出18-25dig0-dig7数字0-数字7驱动输出26clko震荡输出端27rc
37、rc震荡器连接端28reset复位端hd7279a需要一外接的rc振荡电路以供系统工作。如果芯片无法正常工作,应首先检查该振荡电路,在焊接电路板以及布线的过程中,所有的元件,尤其是振荡电路的元件应该尽量靠近hd7279a,并尽量使电路连线最短。hd7279a的复位端在一般情况下,可以直接与正电源连接,在需要较高可靠性的前提下,可以连接一外部复位电路,或直接由单片机控制。在上电或reset端由低电平变为高电平的后,hd7279a大约需要经过18-25ms的时间才会进入正常的工作状态。3.4 震荡电路震荡电路如图3-2所示,它为cpu产生赖以工作时序。晶振(晶振是晶体振荡器的简称)是为电路提供频率
38、基准的元器件,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,适用于多种不同的电压。不过无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路,不过对于一般电路而言,使用无源晶振就能满足基本要求。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。因价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况,无源晶体
39、需要用dsp片内的振荡器,无源晶体没有电压的问题,信号电平是可变的,也就是说是根据起振电路来决定的,同样的晶体可以适用于多种电压,可用于多种不同时钟信号电压要求的dsp,而且价格通常也较低,因此对于一般的应用如果条件许可建议用晶体,这尤其适合于产品线丰富批量大的生产者。无源晶体相对于晶振而言其缺陷是信号质量较差,通常需要精确匹配外围电路(用于信号匹配的电容、电感、电阻等),更换不同频率的晶体时周边配置电路需要做相应的调整。图3-2 震荡电路3.5 复位电路复位是单片机的初始化操作,只要给reset引脚加上2个机器周期以上的高电平信号,就可以使mcs-51单片机复位。复位的主要功能是把pc初始化
40、为0000h,使mcs-51单片机从0000h单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错的时候或操作错误使系统处于死锁状态,为摆脱死锁状态,也需要按复位键重新启动。在复位有效期间(即高电平),mcs-51单片机的ale引脚和psen引脚均为高电平,且内部的ram不受复位影响。mcs-51的复位是由复位电路俩实现的。具体的复位电路如图3-3所示:图3-3复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。通常,电源稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起抖动而影响复位。复位电路通常采用上电自动复位和
41、按钮复位两种方式。最简单的上电复位电路如上图所示。上电自动复位是通过外部复位电路的电容充电来实现的。只要vcc的上升时间不超过1ms,就可以实现自动上电复位。当时钟频率选用6mhz时,c取22uf,r取1k【10】。3.6 系统电源该设计中的电源部分采用了7805三端稳压器作为稳压电源使用。7805是三端稳压器,虽然也是三条腿,但不是三极管。它的管脚1是输入端,管脚2是公用端,管脚3是输出端。7805输入端最高输入电压为35v,输出正5v,最大输出电流为1.5a。 输入输出之间的电压差不可小于2v,最好在5v左右。 7805运用其器件内部电路来实现过压保护、过流保护、过热保护。 这使它的性能很
42、稳定。能够实现1a以上的输出电流。器件具有良好的温度系数。 本产品有多种电压输出值5v24v,因此产品的应用范围很广泛。可以运用本地调节来消除噪声影响,解决了与单点调节相关的分散问题。 输出电压误差精度分为3%和5% 。其原理图如图3-3所示。图3-3 78l05原理图第四章 软件程序设计4.1 软件设计思路电子密码锁工作的主要过程是led数码管提示开始输入密码,通过键盘输入密码,同时led显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,锁定键盘10min。程序将分为主程序和中断服务子程序。主程序负责键盘键值读取,密码判断和开锁或报警处理。中断
43、服务子程序主要是负责led数码管显示。根据程序功能,程序主要分为以下几部分:1)键盘键值读取程序键盘键值读取程序包括键盘扫描、消除抖动、键译码等内容。按键的识别主要有两种方法:行反转法和行扫描法。因为键盘为机械开关,容易引入抖动。为了消除抖动干扰,在程序中要加入消除抖动的部分(hd7279a内含去抖动电路)。2)led数码显示程序led数码显示器是一种应用很普遍的显示器。程序主要负责把要显示的数字或字母对应的显示码送到相应的led显示管。有多位需要同时显示时,可以采用动态刷新的方法,就可以得到稳定的输出。内部定时器模拟spi总线,定时时间到时请求中断服务,进入中断服务程序输出1位显示数据。循环
44、显示6个数码管,可以实现稳定的数字显示。中断服务程序只负责数据的输出显示,主程序根据所处的状态修正显示数据。3)密码判断程序密码判断程序放在主程序中,有按键时读取,当确定键按下时作出判断。在程序中设置6字节的空间存放设定的密码和6字节存放键盘输入的数据。根据读取的键盘数据和预先设定的密码逐位比较就可以判断输入密码的正确性。4)开锁和报警程序通过仿spi总线时序来完成对hd7279的控制,通过中断来识别按键,相应位的输出数据然后延时一段时间就可以控制发光二极管的亮灭和蜂鸣器的鸣叫。4.2 主程序流程图主程序流程图见图4-1所示开始初始化调用显示 有键按下?启动定时识别按键全部按完超时?比较密码开
45、锁开始超过3次?锁定ynynynyn图4-1主程序流程图4.3 软件工具及其说明4.3.1 keil c keil uvision2是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面,运行keil软件需要pentium或以上的cpu,16mb或更多ram、
46、20m以上空闲的硬盘空间、win98、nt、win2000、winxp等操作系统。c51是针对8051系列单片机开发的高级语言。它与一般的标准c语言基本一致,但根据8051单片机的硬件特点作了少量的扩展和重新定义。例如:c51支持位变量,printf函数由串行口输出而不是屏幕以及不同的厂家的单片机为描述其硬件的差异需要使用特定的头文件等。c51主要有以下几个主要特点:l 语言简洁、紧凑、使用方便灵活l 运算符极其丰富l 生成的目标代码质量高,程序执行效率高(与汇编相比)l 可移植性好(与汇编语言相比)l 可以直接操作硬件4.3.2 protel 99 se随着计算机技术的发展,计算机软件在电路
47、设计中的应用越来越广泛,orcad,protel等都是人们熟悉的常用eda软件。protel 99 se 是protel公司推出的最新版本,应用于电路原理图设计、电路板设计等,他基于windows环境,功能强大,人机界面友好,能让人们在具有最完整的功能环境下,提升设计上的品质和效率。用protel 99 se进行电路设计的基本步骤: (1) 路原理图设计的步骤 电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图的设计一般有如下步骤: (a) 置原理图设计环境; (b) 置元件;(c) 理图布线;(d) 辑和调整;(e) 查原理图;(f) 成网络表。
48、 (2) 电路板设计的步骤:印刷电路板设计是从电路原理图变成一个具体产品的必经之路,因此,印刷电路板设计是电路设计中最重要、最关键的一步。通常,印刷电路板设计的具体步骤如下: (a)规划电路板(b)设置参数(c)装入网格表(d)元器件布局(e)自动布线(f)手工调整随电子工业的飞速发展,电路设计越来越复杂,手工设计越来越难以适应形势发展的需要,protel 99 se以其强大的功能、快捷实用的操作界面及良好的开放性,为设计者提供了现代电子设计手段,使设计者能快捷、准确地设计出满意的电路原理图和印刷电路板,不愧是从事电路设计的一个良好的工具。第五章 软硬件调试5.1 硬件调试部分在设计开始的时候
49、选择单片机p89c51,后来的实施的过程中最终选用了at89c51的单片机。由于51系列的单片机具有通用性好,兼容性强的特点,这里的替换并没有给设计带来太多的不便,因此这样的选择是可行的。所以这里不再对at89c51作详细的介绍了。5.1.1 电路通电前的检查(1) 首先是焊接的顺序问题。当初板子做好以后,我一口气就把所有的元件焊上去了,这样对于没有调试过的板子,就很难找到错误的原因。所以焊接的顺序很重要,应该是按功能划分的器件进行焊接,顺序是功能部件的焊接-调试(ok)-另一功能部件的焊接,这样容易找到问题的所在。其次要注意的就是板子的整体布线,我在整个设计的过程中,由于没有经验,加上以前也
50、从来没有接触过直接焊板子,所以没有太多的考虑到布线的问题,从而导致布线很乱,没有太多的规律,这样极其容易造成短路。后来在老师的指导下,明白了布线的小技巧:尽量走直线,能横着走的就不要选择斜着走,这样在调试的时候就很容易找到错误,而且不容易短路。(2) 如果在调试过程中按功能划分的器件上出现问题,可以按以下步骤进行:(a)检查原理图连接是否正确(b)检查原理图与实际连接的图是否一致(c)检查原理图与器件上的各个引脚是否一致(d)用万用表检查是否有虚焊,引脚短路现象(e)查询器件的datasheet,分析一下时序是否一致,同时分析一下命令字是否正确(f)有条件的可以用示波器。 (3) 多观察,多思
51、考。在扳子焊接完成的时候先不要急着进入调试的步骤,先对板子进行全面的检查,检查有没有短路的线,有的话及时的改正过来,否则到了调试的时候才发现的话会很麻烦的。 (4) 有可能的情况下,最好焊两块板子以上,这样才好有个比较,硬件上很小的问题有很多时候是很难发现的。但是我的设计由于时间有限就没有进行这一步。(5) 软件的调试要和硬件配合进行,往往问题可能不是硬件上的。5.1.2 电路通电观察在电路连接正确的情况下接通电源。注意,在接通电源后不要急于测量,首先要观察整个电路有无异常现象发生(包括有无冒烟,是否有异常气味,是否有异声,芯片是否发烫,电源是否有短路或开路等现象)。如果出现异常,应该立即关掉
52、电源,待故障排除后方可重新通电。5.1.3 功能模块调试根据各个模块的功能,对其进行调试。这样可以把前面调试好的单元电路的输出信号作为下一级的输入信号。如应该先调试单片机的最小系统。然后再调试按键模块和显示模块。5.2 软件调试部分在整个的调试过程中,软件的调试要和硬件配合进行,当出现问题的时候,不一定是硬件上的,往往是程序出现了问题。整个的软硬件的实现过程是这样的:首先要产生hex文件,然后用编程器将生成好的hex文件烧到单片机的rom里,最后就可以根据你要实现的具体功能进行相应的调试。在该设计中,软件部分的主要工作就是通过中断实现键盘数据的读取、通过延时子程序实现定时和计次功能。通过中断实现键盘数据的读取:void hd_key_isr() interrupt 0 /外部中断0函数(按键中断)ea=0;/开中断send_byte(0x15); /读键盘keyvalue=receive_byte(); /取得键值while(!key); /等待按键结束int_flag=1;ea=1; /关中断延时子程序:void delay1ms()tmod=0x01;/ 设置定时器0的 工作方式为0th0=0xdb;/给计数器设定所需的初值tl0=0xff;tr0=1;/定时器0的运行控制器,置1为启动计数,置0为停止计数下面就可以通过void delay1ms()实现具体的时间的延时:延时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全与信息技术2025年考试重点题目及答案
- 兰州职业技术学院《Hadoop大数据技术》2023-2024学年第二学期期末试卷
- 四川工业科技学院《微机原理与汇编语言》2023-2024学年第二学期期末试卷
- 2025年数据分析与处理职业考试试卷及答案
- 2025年注册会计师资格考试试卷及答案
- 2025年移动互联网应用开发职业考试试题及答案
- 2025年职业健康管理师考试试卷及答案汇编
- 山东省广饶一中2024-2025学年高三最后一卷化学试题文试题含解析
- 岐山县2025年小升初总复习数学精练含解析
- 江苏省句容市、丹阳市2024-2025学年第一次高中毕业生复习统一检测试题语文试题含解析
- 《消费者心理与行为分析》第五版 课件全套 肖涧松 单元1-10 消费者心理与行为概述 - 消费者购买决策与购后行为
- 塑料污染治理-洞察分析
- 商场运营管理规定范文(2篇)
- 反诈知识竞赛题库及答案(共286题)
- 稀土材料技术基础知识单选题100道及答案解析
- 生理学基础题库(46道)
- 量子储能材料的探索
- 2023年人教版六年级语文下册期末考试卷(A4打印版)
- ESG信息披露、表现和评级综合研究:国内外对比分析
- 2024年全国普法知识竞赛法律知识题库及答案
- DB5101-T135-2021城市公园分类分级管理规范
评论
0/150
提交评论