




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮安信息职业技术学院 综合毕业实践报告(论文)综合毕业设计题目单片机密码锁系 部电气工程系专 业电子设备运行与管理姓 名班 级470511学 号42起迄日期 :2007.11-2008.5实践地点 :昆山欧南芭电子配件有限公司指导教师 :顾问教师 :2008年5月摘 要随着科技的发展,安全已成为人们关注的焦点之一,于是各种安全产品相继问世(如指纹防盗,红外防盗,gps等).虽然这类产品安全性高,但因其生产成本高,携带安装使用不方便,在一定程度上限制了这类产品的普及和推广, 本文介绍的是一种基于at89c51智能锁的硬件和软件设计及实现方法,这种电路设计具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能,可在意外泄密的情况下随时修改密码,保密性强,灵活性高,特别适用于家庭,办公室,学生宿舍及宾馆等场所. 关键词:at89c51 智能锁 防盗 目 录第一章 课题简介 41.1单片机控制密码锁作用4 1.2方案论证41.2.1红外遥控电子密码锁41.2.2拨码盘式全机械密码锁原理51.2.3单片机密码锁5第二章 系统硬件设计及实现62.1 at89c51芯片介绍62.1.1主要性能参数62.1.2 at89c51功能特性描述72.1.3 at89c51引脚功能说明72.2电路组成92.2.1电源电路92.2.2振荡器电路102.2.3复位电路102.3时序112.4键盘及其接口技术132.4.1键盘的抖动干扰142.4.2抖动干扰的消除142.4.3非编码独立式键盘152.4.4矩阵式键盘的结构组成172.5七段led数码显示器的结构182.6设计思路及其具体电路的设计182.7原理图20第三章 系统软件设计193.1程序框图193.2程序清单25第四章 检测与调试274.1硬件调试274.1.1排除逻辑故障274.1.2排除元器件失效274.1.3排除电源故障274.2软件调试274.2.1逻辑错误274.2.2功能错误274.3联机仿真调试27第五章 总结29参考文献29附录29元件清单31第一章 课题简介1.1 单片机控制密码锁作用在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,ic卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,单片机控制密码锁是这类电子防盗产品的主流。单片机控制密码锁的功能:将已经固定好的密码存放在table中,比如,table db:02h,02h,01h,05h,即密码为2215。开始我们通过键盘输入4位数的密码,之后,通过扫描键盘获得输入的密码,如果输入的密码正确,即为2215,则门会被打开,如果输入的密码不正确,则显示器会自动显示为0000或*,同时,如果我们之间不小心输错了密码,可以按#键,将显示器清除为0000重新输入,同时输错的次数最多只能为3次,如果再输错的话,蜂鸣器会发出响声而报警。另外,在每次输完密码后,必须按下#键,否则将无法判别输如的密码是否正确,因为只有当按下#键之后,在程序中才会跳转到密码比较代码段。1.2 方案论证1.2.1红外遥控电子密码锁遥控密码锁的基本设计主要分为如下五个部分。1. 选择密码:我们将编好的密码程序存储在eprom中,用户通过密码选择键-8051中的p1.5口上的按键进行选择,具体操作过程如下:首先按一下p1.5口上按键,然后再逐渐输入号码,最后按”#”号确信即可.比如现在用户要是选择了57618这组数字作为密码,则用户只有首先按一下p1.5上的按键,接着在本机键盘上一一输入5、7、6、1、8、之后再按“#”号键即表示密码被设置好了,那么下次用户只要键入这组数据即可开锁。本设计中我们编入了两密码即:57618和81675。当然我们还可根据需要在eprom中存入更多的密码,供用户选择。2. 密码输入有效显示:为了帮助用户确信是否有键按下,我们特在电路中设置了模拟显示电路;而为了防止密码外泄;显示时,并不是显示用户按下的数字符号-而是以发光二极管的亮灭来提醒用户是否有键按下。有键按下,发光二极管亮0.5秒,没有键按下,发光二极管灭。这样既巧妙地提醒了用户又保护了用户密码,此本设计可靠性优点之一。3. 当用户键入正确密码后,再按确认键-“#”号,便会自动开锁。但用户键入密码时应注意:数字与数字之间的间隔时间为3秒,例如密码为57618,当键入第一个数字5后应在3秒内键入第二个数字7,否则,就会视为无效。如果键入完密码后不按“#”号,系统会当做放弃开锁处理。4. 密码错误报警:当用户键入错误密码时,系统就会报警,由扬声器发出5秒报警声。当连续三次出现密码错误时,则系统会长期报警不止。这时必须按复位方可停止。乃安全可靠性能之一5. 遥控开锁:当此锁用于私家车库或仓库时,用户可以不上车,只要手执遥控器,键入正确密码,便会自动开锁;如果密码错误,同样也会报警。这是本设计优越性能之三。1.2.2拨码盘式全机械密码锁原理这是一种没有电子器件的大密钥量高可靠的全机械密码锁。它的操作方式独特,类似老电话机的拨号从拨盘的起点开始,顺时针转动拨盘到某一位数码,然后退回到起点,就输入了一位密码。如此重复直到输入了最后一位密码,再从起点逆时针转动拨盘就可以开锁。在开锁的同时,内部已经复位,所以拨盘退回到起点关锁后,必须重新输入密码才能开锁,不需要考虑内部复位问题。如果输错了密码,逆时针转动拨盘(虚开锁)也可以内部复位,然后重新输入密码。 这种密码锁中,六位密码的可以有298万多组密码供主人随意变换,保密性极高。可选密码组是连续排列的,为选择容易记忆的密码提供了方便。目前已开发的基本型产品,密码位数及密码量还可以根据用户的需求来重新设计。也可以为用户增加报警器接口。1.2.3单片机密码锁单片机作为微型计算机发展的一个分支,十几年发展十分迅速。由于单片机具有可靠性高,体积小,功耗低,环境适应性强,成本低和容易产品化等特点,在智能仪器,仪表,工业实时控制,智能终端,通信设备,医疗器械,汽车电器,导航系统和家用电器等领域有着广泛的用途。而数字集成电路,由于系统内部结构复杂,硬件庞大,价格高,功能不灵活,所以在处理速度,应用领域等方面远不及单片机好。单片机正在取代各种类型的传统电子产品,只要一个单片机就能起到使各类产品升级换代的功效,它不仅能构成简单的应用系统,而且更适合于各类复杂的要求较高的实时应用系统。at89c51系列单片机的推广应用进一步促进了我国工业技术的改造以及其他领域的技术更新,向全自动化,小型化,智能化方向迈进。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。原来必须由模拟电路,数字电路实现的大部分功能,现在已经通过单片机由软件方法来实现了。所以,本电子密码锁的核心部件就是单片机。单片机应用于电子密码琐的主要优点:1. 电路简单 模拟电路为了实现控制逻辑需要许多电子器件,采用微处理器件后,绝大多数逻辑可以通过软件实行。2. 具有灵活性和适应性 微处理器的控制方式是由软件完成的,如果需要修改控制规律,一般不必改变系统的硬件电路,只要修改程序即可。3. 能够实现比较复杂的控制 微处理器有更强的逻辑功能,运算速度快,精度高,有大容量存储单元,因此,有能力实现复杂的控制。4. 无零漂,控制精度高 数字控制不会出现模拟电路中经常遇到的零点漂移问题,可以保证足够的控制精度。第二章 系统硬件设计及实现2.1 at89c51芯片介绍at89c51是美国atmel公司生产的低电压,高性能的cmos8位单片机片内4kbytes的可反复擦写的只读程序存储器(perom)和128bytes的随机存储器(ram),器件采用atmel公司的高密度、非易失存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大。at89c51单片机提供许多高性价的应用场合,可灵活的应用于各种控制领域。at89c51图1 单片机at89c512.1.1主要性能参数:1与mcs-51产品指令系统的全兼容 24k字节可重擦写flash闪速存储器3. 1000次可擦写周期4. 全静态操作:0hz-24mhz5. 三级加密程序存储器6. 1288字节内部ram 7. 32个可编程i/o口线8. 2个16位定时/计数器9. 6个中断源10.可编程串行uart通道11. 低功耗空闲和掉电模式 2.1.2 at89c51功能特性描述:at89c51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c51可降至0hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止所有部件工作直到下一个硬件复位。2.1.3 at89c51引脚功能说明:vcc:电源电压gnd:地p0口:po口是一组8位漏极开路双向i/o口,即地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个ttl逻辑电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,po口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。p1口:p1口是一个内部上拉电阻的8位双向i/o口,p1的输入缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(i)。flash编程和程序校验期间,p1口接收8位地址。p2口:p2口是一个带有内部上拉电阻的8位双向i/o口,p2的输入缓冲极可以驱动(输入或输出电流)4个ttl逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行movxdptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行movxri指令)时,p2口线的内容(也既特殊功能寄存器(sfr)区中r2寄存器的内容),在整个访问期间不改变。flash编程或校验时,p2亦接收高地址和其他控制信号。p3口:p3口是一组带有内部上拉电阻的8位双向i/o口,p1的输入缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的p3口将用上拉电阻输出电流。p3口除可作为一般的i/o口线外,更重要的用途是它的第二功能,如下表所示:图2 p3口引脚功能表图3 at89c51方框图 rst/vpd(9脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,p1p3口输出高电平,初始值07h写入堆栈指针sp、清0程序计数器pc和其余特殊功能寄存器,但始终不影响片内ram状态,只要该引脚保持高电平,89c51将循环复位,rat/vpd从高电平到低电平单片机将从0号单元开始执行程序,另外该引脚还具有复用功能,只要将vpd接+5v备用电源,一旦vcc电位突然降低或断电,能保护片内ram中的信息不丢失,恢复电后能正常工作。at89c81通常采用上电自动复位和开关手动复位,我们采用的是上电复位电路ale/当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ale仍时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。要注意的是:每次访问外部存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还要输入编程脉冲()。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置ale无效。:程序存入允许()输出的是外部程序存储器的读选通信号,当at89c51由外部程序取指令(或数据)时,每个机器周期两次有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。ea/vpp:外部访问允许。欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。要注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v的编程电压vpp。xtal1:振荡器反相放大器及内部时钟的输入端。xaal2:振荡器反相放大器的输出端。时钟振荡器:at89c51中有一个构成内部振荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷振荡器一起构成自激振荡器振荡电路如图。外接石英晶体(或陶瓷振荡器)及电容c1、c2接在放大器的振荡回路中构成并联振荡电路。对外接电容c1、c2虽然没有非常严格的要求,但电容的大小会轻微影响振荡频率的高低、振荡工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pf10pf,而如果使用陶瓷谐振器建议选择40pf10pf。用户还可以采用外部时钟,采用外部时钟如图所示。在这种情况下,外部时钟脉冲接到xtal1端,既内部时钟发生器的输入端,xtal2悬空。由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。 图4 内部振荡电路 图5 外部振荡电路本设计选择的是内部时钟振荡电路。2.2电路组成2.2.1电源电路电源电路是最基本,最必要的电源部分安装,任何电路都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,其实有将近一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。如下图: 图6 电源电路图上图是一个带有桥式整流电路的电容滤波的7805稳压的稳压电路。通过变压器将220伏的交流电经过这些环节得到5伏左右的直流电压,以便提高单片机的工作电压。2.2.2振荡器电路mcs-51单片机单片机内部的振荡电路是一个反相放大器,引线 xtal1和xtal2分别为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有振荡电路,但要形成时钟,外部还需要附加电路。晶体振荡和陶瓷振荡均可采用.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。51单片机的时钟产生方式有两种,分别为:内部时钟方式和外部始终方式。利用其内部的振荡电路xtal1和xtal2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到xtal2输出的时钟信号。在at89c51单片机一般常用内部时钟方式,也就是在xtal1和xtal2之间连接晶体振荡器与电容构成稳定的自激振荡器,如下图: 晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2-12mhz之间选择。at89c51单片机在通常应用情况下,使用振荡频率为6mhz的石英晶体,而12mhz频率的警惕主要是在高速串行通信情况下才使用,在这里我用的是12mhz石英晶体。对电容无严格要求,但它在取直对振荡频率输出的稳定性、大小及振荡电路起振荡速度有一点影响。c1和c2可在20-100pf之间取直,一般情况取30pf。外部时钟方式是把外部振荡信号源直接接入xtal1或xtal2。由于xtal2的逻辑电平不是ttl的,所以还要接一个上拉电阻。2.2.3复位电路at89c51单片机的复位是靠外部电路实现的。at89c51单片机工作之后,只要在他的rst引线上加载10ms以上的高电平,单片机就能有效地复位。at89c51单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如下图:上电瞬间,rc电路充电,rst引线出现正脉冲,只要rst保持10ms以上的高电平,就能使单片机有效的复位。在应有系统中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。 图7 时钟方式和复位方式 本设计运用了上电自动复位系统。2.3 时序时序是用定时单位来描述的,at89c51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。节拍与状态我们把振荡脉冲的周期定义为节拍(为方便描述,用p表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用s表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(p1),后半周期对应的节拍定义为2(p2)。机器周期at89c51有固定的机器周期,规定一个机器周期有6个状态,分别表示为s1-s6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着s1p1、s1p2s6p1、s6p2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6mhz的时钟频率,一个机器周期就是2us,而如使用12mhz的时钟频率,一个机器周期就是1us。指令周期执行一条指令所需要的时间称为指令周期,at89c51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。at89c51的指令时序at89c51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式: 单字节指令单机器周期 单字节指令双机器周期 双字节指令单机器周期 双字节指令双机器周期 三字节指令双机器周期 单字节指令四机器周期(如单字节的乘除法指令) 下图是at89c51系列单片机的指令时序图:图8 指令时序图上图是单周期和双周期取指及执行时序,图中的ale脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ale信号两次有效,第一次在s1p2和s2p1期间,第二次在s4p2和s5p1期间接下来分别对几个典型的指令时序加以说明。单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个ale信号有效时,pc并不加1,那么读出的还是原指令,属于一次无效的读操作。双字节单周期指令:这类指令两次的ale信号都是有效的,只是第一个ale信号有效时读的是操作码,第二个ale信号有效时读的是操作数。单字节双周期指令:两个机器周期需进行四次读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。单字节双周期指令有一种特殊的情况,像movx这类指令,执行这类指令时,先在rom中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。在第二个指令周期时,则访问外部数据存储器,这时,ale信号对其操作无影响,即不会再有读指令操作动作。外部程序存储器(rom)读时序下图8051外部程序存储器读时序图,从图中可看出,p0口提供低8位地址,p2口提供高8位地址,s2结束前,p0口上的低8位地址是有效的,之后出现在p0口上的就不再是低8位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲的过度时间,这就要求,在s2其间必须把低8位的地址信号锁存起来,这时是用ale选通脉冲去控制锁存器把低8位地址予以锁存,而p2口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有效的,因而无需锁存这一地址信号。图9 外部程序存储器读时序图 从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的ale信号,还有一个psen(外部rom读选通脉冲),上图显然可以看出,psen从s3p1开始有效,直到将地址信号送出和外部程序存储器的数据读入cpu后方才失效。而又从s4p2开始执行第二个读指令操作。外部数据存储器(ram)读时序下图8051外部数据存储器读写时序图,从rom中读取的需执行的指令,而cpu对外部数据存储的访问是对ram进行数据的读或写操作,属于指令的执行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是相似的,我们只对ram的读时序进行分析。上一个机器周期是取指阶段,是从rom中读取指令数据,接着的下个周期才开始读取外部数据存储器ram中的内容。图10 外部数据存储器读写时序图在s4结束后,先把需读取ram中的地址放到总线上,包括p0口上的低8位地址a0-a7和p2口上的高8位地址a8-a15。当rd选通脉冲有效时,将ram的数据通过p0数据总线读进cpu。第二个机器周期的ale信号仍然出现,进行一次外部rom的读操作,但是这一次的读操作属于无效操作。对外部ram进行写操作时,cpu输出的则是wr(写选通信号),将数据通过p0数据总线写入外部存储。2.4 键盘及其接口技术在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与操作人员进行信息交换的常规输入设备和输出设备。键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。 键盘接口电路可分为编码键盘和非编码键盘两种类型。编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有bcd码键盘、ascii码键盘等类型。非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别由软件完成。编码键盘的特点是使用方便,键盘码产生速度快,占用cpu时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。而非编码键盘硬件电路简单,成本低,但占用cpu的时间较长。2.4.1键盘的抖动干扰由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如下图所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10100ms,此为键处理设计时要考虑的一个重要参数。图11 键盘的抖动干扰2.4.2抖动干扰的消除按键的抖动会造成按一次键产生的开关状态被cpu误读几次。为了使cpu能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。1.硬件方法 硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。下图是由r2和c组成的滤波延时消抖电路,设置在按键s与cpu数据线di之间。按键s未按下时,电容两端电压为0,即与非门输入vi为0,输出vo为1。当s按下时,由于c两端电压不能突变,充电电压vi在充电时间内未达到与非门的开启电压,门的输出vo将不会改变,直到充电电压vi大于门的开启电压时,与非门的输出vo才变为0, 这段充电延迟时间取决于r1、r2和c值的大小,电路设计时只要使之大于或等于100ms即可避开按键抖动的影响。同理,按键s断开时,即使出现抖动,由于c的放电延迟过程,也会消除按键抖动的影响 图中,v1是未施加滤波电路含有前沿抖动、后沿抖动的波形,v2是施加滤波电路后消除抖动的波形。2.软件方法 软件方法是指编制一段时间大于100ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。 图12 消抖示意图2.4.3非编码独立式键盘1.查询法接口电路现以3个按键为例,图13即为独立式键盘查询法接口电路。按键s0、s1、s2分别通过上拉电阻与cpu的数据线d0、d1、d2相连,当按键si闭合时,数据线直接接地,因而cpu读入di=0;当按键si断开时,数据线通过上拉电阻接到正电源,因而cpu读入di=1。 该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如图14所示。 采用查询法时,必须保证cpu每隔一定时间主动地去扫描按键一次,该扫描时间间隔应小于两次按键的时间间隔,否则会有按键不响应的情形。显然这种方式占用cpu时间比较多。 图13 独立式键盘结构原理 图14独立式键盘查询法程序流程图2.中断法接口电路仍以3个按键为例,图15是一个炉温控制系统的功能键分配图,s0、s1、s2分别代表自动/手动切换、炉温参数显示和炉温参数打印功能。这是在上述查询法接口电路的基础上,再把按键s0、s1、s2的数据输出线经过与非门和反相器后与8255a的选通输入信号pc4相连,8255a的pc3发出中断请求信号经中断控制器8259a与cpu的中断请求引脚相连,这是一种典型的中断法键盘接口电路。工作过程如下:当cpu对8255a初始化(8255a的a口工作于方式1 输入)后,cpu即执行主程序。当按下s0键即表示要进入自动控制状态,此时与之相连的i/o口线呈现为低电平的同时,与非门输出为高电平,经反相器变为低电平,使8255a端口a的选通输入信号pc4 有效,则pa0pa2引脚接收并存入3个按键的“0”或“1”状态,当恢复成高电平后,经tsit时间,8255a的pc3发出intra中断请求信号,经中断控制器8259a向cpu申请中断,cpu响应中断后,即转到中断服务程序中。中断服务程序依次查询按键的通断状态,当查询到是自动/手动(即s0=0)时,则转到自动/手动控制子程序的入口地址,从而使系统进入自动控制状态。如果没有键按下,则相应的i/o口线均为高电平,也不会产生中断信号,cpu继续运行主程序。 图15独立式键盘中断法接口电路键盘中断服务子程序,与查询方式相似,在保护现场后,首先调用100ms延时子程序去除抖动,然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询顺序代表了按键的排队优先级。 采用中断法时,cpu对按键而言是被动方式,在无键按下时不占用cpu时间,因而cpu有更多的时间执行其他程序。 上述分析说明:独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根i/o口线,在按键数量较多时,需要占用较多的i/o口线。比如64个按键,需要有64根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。2.4.4矩阵式键盘的结构组成1. 矩阵式键盘的结构:矩阵式键盘又叫行列式键盘,是用i/o口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。采用这种矩阵结构只需m根行输出线和n根列输入线,就可连接mn个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。2. 矩阵式键盘的组成:键盘与cpu的接口可采用并行端口8255a、锁存器或缓冲器一类。图16给出了一种88非编码矩阵式键盘的接口电路。行输出电路由行扫描锁存器74ls273、 反相器与行线x0x7连接组成,列输入电路由三态缓冲器74ls244与列线y0y7以及上拉电阻组成。x、y线的每一个交叉处跨接一个键,其键值分别是十进制数的01,02,64。该键盘的接口地址为port1。图16矩阵式键盘接口电路1) 当键盘中无任何键按下时,所有的行线和列线被断开且相互独立,输入线y0y7列都为高电平;当有任意一键按下时,则该键所在的行线与列线接通,因此,该列线的电平取决于该键所在的行线。基于此,产生了“行扫描法”与“线反转法”两种识别方法。2) 行扫描法又称逐行零扫描查询法,即逐行输出行扫描信号“0”,使各行依次为低电平,然后分别读入列数据,检查此(低电平)行中是否有键按下。如果读得某列线为低电平,则表示此(低电平)行线与此列线的交叉处有键按下,再对该键进行译码计算出键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则说明此(低电平)行没有键按下。接着进行下一行的“0”行扫描与列读入,直到8行全部查完为止,若无键按下则返回。3) 有时为了快速判断键盘中是否有键按下,也可先将全部行线同时置为低电平,然后检测列线的电平状态,若所有列线均为高电平,则说明键盘中无键按下,立即返回;若要有一列的电平为低,则表示键盘中有键被控下,然后再如上那样进行逐行扫描。 4) 键盘是计算机与操作人员进行信息交换的一种常用输入设备。 5) 键盘接口电路可分为非编码键盘和编码键盘两种类型。非编码键盘仅提供按键的通或断状态, 按键代码的产生与识别是由软件完成的,当按键数量少时,一般采用独立式键盘结构;当按键数量较多时,常采用矩阵式键盘结构。而编码键盘是采用硬件编码电路来实现键的编码,每按下一个键,键盘电路便能自动产生按键代码,编码键盘主要有bcd码键盘、ascii码键盘等类型。6) 非编码键盘的硬件电路简单,成本低,但占用cpu的时间较长。编码键盘与之相反,硬件电路复杂、成本高,但使用方便,键盘码产生速度快,占用cpu时间少。对按键抖动干扰的消除,非编码键盘一般是靠软件而编码键盘一般是靠硬件电路来实现。7) 在一般的小型单片机测控系统中主要使用非编码键盘。2.5 七段led数码显示器的结构图17 led显示原理图译码原理:将二进制代码转换成段选择码 1. 在共阴极接法中,点亮字段应接高电平,为1;例如:显示2应点亮a,b,d,e,g段,则其段选择码为01011011(顺序为dp,gfedcba)5bh. 2. 在共阳极接法中,点亮字段应接低 电平,为0:例如:显示2应点亮a,b,d,e,g段,则其段选择码为10100100(顺序为dp,gfedcba)a4h. 图18 译码驱动图 本设计采用的是共阳极接法。2.6 设计思路及其具体电路的设计电子密码锁主要是通过矩阵键盘控制的,密码用led显示器显示。电路通电后,系统复位,我们通过键盘输入4位数的密码,之后,通过扫描键盘获得输入的密码,如果输入的密码正确,则门会被打开,如果输入的密码不正确,则显示器会自动显示为0000或*,同时,如果我们之间不小心输错了密码,可以按#键,将显示器清除为0000重新输入,同时输错的次数最多只能为3次,如果再输错的话,蜂鸣器会发出响声而报警。另外,在每次输完密码后,必须按下#键,否则将无法判别输如的密码是否正确,因为只有当按下*键之后,在程序中才会跳转到密码比较代码段。这种密码锁设计较为简单,使用方便,但有一个缺点,就是断电后,密码锁和报警都不在起作用,会导致生命财产的损失。 2.7 原理图见附录第三章 系统软件设计3.1 程序框图keyin程序框图:a送r760送r7字节交换70送r6调用disp判断r7减是否等于 no长转移l1 yesp1送aa送r4a为转移 no r1送a noa送r7a与0ah异或a与0bh异或disp程序框图:3h送a开始表首指送dptra+dptr送aa送p030h送aa+dptr送aclr p2.a送p0调用delayclr p2.4p2.置调用delayp2.4置3送3送a+dptr送aa+dptr送aa送p0a送p0clr p2.clr p2.调用delay调用delayp2.置p2.置子程序返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DZ/T 0276.20-2015岩石物理力学性质试验规程第20部分:岩石三轴压缩强度试验
- DZ/T 0203-1999航空遥感摄影技术规程
- CJ/T 374-2011城镇桥梁球型钢支座
- CJ/T 262-2016给水排水用直埋式闸阀
- CJ/T 173-2002电子式出租汽车计价器磁电式传感器
- CJ/T 108-1999铝塑复合压力管(搭接焊)
- 中级社会工作者心理学试题及答案
- 软件评测师考试成功的试题与答案
- 新生儿简答试题及答案
- 全面复习2025年网络规划设计师试题及答案
- 电路分析基础(浙江大学)知到智慧树期末考试答案题库2025年浙江大学
- 全球经济2025年全球经济与贸易师考试试题及答案
- 2024 - 2025学年一年级下册道德与法治期末考试卷附答案
- 2024年湖南高中学业水平合格性考试地理试卷真题(含答案)
- 学校大型活动组织流程
- 2025猪蓝耳病防控及净化指南(第三版)
- 【课件】Unit+8+Section+B+(1a~2b)课件人教版(2024)初中英语七年级下册
- 【MOOC】压力与情绪管理-四川大学 中国大学慕课MOOC答案
- 热式质量流量计技术协议
- 公司质量异常处理单
- 国家开放大学《建筑测量》实验报告4
评论
0/150
提交评论