带红外全键盘遥控及防控系统的保险柜电子密码锁毕业论文

上传人:1777****777 文档编号:39617847 上传时间:2021-11-11 格式:DOC 页数:66 大小:708.52KB
返回 下载 相关 举报
带红外全键盘遥控及防控系统的保险柜电子密码锁毕业论文_第1页
第1页 / 共66页
带红外全键盘遥控及防控系统的保险柜电子密码锁毕业论文_第2页
第2页 / 共66页
带红外全键盘遥控及防控系统的保险柜电子密码锁毕业论文_第3页
第3页 / 共66页
点击查看更多>>
资源描述
南昌航空大学科技学院2012届学士学位论文毕业设计(论文)题目: 保险柜电子密码锁软件设计 系 别 信息工程系专业名称 电子信息工程班级学号 学生姓名 指导教师 二O一二 年 五 月 毕业设计(论文)任务书I、毕业设计(论文)题目:保险柜电子密码锁软件设计II、毕 业设计(论文)使用的原始资料(数据)及设计技术要求:设计并制作一套保险柜电子密码锁电路,使之达到如下功能:1:设计一个单片机系统,备有键盘,显示,存储器,电机驱动,无线遥控等接口电路。2:可任意设置10位以内的开门密码一个,且掉电后数据不丢失。3:可用常用密码和遥控锁开门,执行机构为一电机带动门栓进与退。 4:当出现错码开锁或强烈震动时,电脑程控密码锁立即声光报警。5根据以上要求编制相应控制软件,经仿真调试使之达到设计要求。III、毕 业设计(论文)工作内容及完成时间: 第1周-第3周:根据设计要求确定软件设计方案,并完成开题报告的撰 写工作。完成英文翻译工作。第4周-第9周:进行软件的初步编程,配合同组同学完成硬件电路的焊 接及初步调试。第10周-第14周:与硬件连接,进行软件的仿真和调试,并使软件功能 最终达到设计要求。 第15周-第18周:完成毕业论文的撰写及答辩。 、主 要参考资料:1 张迎新单片微型计算机原理、应用及接口技术.北京:国防工业出版社, 20042 王福瑞等单片微机测控系统设计大全北京:北京航空航天大学出版社,20023 Jimemez Petal. Improved PPM schemes for infrared wireless LAN J. Electronics15 Serial Infrared Link Access Protocol(IrLAP),Version 1.1. June 16,1996,IBM Corporation , Hewlett-Packard Company, Apple Computer, Inc.,Counterpoint Systems Foundry, Inc.Lettrs,1996,10.4 Serial Infrared Link Access Protocol(IrLAP),Version 1.1. June 16,1996 Corporation , 电子信息工程 学院 电子信息工程 专业类 088205242 班学生(签名): 填写日期: 2012 年 2 月 20 日指导教师(签名): 助理指导教师(并指出所负责的部分): 保险柜电子密码锁软件设计 摘要:随着国家的日益富强,人们生活水平也不断地在提高。家里的贵重物品越来越多,从而具有强大功能的保险柜便显得愈来愈重要。红外遥控电子密码锁也是保险柜的一大功臣,通过改良其还拥有强烈震动检测防盗功能,并拥有防控模块。 本系统软件由单片机最小系统、键盘扫描、LCD1602A显示、时间日期显示、掉电存储、电机控制、声光报警、防控系统、强烈震动检测系统、红外遥控等模块组成。系统能完成输入密码开锁、密码修改、遥控主机功能。除了上述基本功能外系统还有液晶显示、时间日期显示、防控设置与撤销、连续三次输入错误系统锁定、掉电密码保存、时间修改、声光提示等功能。其中时间日期显示是通过定时器Timer0溢出中断实现的,而遥控接收解码模块则是通过外部中断0实现的。本系统软件特点是在使用单片机基本知识外,还同时使用了定时器Timer0溢出中断、外部中断0以及8255A扩展端口控制、以及红外发收编码解码以及强烈震动异常检测处理等相关知识,系统内容相当的丰富,极大的巩固了我们所学的专业知识。关键词:单片机,掉电保存,液晶显示、红外遥控、防控 The Software Design of Electronic Cipher Lock for Safe Abstract:As the country has become increasingly prosperous, peoples standard of living also is increasing ceaselessly. Home valuables is increasing, which has powerful function of safe appears more and more important. Infrared remote control of electronic locks are the big hero of safes, and through the improvement it also has the strong vibration detection anti-theft function, and has a control module. The systems software is consist of SCM minimum system, keyboard scanning, LCD 1602A display, time and date display, power-down memory, motor control, alarm control system, strong vibration detection system,infrared remote contol module. The system can complete the input password of lock, password modification, remote host function. In addition to the above basic function, system is also with the function ,like liquid crystal display, time and date display, control settings and revocation , three consecutive input errors system locking, power-off password save, time changing, acousto-optic tips and other functions. The time and date display is through Timer 0 timer overflow interrupt to achieve, and the remote control receiving and decoding module is realized through the external interrupt 0. The system software is characterized in the use of single-chip microcomputer basic knowledge, also used the Timer 0 overflow interrupt, external interrupt 0 and 8255A expansion port control, as well as infrared sending and receiving the encoding and decoding ,strong vibration anomaly detection processing and other related knowledge, system content is quite rich, and greatly reinforces our learned knowledge. Keywords: microcontroller, power-down save, LCD display, infrared remote control, prevention and controlSignature of Supervisor: 目 录1 引言11.1 选题背景及其意义11.2 国内外发展现状11.3 软件设计主要工作22 系统总体设计32.1 系统设计要求32.2 系统总体设计思路32.3 系统设计框图42.3.1 系统硬件设计框图42.3.2 系统软件设计框图53 系统主机软件设计63.1 键盘模块73.2 液晶显示模块83.3 时间日期显示模块93.4 密码输入模块123.5 时间日期修改模块133.6 密码修改模块143.7 红外解码接收模块153.8 掉电存储模块173.81 数据写入173.82 数据读出173.9 电机控制模块183.10 8255扩展模块183.11 防控模块193.12 强烈震动检测模块204 系统遥控器软件设计224.1 按键扫描模块224.2 红外编码发射模块244.3 定时器中断模块255 调试275.1 keil C调试275.2 proteus仿真调试295.3 在线调试296 总 结31参考文献32致 谢33附录3460 保险柜电子密码锁软件设计1 引言 1.1 选题背景及其意义国内外许多期刊杂志都刊登过保险柜密码锁的电路,但这些电路大多是数字电路,它们功能的改变纯粹是通过电路的改变来实现。虽然它们同样可以实现密码输入和修改等功能,但是如此一来,密码破解便更加的容易,电路也变得越来越复杂,故障率也越来越高。本系统是针对这个问题而设计的,除了拥有它们密码输入、密码修改等基本功能外,还拥有强大的扩展功能。比如本系统拥有掉电存储功能、强烈震动检测功能、红外遥控等功能,并且它们功能的实现主要是通过编程实现的。本系统迎合了目前嵌入式的大趋势,通过单片机及其外围电路以及其强大的编程处理功能实现了保险柜密码锁的一个划时代的更新。本设计还采用了红外遥控技术,并拥有防控系统,这一点使得保险柜的安全系数大大提高。另外还配有强烈震动检测装置以及意外报警等功能,更加能够确保人们贵重物品保管的安全性。红外遥控是目前最易实现的几种遥控技术之一,其一般通过脉冲调制占空比来编码解码,一般采用32位编码,还是比较可靠的。红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。所以红外线遥控是目前使用最广泛的一种通信和遥控手段之一。1.2 国内外发展现状保险柜电子密码锁国内外发展现状 当今智能保险柜电子密码锁发展已经到了非常高的境界,由于电子元件特别是单片机应用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人眼识别,指纹识别,人声识别基本上电影上有的现实也有。在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也会越来越被大众采用,由于它的功能、安全是弹子锁无法相比的。发展前境是非常大的。1.3 软件设计主要工作 根据已经设计好的硬件,结合所需实现的功能,按照模块化设计编程的思想依模块将各个功能分别实现。并将所有模块程序组合起来,作适当调整与修改,最终得出符合系统要求的系统软件。系统软件设计主要有以下几个难题有待解决:1、 LCD液晶显示问题:如何在1602A准确稳定地显示成为本设计显示模块的一大问题。2、 掉电存储模块93C66数据读取和写入的问题:如何读取、写入EEPROM中的问题是密码验证、密码修改模块的主要技术之一。3、 矩阵键盘输入问题:键盘扫描与键盘识别并对应做出处理是终端输入的最重要的一个技术环节,也是系统实现功能的不可或缺的环节。4、 8255A扩展模块I/O口的控制问题:如何控制8255A的I/O口的输入输出成为相关电路控制的重要问题。5、 电机控制问题:如何控制L298N进而控制电机,即锁的开关是本次设计的另一大难关之一。6、 防控系统问题:如何通过按键设置布防、撤防也是本系统的一大难题。7、 红外遥控问题:红外收发编码解码亦是本次设计有待解决的一大问题。2 系统总体设计2.1 系统设计要求本课题的设计要求和技术指标:1:设计一个单片机系统,备有键盘,显示,存储器,电机驱动,无线遥控等接口电路。2:可任意设置10位以内的开门密码一个,且掉电后数据不丢失。3:可用常用密码和遥控锁开门,执行机构为一电机带动门栓进与退。4:当出现错码开锁或强烈震动时,电脑程控密码锁立即声光报警。5根据以上要求编制相应控制软件,经仿真调试使之达到设计要求。2.2 系统总体设计思路根据系统的设计要求,需要解决显示、键盘终端输入、掉电存储、电机控制、无限遥控问题,产生如下方案:1 硬件:主机是以STC90C516RD+单片机为核心,以4X4矩阵键盘和LCM(1602A)液晶为终端输入输出,以SM0038及INT0等构成红外接收模块,以93C66及周边电路构成掉电存储电路,以水银开关为主构成防震模块,以L298N和直流电机为主构成锁功能模块,并通过C51编程最终实现系统要求。遥控器以STC90C516RD+为核心,以2X8键盘为输入,配合PH302、单片机内部电路以及NPN三极管放大电路构成红外发射编码模块。2 软件:以Keil uVision3为软件平台,以C语言为编程语言,以STC_ISP_V483及STC开发板为烧录和调试平台,最终得以实现结果。主机系统软件主要由中断和主程序两部分组成。程序中使用了两个中断:定时器Timer0溢出中断和外部0中断;其中定时器Timer0溢出中断主要实现年、月、日、时、分、秒、星期的液晶显示控制。外部0中断主要是处理从遥控器接收过来的信号。主程序实现键盘扫描、LCD显示、按键操作控制、电机控制、震动检测、以及意外声光报警、红外接收解码等等。遥控器主要通过按键扫描程序实现按键识别,对应按键编码并发射。主机遥控器按键功能完全相同,见表2-1。表2-1 系统按键功能按键主要功能0-90-9数字输入10返回显示时间界面11撤防12输入密码13修改时间14密码设置,可重置为0-10位密码15布防2.3 系统设计框图2.3.1 系统硬件设计框图总体设计按照模块化设计的思路,分为主机和遥控器电路。其中主机电路主要是以STC90C51RD+为核心,配备以及结合LCM、水银开关、晶振、手动拉低电路、地址锁存器及8255A、93C66、步进电机、555多谐振荡电路、自制4X4小键盘、LED组、红外接收PH302等构成显示模块、测振模块、晶振模块、手动复位模块、I/O口扩展模块、掉电存储模块、电机(锁)模块、警铃模块、键盘输入模块、警灯模块、接收模块等等,如图2-1所示。遥控模块以STC51为主体,由红外发射模块、晶振模块、手动复位模块、键盘模块构成,如图2-2所示。STC单片机LCD显示模块测震模块晶振模块复位模块8255AI/O口扩 展模 块键盘模块警灯模块接收模块存储模块警铃模块电机模块图2-1 硬件主机框图STC-51单片机红外发射模块晶振模块手动复位模块键盘输入模块图2-2 硬件遥控器框图2.3.2 系统软件设计框图系统软件由主机软件和遥控器软件组成。主机系统软件主要由初始化模块、键盘输入模块、液晶显示模块、红外接收解码模块、时间日期模块、密码输入模块、密码修改模块以及时间日期修改模块组成。遥控器软件主要由初始化模块、键盘输入处理模块以及红外编码发射模块组成。系统框图具体如图2-3所示。 初始化模块系统软件框图主机软件框图遥控器软件框图 键盘输入处理模块 液晶显示模块 红外接收处理模块 时间模块密码验证及锁控模块 密码修改模块 防控模块 初始化模块 键盘输入处理模块 红外发射处理模块。图2-3 系统功能框图3 系统主机软件设计系统软件由主机软件和遥控器软件组成。系统主机软件主要由初键盘输入模块、液晶显示模块、掉电存储模块、红外接收解码模块、时间日期模块、密码输入模块、密码修改模块以及时间日期修改模块组成。遥控器软件主要由初始化模块、键盘输入处理模块以及红外编码发射模块组成。其中初始化模块、键盘输入处理模块不管主机还是遥控器都是一致的,而红外编码发射是遥控器独有的,其他是主机的,主机总流程图分别如图3-1。 显示日期和时间 中断初始化 从93C66中读取密码检测是否有键按下? 解除防控 修改日期和时间修改密码密码输入模块 开始对LCM执行初始化否 红外接收处理模块输入密码显示时间日期布防确认按键撤防模块布防模块时间日期显示模块时间修改模块是10键按下11键按下12键按下13键按下14键按下密码修改模块图3-1 主机总流程图3.1 键盘模块键盘模块主要采用行扫描法,判断键盘中有无按键按下:行全置高,列全置0;为了提高MCU的资源利用,先扫描有没键按下,若无则继续扫描,若有再通过对比对应键值从而确定哪个按键按下,以节省不必要的程序执行时间。键盘如表3-1,按键行地址如表3-2,按键对应键值如表3-3,键盘模块主要函数如表3-4。 表3-1 系统主机按键分布0123456789111213141516 表3-2 系统主机按键键值分布第一行EF第二行DF第三行BF第四行7F表3-3 系统按键键值分布P23P22P21P20P24E7EBEDEEP25D7DBDDDEP26B7BBBDBEP27777B7D7E 按键模块遵循图3-1所示流程图进行键盘扫描以及键盘识别并返回键号。先置P2口为0xF0,扫描P2口,判断P2口是否还是0xF0,若否则键抖延时再次确认,若仍然不是0xF0,则确实有键按下。此时,将P2口的值与各按键键值进行比较,若与某键键值吻合,则确认该键已按下,并返回键号。表3-4 键盘输入模块基本函数及其功能键盘输入模块函数功能char keypad_scan()键盘扫描,判断某列有无键按下uchar gotkeyno()确认某键按下并返回键号P2口置0xF0,扫描P2口 P2口值是否改变P2口值是否改变延时去抖P2口值与键值比较并返回键号 开 始否否是是图3-2 键扫及按键确认流程图3.2 液晶显示模块 LCM1602A是一个2X16的LCD显示器模块,除了显示部分外,还另外包含了一颗HD44780的显示控制器。其中HD44780显示控制器主要由显示数据存储器DDRAM、字符生成器CGROM、字符生成器CGRAM、地址计数器AC、忙碌标志BF、五部分组成。其中DDRAM的存储位置如表3-5所示,LCM1602指令码及其功能如3-6所示,LCM1602A各引脚功能及与单片机关联如表3-7所示,液晶显示模块基本函数如表3-8所示。表3-5 DDRAM存储位置位置12345678910111213141516第一行000102030405060708090A0B0C0D0E0F第二行404142434445464748494A4B4C4D4E4F表3-6 1602指令码及其功能指令码功能0x01清屏0x38双行显示,8位方式传送和接收数据,5X7点阵字型0x0C开LCM显示屏,光标不显0x08关屏0x06每显示一个字后,LCM显示屏的字型不变,光标右移表3-7 1602各引脚分布、功能及连接引脚号引脚名功能与单片机关联1VSS接地端(GND)GND2VDD电源端(+5V)VCC3VO亮度调整VCC4RS选择寄存器,0为指令寄存器,1为数据寄存器P255R/W读写选择端,0写入LCM数据,1读取LCM数据P266ELCM启用信号P277DB0-DB7数据总线(输入输出)P10-P17表3-8 LCM1602A主要函数及其功能所在模块函数功能LCD显示模块void delay( uchar xms)xms延时程序void LCD_busy( )1602忙标志和查询当前AC地址Void LCDWCmd(uchar cmd)1602写入控制字void LCDWRdata(uchar dat)1602写入数据VoidDisplayonechar(uchar x,uchar y,uchar m )在第x行第y列显示mvoid Displaynum(uchar x,uchar y,uchar num)在第x行第y列显示两位数字numvoid Displaystring(uchar x,uchar y,uchar *p )在第x行第y列显示字符串void LCDInit( )LCD初始化3.3 时间日期显示模块时间日期显示模块中时间更新主要是通过中断实现的,中断时间为50ms,当时间滴答Ticks由初始值0加为20时,即中断20次时刚好经过了一秒,此时秒钟加1,显示刷新时间;当秒钟加到60时秒钟重置初值0,分钟加1,显示刷新时间;当分钟加到60时,分钟重置0,小时加1,显示刷新时间;当小时加到24小时时,小时置初值0,日期天加1,显示刷新日期;当日期加到超过当年当月最大日期时,日期置初值1,月份加1,显示刷新日期;当月份加到13时,月份恢复初值1,年份加1,显示刷新日期。具体如图3-3所示流程图。中断函数(时间日期显示模块)所使用函数主要函数如表3-9所示,星期显示流程图如图3-4。中断使用标志INTbz来判断中断是否完成,以避免主函数中其他函数与中断函数产生冲突。中断开始时INTbz置0,结束时置1,主函数初始将INTbz置1。当主函数中调用耗时较长且有可能与中断产生冲突函数运行时首先判断INTbz标志位是否为1,若为1则表示中断完成或还未进行中断,即可以正常进行函数执行。是否是 中断初始化中断标志INTbz置0Ticks是否为20?否时间滴答重置0秒数置0秒数置0秒数是否为60?是是分钟是否为60?秒数加1否分钟加1否分钟加1时是否为24?小时置0日期加1日是否超出当年月的日最大值?月份是否超过12否是是否中断返回开 始日期置0月份加1月份置0年份加1中断标志INTbz加1图3-3 时间日期更新流程图对应位置显示年月日判断当年是否为闰年?2月天数更新为29天是Days为以2000年为基准累积年周余数,并除七取余判断当年是否为2000?否否判断当月是否为1月?Days加上当年本月以前月周余数除7取余是Days加上当月日期除7取余是否星期为星期(Days+1)对应位置显示星期开 始返 回 图3-4 日期显示模块流程图表3-9 时间日期显示模块流程图时间日期显示模块函数功能void display_time( )时间显示void display_date( )日期星期显示void IntInit( )中断初始化void Timer0_ISR(void) interrupt 1 using 1中断计数更新时间日期3.4 密码输入模块错误次数+1,轻微报警键盘获取密码并暂存从93C66获取设定密码 输入与密码位数是否相同?密码输入输入与密码是否完全吻合? 提示密码输入成功,并开锁是是否否 错误次数是否为3?否紧急报警,锁定5分钟,并错误次数清0返回主程序 13号键按下当按下C键,判断密码输入次数标志mimabz是否为3,若是则紧急报警并锁定5分钟,若不是则提示“Input Password:”,进行密码输入。待密码输入完成,判断输入密码位数与从93C66中获取的密码位数是否相同。若不同则轻微报警,mimabz加1并返回mimabz判断;若相同则进行密码比对,吻合则开锁并提示“Right”,不吻合则轻微报警,mimabz加1并返回mimabz判断。具体流程图如图3-5,所用到基本函数及其功能见表3-10。图3-5 密码输入流程图表3-10 密码输入模块基本函数密码输入模块函数功能uint getsecret(uchar x,uchar y)密码输入子函数:获取一位输入密码并显示void get_password( )输入密码读取并暂存函数uint check_password( )密码核对uint input_newpassword( )新密码输入void openlock( )开锁void Alarm_input_error( )输入声光报警Alarm_jinji_error( );紧急声光报警3.5 时间日期修改模块按下D键即可进行时间修改,每当输入一位0-9数字,如不符合实际则输入报警,若符合则光标移入下一位数字所在位置,继续输入。时间修改流程图如图3-6,日期修改类似时间修改,基本函数及其功能如表3-11。开 始输入小时十位数小时十位数是否大于2?输入小时个位数小时是否大于23?输入分钟十位数分钟十位数是否大于59?输入分钟个位数分钟是否大于59?输入秒钟十位数秒钟十位数是否大于5?输入秒钟个位数秒钟是否大于59?时间修改成功输入报警否否否否否否是是是是是是是是是返回主程序图3-6 时间日期修改流程图表3-11 时间日期模块基本函数及其功能时间日期修改模块函数功能uint gettime(uchar x,uchar y)时间修改子函数:获取一位输入时间并显示void display_time( )时间显示void display_date( )日期显示void Alarm_input_error( )输入有误,警铃响一声,警灯亮一下以示警告3.6 密码修改模块按下E键,进入密码修改模块。首先输入密码,跟密码输入模块类似,输入错误返回输入,连续三次错误输入则紧急报警;若输入正确则进入密码修改界面。密码修改时要输入两次新密码,若前后两次输入密码吻合,则密码修改成功并提示密码修改成功。密码修改模块具体流程图如图3-7所示,基本函数及其功能如表3-12。提示密码修改错误开 始密码输入模块新密码输入是否输入正确?新密码再次输入两次输入是否一样?密码修改成功并提示否是是否时间日期显示返回主程序图3-7 密码修改流程图表3-12 密码修改模块基本函数及其功能密码修改模块函数功能uint getsecret(uchar x,uchar y)密码输入子函数:获取一位输入密码并显示*void get_password( )输入密码读取并暂存函数uint check_password( )密码核对函数uint input_newpassword( )密码修改函数,设置有真假返回void Alarm_input_error( )输入内容有误,警铃响一声,警灯亮一下以示警告Alarm_jinji_error( );警急声光报警3.7 红外解码接收模块解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以 0.56ms 的低电平开始,不同的是高电平的宽度不同,“0”为 0.56ms,“1”为 1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从 0.56ms 低电平过后,开始延时,0.56ms 以后,若读到的电平为低,说明该位为“1”,反之则为“0”,为了可靠起见,延时必须比 0.56ms 长些,但又不能超过 1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms 最为可靠,一般取 0.84ms 左右均可。根据码的格式,应该等待 9ms 的起始码和 4.5ms 的结果码完成后才能读码。红外解码程序时是通过外部0中断中实现的,将红外接收器的SM0038的输出脚3接到INT0,每当来一个下降沿,外部0中断便被触发。外部0中断每次接收一位数据,并通过判断占空比来判断接收的是0还是1。当外部0中断触发后,通过延时0.84ms之后INT0是否仍为低电平来判断所接收数据是否是0,每接收完一位后位接收计数标志JSbz则加1,若JSbz为32则接收完毕,否则继续接收。带接收完毕通过解码判断是哪个按下,从而做出相应操作。具体流程图如图3-8所示。代码如下:void ex0( ) interrupt 0/外部0中断,接收数据 if(JSbz33)/若接收位小于33则继续接收 delayus(840);/延时0.84ms,判断INT0是否为1,若是则接收为0 if(INT0=1) JSszJSbz=0; else JSszJSbz=1; JSbz+; else/若接收完成,标志位JSbz恢复初值,并确定是哪个键按下 JSbz=0; Uchar j=0,i; for(i=0;i16;i+) while(JSszj=JMszij&(j33) j+; if(j=32) keyno=i; keyprocess(); 开 始INT0下降沿外部0中断开始JSbz是否为32?延时0.84ms接收正确?无操作判断INT0是否为1?接收位为0JSbz加1接收位为1确定按键执行操作否是否是否是 中断返回图3-8 红外接收解码操作3.8 掉电存储模块掉电存储模块主要由AT93C66组成。AT93C66是一片128words的串行式EEPROM。AT93C66的操作电压只要2.7V到5.5V,数据读取与写入时只要通过AT93C66的SK、DI、D0即可。写入AT93C66的数据可以维持100年的时间,而且AT93C66可以反复地清除后再重新写入100万次。AT93C66各引脚功能、和控制器连接以及相应置0置1操作如表3-13所示。表3-13 AT93C66各引脚分布、功能及相应操作引脚号引脚名功能与控制器连接置0操作置1操作1CS片选PA3PA &= 0xF7PA |= 0x082CLK时钟输入PA2PA &= 0xFBPA |= 0x043DI串行数据输入端PA1PA &= 0xFDPA |= 0x024DO串行数据输出端PA0PA &= 0xFEPA |= 0x015VCC+5V+5V无6NC不接不接7ORG接低为8位,为高为16位接地8GND地接地3.81 数据写入向93C66写入8位数据:片选置高,写允许,向93C66写入写指令,如果为输入数据则在一个脉冲到来之时向93C66写入数据,当忙检测到不忙时则写禁止。数据写入流程图如图3-9所示。3.82 数据读出从93C66读入8位数据:片选置高,读数据指令写入93C66,每到来一个脉冲则从93C66读入一个数据,依次取8位数据,然后片选置低,最后返回所读数据。开 始是否忙碌?写允许,片选依脉冲写入8位写禁止是否返 回图3-9 数据写入流程图3.9 电机控制模块电机控制模块主要是为了实现锁模块,其驱动芯片为L298N,L298N控制电机工作原理如表3-14所示,L298所用到引脚功能、其与控制器连接、置0、置1如表3-15所示。电机转动与停止的控制:当ENA置1,IN1、IN2均置0时电机停止转动,IN1、IN2均置1时电机转动。表3-14 L298N与直流电机工作原理ENAIN1IN2电机状态101转动00停转表3-15 L298N各引脚分布、功能及相应操作引脚号引脚名功能与控制关联置0操作置1操作5IN1输入端1PA4PA &= 0xEFPA |= 0x107IN2输入端2PA5PA &= 0xCFPA |= 0x206ENAIN1、IN2输入使能端PB0PB &= 0xFEPB |= 0x012OUT1输出端1桥点A无3OUT2输出端2桥点B电机控制模块函数如下:void openlock()/电机转动,开锁 PB |= 0x01;/ENA置1,即IN1、IN2输入有效 PA &= 0xEF;/IN1置0 PA |= 0x20;/IN2置1,电机转动 void openlock()/电机停止转动 PB |= 0x01;/ENA置1,即IN1、IN2输入有效 PA &= 0xEF;/IN1置0 PA &= 0xCF;/IN2置1,电机转动 3.10 8255扩展模块扩展模块电路由单片机和地址锁存器74LS273以及8255A共同组成的51单片机并行I/O口扩展电路,扩展原因是并行I/O口可能不够用(基于考虑到可能扩展电话报警模块)。8255各主要输出引脚功能及其连接如表3-16。8255A各口绝对地址如下:#define PA XBYTE0x7FFC/A口地址#define PB XBYTE0x7FFD/B口地址#define PC XBYTE0x7FFE/B口地址#define CON XBYTE0x7FFF/控制口地址表3-16 8255A各引脚分布、连接及相应操作引脚连接置0置1PA093C66_DOPA &= 0xFEPA |= 0x01PA193C66_DIPA &= 0xFDPA |= 0x02PA293C66_CLKPA &= 0xFBPA |= 0x04PA393C66_CSPA &= 0xF7PA |= 0x08PA4L298_INT1PA &= 0xEFPA |= 0x10PA5L298_INT2PA &= 0xCFPA |= 0x20PA6555_RPA &= 0xBFPA |= 0x40PB0PA5PB &= 0xFEPB |= 0x01PC7水银开关PC &= 0x7FPC |=0x808255A方式控制字为0x88,其具体意义如表3-17。表3-17 8255A各引脚分布、连接及相应操作A组控制B组控制D7D6D5D4D3D2D1D010001000方式选择控制字1有效A组工作方式0A口为输出口C口高四位为输出B组工作方式0B口为输出C口低四位为输出3.11 防控模块当15键按下,首先显示密码输入界面,当且仅当密码输入正确后方可布防,标志位operation置为15,其密码输入过程如密码输入模块一样,这里不再重述。当11键按下,跟15键类似,只不过其最终操作是解除布防,置operation为0。待防控系统启动后,若不按11键正确解除防控状态,按下任意键均报警。这点可以通过在每个按键的操作函数操作之前判断operation是否是15来实现,若是则报警,不是则继续执行。布防系统简要流程图如图3-10,解防系统流程图就不再赘述了。错误次数+1,轻微报警键盘获取密码并暂存从93C66获取设定密码 输入与密码位数是否相同?密码输入输入与密码是否完全吻合? 提示密码输入成功,并设防是是F键按下否否 错误次数是否为3?否紧急报警,锁定5分钟,并错误次数清0返 回是图3-10 防控系统模块设置流程图3.12 强烈震动检测模块强烈震动检测主要通过水银开关来控制,当保险柜强烈震动时,水银开关闭合,8255A的PC7便被强制拉低。系统检测到PC7为低,则报警。其流程图如图3-11。其中PC7的控制对应PC口控制如表3-18。表3-18 震动检测位操作位 位0操作位1操作PC7PC &= 0x7FPC &= 0x80之所以通过控制PC口来控制PC7,而不直接操作PC7,是因为单片机外部寄存器不能直接进行位访问。检测具体内容及相应操作如下代码:while(PC&0x7F)/若PC7为低,即检测到强烈震动时,紧急报警5分钟 Alarm_jinji_error( );/紧急报警 delays(300);break;/紧急报警5分钟后跳出死循环 检测PC7口状态PA7是否为0?紧急报警否是开 始图3-11 强烈震动检测流程图4 系统遥控器软件设计系统遥控器软件设计主要根据其硬件电路以及设计要求,主要包含三个模块,即2X8键盘扫描模块、红外编码发送模块、定时器中断计时模块组成。当遥控器有键按下时,系统通过键扫确认是哪个键按下,从而对应查表查出其编码,并根据脉冲调制占空比不一样对0,1进行再编码,通过定时器Timer0溢出中断计时,在相应时间内发送脉冲信号。其整体流程图如图4-1。 开始 中断初始化 红外编码发射模块检测是否有键按下?否确认按键是中断返回图4-1 遥控器机总流程图4.1 按键扫描模块本遥控器按键采用2X8键盘式按键,按键如图4-2所示。按键扫描先将P10、P11置1,列全部置0,判断P0、P1口值是否变化,若无变化则继续扫描。当发生变化时,将第一行置0,其他全部置1,继续扫描,若P0、P1口值发生变化,则延时去键抖,继续扫描,若P1、P2口值确实发生变化,则将P0口的值与第一行对应键值比对,若配对则返回键号。同理扫描第二行,但不同的是,若第二行键按下则返回的键号应该为i+8。P00P01P02P03P04P05P06P07P10P110123456715141312111098具体流程图如图4-3。图4-2遥控器键盘分布开 始 行置1,列全置0P0、P1口值变化? 第1行置1,其余行列置0P0、P1口值变化? 与键值表比对,返回键号 延时去键抖Key=P0 延时去键抖P0、P1口值变化? 第2行置1,其余行列置0 延时去键抖P0、P1口值变化? 与键值表比对,返回键号Key=P0 延时去键抖P0、P1口值变化? 延时去键抖P0、P1口值变化?是否否是是是否否否否是是图4-3遥控器总流程图4.2 红外编码发射模块遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以PH303组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms的组合表示二进制的“0”;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms的组合表示二进制的“1”,其波形如图 4-4 所示。上述“0”和“1”组成的 32 位二进制码经 38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图 4-5 所示。当一个键按下超过 36ms,振荡器使芯片激活,将发射一组 108ms 的编码脉冲,这 108ms 发射代码由一个起始码(9ms),一个结果码(4.5ms),低 8 位地址码(9ms18ms),高 8 位地址码(9ms18ms),8 位数据码(9ms18ms)和这 8 位数据的反码(9ms18ms)组成。如果键按下超过 108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。遥控编码发射简要流程图见图4-6,具体代码见附录1。 图4-4 遥控码的0和1图4-5 遥控信号的周期性波形开 始是否 发送“1000” 发送“10”是否发送完?发送位是否为0? 按位发送脉冲 按键按下,获取键号 查表查到对应键编码否是返 回图4-6 遥控编码简要流程图4.3 定时器中断模块 系统遥控器软件发送脉冲通过定时器Timer0溢出中断定时560us,若发送位为0,则0标志位flag0置1,此时中断以时间间隔56
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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