毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc

上传人:李司机 文档编号:7026310 上传时间:2024-04-18 格式:DOC 页数:31 大小:523.35KB
返回 下载 相关 举报
毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc_第1页
第1页 / 共31页
毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc_第2页
第2页 / 共31页
毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc_第3页
第3页 / 共31页
毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc_第4页
第4页 / 共31页
毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-红外遥控防盗电子密码锁的设计与制作.doc(31页珍藏版)》请在三一办公上搜索。

1、本科生毕业设计(论文)题目 红外遥控防盗电子密码锁的设计与制作 姓名 学号 系 别 物理系 专业 电子信息科学与技术 指导教师 职称 高级实验师 年 月 日菏泽学院教务处制目 录摘要1关键词1Abstract1Key words1引言11 系统设计211 设计理论分析21.1.1 红外通信基本原理21.1.2 红外通信标准31.1.3 红外遥控原理412 总体方案设计41.2.1总体设计41.2.2主要模块设计52 系统硬件设计与实现521 硬件结构图522 遥控发射电路设计623 本机键开锁部分624 电源部分设计725 编码解码电路82.5.1 PT2262介绍82.5.2 单电阻振荡器9

2、2.5.3 PT2272介绍926 密码存储部分的电路设计1227 报警电路设计1328本机处理与遥控处理功能选择133 系统软件设计1431应用软件设计原则1432程序设计1533遥控接收程序1534 I2C通讯子程序1635系统程序173.5.1遥控密码系统的操作方法173.5.2实现上述操作方法的程序流程图184 技术难点及解决方案1941系统抗干扰措施2042系统节电措施225 系统调试2351整体调试2352硬件单元电路调试235.2.1红外遥控器(钥匙)调试235.2.2红外遥控门锁调试2453软件调试245.3.1红外数据接收模块调试245.3.2开锁记录模块下载模块调试246

3、结论与展望24参考文献26附录1系统整体电路图26附录2 主程序清单26致谢29红外遥控防盗电子密码锁的设计与制作红外遥控防盗电子密码锁的设计与制作摘要:本文围绕红外线遥控防盗密码锁控制系统的相关的理论和实践应用进行了研究。主要由发射和接收两部分组成,应用编/解码专用集成电路芯片来进行控制操作。红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波,当按下按键时,指令编码电路产生所需的指令编码信号,指令编码信号对载体进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制后的指令编码信号;红外接收电路将红外发射器发射的红外光转换为相应的电信号,再由解码芯片进行译码,最后由驱动电路来

4、驱动单片机执行电路实现开锁、重设密码等各种指令。关键词:密码锁;单片机;红外遥控Infrared remote control anti-theft electronic code lock design and productionAbstract:This article is mainly about the infrared remote control anti-theft cipher lock control system correlation theories and the practice application.It mainly consists of transmi

5、tting and receiving two components,application specific integrated circuit chip encoding / decoding to control operation.Infrared remote control transmitting circuit is used to send through infrared light emitting diode modulation of infrared light,when the keys are pressed,command coding circuit ge

6、nerates the required instruction encoding signal,instruction encoding signal of the carrier modulation,the driving circuit for power amplification by the transmitting circuit transmits the modulated command coding signal;The infrared receiving circuit of the infrared emitter infrared light is conver

7、ted to a corresponding electrical signal,and then the decoding chip for decoding,finally by the drive circuit to drive the MCU executive circuit to realize the unlocking,reset the password and other instructions.Key words:Password lock;Microcontroller;Infrared remote control引言 随着现代人们生活水平的提高和安全意识的加强,

8、各种各样的密码锁广泛进入了人们的生活和工作。当前市场上的密码锁有以下几种形式:机械式、电子式、磁卡式、智能IC卡式、指纹式等,电子式的密码锁市场占有量最大,因为它的成本相对较低,安全性高,操作简单。但是目前市场上的电子密码锁系统大多采用的是固定键盘式的,也就是将操作键盘固定在保险箱的面板上,这就使得用户在操作时没有隐蔽性,极易被人看见使得密码不安全,而且键盘一旦遭到强行破坏,再也无法输入密码。因而操作的安全性不高。为了解决目前电子密码锁的诸多不安全问题,本文引入红外遥控技术。由于红外遥控具有许多优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码调制方式

9、及数字加密技术,而且具有功率消耗低的优点;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。所以红外线遥控是目前使用最广泛的一种通信和遥控手段。将红外遥控技术与密码技术相结合,在原有密码锁系统性能的基础上设计红外遥控密码锁系统,使用户在一定范围内的任何位置都能对保险箱进行开启,可以提高密码的安全性,克服了固定键盘式密码锁的不足。系统以AT89S52单片机为核心,利用红外遥控技术和电子密码锁技术结合,能进一步提高电子密码锁的安全性、可靠性与实用性,降低了硬件成本。1

10、 系统设计 11 设计理论分析1.1.1 红外通信基本原理 红外遥控1是单工的红外通信方式,本设计的红外遥控采用以通信方式为基础的红外遥控,而且本设计也使用了红外通信技术,故着重分析红外通信的基本原理。红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。它一般由红外发射和接收系统两部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人眼看不到的光线。红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。红外数据协会(IR

11、DA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号),通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。脉时调制(PPM)是红外数据协会(IRDA)和国际电子电工委员会(IEEE)都推荐的调制方式,本设计采用脉时调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232通信,首先产生一个同

12、步头,然后接着8位数据比特,如图1-1所示。载波信号的频率=38kHz,载波周期T=26.32us-图1-1 PPM调制波形图-t1t1t2t3二进制0二进制1-载波信号的频率=38kHz,载波周期T=26.32us,本设计使用单片机软件产生载波,取T=26us,脉冲宽度t1=10T=260us,二进制数0的脉冲串周期t2=500us,二进制数1的脉冲串周期t3=1000us。普通的红外遥控采用面向指令的帧结构,数据帧由同步码,地址码和指令码组成,指令码长度多为816个比特,传送多字节遥控协议时效率偏低,而增加指令码的长度不利于接收器同步,为此本设计选用一种面向字节的帧结构,采用类似于异步串行

13、通信的帧结构,每帧由一个起始位(二进制数0)、8个数据位和2个停止位(二进制数1)构成,如图1-2所示。每帧传送1个字节的数据,帧与帧间隔大于2ms,帧结构不含地址信息,寻址问题由高层协议解决。图1-2 数据帧结构示意图数据帖停止位数据位(8位)帖间隔起始位停止位由于红外光存在反射,因此,红外通信应采用异步半双在全双工的方式下发送的信号也可能会被本身接收工方式,即通信的某一方发送和接收是交替进行的。1.1.2 红外通信标准1993年,由HP、COMPAQ、INTEL等二十多家公司发起成立了红外数据协会(Infrared Data Association,简称IRDA),1993年6月28日,来

14、自50多家企业的120多位代表出席了红外数据协会的首次会议,并就建立统一的红外通讯标准问题达成了一致。IRDA1.0简称为SIR(Serial InfraRed),它是基于HP-SIR开发出来的一种异步的、半双工的红外通讯方式。SIR以系统的异步通讯收发器(UART)为依托,通过对串行数据脉冲的波形压缩和对所接收的光信号电脉冲的波形扩展这一编码解码过程(3/16 EnDec)实现红外数据传输。由于受到UART通讯速率的限制,SIR的最高通讯速率只有115.2kbps,也就是大家熟知的电脑串行端口的最高速率。IRDA标准包括三个基本的规范和协议:物理层规范(Physical Layer Link

15、 Specification)链接建立协议(ink Access Protocol:IRLAP)链接管理协议(Link Management Protocol:IRLMP)。1st step2nd stepFutureHID deviceApplicationHome ApplianceApplicationFuture deviceApplicationHA LLCFuture device LLCHID-IrBus LLCIrBus MACIrBus PHY图1-3 IRBUS红外线通信协议层物理层规范制定了红外通信硬件设计上的目标和要求,IRLAP和IRLMP为两个软件层,负责对链接进行

16、设置、管理和维护。在IRLAP和IRLMP基础上,针对一些特定的红外通信应用领域,IRDA还陆续发布了一些更高级别的红外协议,如TINYTP、IROBEX、IRCOMM、IRLAN和IRBUS等(见图1-3)。1.1.3 红外遥控原理红处线发射/接收控制电路均采用8051单片机来实现,电路简单,输出控制方式可选择,实用性强。体工作过程如下:发射时:如图2-2首先,将从串行发射口P3.1送出的数据反馈到P1.1口时行内部调制,再从P1.2口送出,再经过红外发射二极管发射出去,发射距离为10m。接收时:如图2-3采用与发射部分配套的红外接收头,将发射出的数据接收后送到串行口P3.0中,再由系统进行

17、确认接收数据是否与发送数据是否相符,相符则开锁,以发光二极管D2亮来表示,不相符则放弃,以发光二极管灭来表示。12 总体方案设计1.2.1 总体设计8051CPU红外接收头红外发射器键盘 复位报警器晶振电磁锁图1-4系统结构框图1.2.2 主要模块设计系统主要由红外发射块和本机处理接收模块两部分组成。其中发射模块是由MCS-51单片机、载波发生器、调制放大电路以及红外发射电路组成;本机处理接收模块2的控制核心是AT89S52单片机。外接键盘电路、红外接收电路、开锁电磁驱动电路、报警电路3和按键指示电路等如图1-5所示。单片机调制发 射红外发 射载波红外接 收单片机继电器机械锁图1-5 红外遥控

18、密码锁的组成框图2 系统硬件设计与实现 21 硬件结构图系统以单片机AT89S52为核心。系统结构框图如图2-1所示。本系统的功能设计目标应该包括以下几个方面:红外发射功能模块,红外线接收转换模块、单片机模块、蜂鸣器报警功能模块、密码存储功能模块,开锁功能模块等。下面详细介绍一下各单元的硬件电路和实现的功能。红外发射模块红外接收模块8051单片机系统AT24C02电磁锁报警模块图2-1红外遥控密码锁硬件结构图22 遥控发射电路设计遥控发射电路利用通用的红外发射管,如图2-2所示;从图中可以看出,遥控发射装置是利用8051单片机作为控制部分4,控制图中的发光二极光发射出红外线,从而使本机中的红外

19、接收部分感应,然后解码5,对照接收到的信号是否正确,如果正确就正常开锁,完成遥控开锁任务。图2-2遥控发射电路23 本机键开锁部分本机键开锁电路如图2-3所示,AT89S52作为本电路的核心6,P0口与P1.0,P1.1,P1.2外接本机键盘,P3.0口外接红外接收头,P1.3口外接报警信号放大器,用来放大报警信号,驱动扬声器,P1.7口外接开锁电磁驱动电路,P1.5外接密码选择键,EPROM内存有两密码,P2.0口用发光二极管显示按键是否按下,本电路由遥控发射器、接收器、键盘组成,本机采用了10个按键,作为密码输入键,同时也采用了遥控器开锁。有以下功能:1.当没有接收到遥控信号时,这时由键盘

20、输入密码,当5位有效密码输入正确时按“#”号确认,P1.7口输出高电平使电磁锁动作,完成开锁,同时,电路进入延时状态,延时5秒钟后,电路将自动恢复到初始闭锁状态。2.当5位有效密码输入正确,但没有按“#”号键确认时,这时电路将自动放弃,恢复到初始和闭锁状态。3.在输入5位有效密码时,必须按照先后序输入,如顺序错误或密码不对时,这时若不按“#”号确认,将无法开锁,并同时发出5秒钟的报警信号,用以提醒用户。4.若连续3次输入错误,系统会长时间报警,这时必须按复位键恢复到初始化状态。5.输入密码时,首位密码正确输入后,电路将开始自动计时,每位密码数之间的输入间隔应在3秒内。否则将输入超时处理,系统自

21、动放弃,恢复到初始状态。图 2-3本机键开锁电路24 电源部分设计本系统的电源部分使用LM7805芯片进行稳压后提供单片机5V的电压。其电源部分电路的设计如图2-4所示。该电源部分电路,使用四个1N4004二极管构成整流桥,可以输入直流或是交流9V电源,然后再通过7805稳定到5V供单片机工作。固定式三端稳压电源7805是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于LM78XX系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,电路的稳定性也比较好。图2-4 红外遥控密码电源部分的电路原理图25 编码解码电路PT2262和PT2272是

22、台湾普城公司生产的一对COMS专用编码解码芯片。本系统采用这对芯片来实现键值的编码与解码。PT2262和PT2272的振荡频率都是通过一个外接电阻进行调节。2.5.1 PT2262介绍PT2262最大可以具有12个地址位,它的数据位最大可以有6个。每一个地址位可以有接地,接电源,悬空三种状态。每个数据位可以有接地,接高两种状态。PT2262就是将地址位和数据位的状态进行编码然后输出相应的编码信号。PT2262能够满足两种工作方式:射频工作方式(RF)和红外线工作方式(IR)。由于在整个系统的遥控方式上我选用的射频的工作方式,下面详细介绍PT2262的射频工作方式。编码芯片PT2262发出的编码

23、信号由:地址码,数据码,同步码组成一个完整的码字。A0A1A21A3A4A5A6/D5A7/D4VssVccDOUTOSC2OSC1T1A11/D0A10/D1A9/D2A8/D3位码是编码波形的基本单位,可以分为AD位(地址,数据)和SYNC位(同步)。根据相应端子电平的低,高,或者悬空状态,AD位可分别置为“0”,“l”或“f”,每位波形由两个脉冲周期构成,每个脉冲周期含16个时钟周期。PT2262芯片引脚如图2-5图2-5 PT2262引脚说明:AO-A5:三态地址位;A6/D5-All/DO:三态地址位或二态数据位;T1:发射使能位;OSC1-OSC2:内部振荡外接位;DOUT:数据输

24、出位;Vcc:电源正极;Vss:电源负极。2.5.2 单电阻振荡器PT2262,PT2272都内置的振荡回路。通过在OSC1和OSC2端外接一个振荡电阻可构成一个精确的振荡器。为了确保PT2272能正确地对接收到的波形解码,要求PT2272的振荡频率必须是PT2262的发射频率的2.5至8倍。常用的振荡电阻配对如表2-1:表2-1 振荡电阻配对表PT2262PT22724.7M820k*3.3M80k*1.2M200k*说明:*一表示PT2272的电源电压为5V-15V*一表示PT2272的电源电压为3V-15V这就意味着当PT2272的工作电压低于5V时,只能选用较小的振荡电阻值。在本系统中

25、,由于用4节5号干电池供电,4节电池标准电压只为6V,在系统工作一段时间后整个系统的工作电压就会低于5V,所以我选用PT2272为200K和PT2262为1.2M的配对,用以保证系统在电压低于5V时,系统依然能够工作。2.5.3 PT2272介绍PT2272是与PT2262配对使用的一块遥控解码专用集成电路。采用COMS工艺制造,它最大拥有12位的三态地址管脚,可支持多个地址的编码。因此极大地减少了码的冲突和非法对编码进行扫描以使匹配的可能性。A0A1A21A3A4A5A6/D5A7/D4VssVccDOUTOSC2OSC1T1A11/D0A10/D1A9/D2A8/D3PT2272芯片引脚如

26、图2-6:图2-6 PT2272-L4引脚说明:AO-A7:三态地址位;DO-D3:三态地址位或二态数据位;DIN:解码信号输入;OSC1-OSC2:内部振荡外接位;VT:有效传输确认;VCC:电源正极;Vss:电源负极;由于PT2262必须与解码芯片PT2272配对使用,而市场上大量的PT2272都是4个数据位的,所以我们选用4个数据位的设计。PT2272的操作流程:上电待机模式有信号输入?码地址匹配?码地址匹配?驱动VT码地址继续匹配?码地址继续匹配?不驱动VT否否否否是是是是否图2-7 PT2272上电工作流程图上电后PT2272进入待机模式,检查是否有接收信号,如无接收信号,仍停留在待

27、机状态。否则在收到信号后,进行接收,码地址与设置的码地址进行比较。当接收地址与设置地址相互匹配时,数据存于寄存器中。当检查到连续两帧的码地址都匹配,且数据都一致时,相应的数据输出端有输出,并且驱动VT输出。当联系两帧的码地址不匹配时,VT不会被驱动,对于瞬态输出型来说,输出数据复位,而对锁存型的输出,则输出数据维持。26 密码存储部分的电路设计为了保存用户设置的密码,该系统使用AT24C02用来保存用户设置的密码,电路原理图如图2-8所示。单片机AT89S52的P3.6接AT24C02的SCLK口作为它的串行移位时,AT89S52的P3.5接AT24C04的SDA口作为它的串行数据或地址输入输

28、出。该电路要注意的是SCL、SDA必须加上一上拉电阻,阻值为10k。图2-8 AT24C02电路原理图红外遥控器(钥匙)的用户名(钥匙身份)和密码存放在AT24C02中,当需要更改或读取用户名和密码时,只需对AT24C02里的数据更改或读取。AT24C02芯片介绍:(1)在介绍AT24C02前,先介绍一下I2C总线。I2C总线使用两根信号线来进行数据传输,一根是串行数据线(SDA),另一根是串行时钟线(SCL)。它允许若干兼容器件共享总线。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。任何时刻总线只能由一个主器件控制,各从器件在总线空闲时启动数据传送,由I2C总线仲裁来决定哪个主

29、器件控制总线。I2C总线数据传输的最高速率为400kbps,标准速率为100kbps。SDA与SCL为双向I/O线,都是开漏极端(输出1时,为高阻抗状态)。因此I2C总线上的所有设备的SDA、SCL引脚都要外接上拉电阻。I2C总线的协议如下:a) 只有在总线非忙时才被允许进行数据传送。b) 在数据传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。(2)AT24C02芯片介绍。AT24C02是美国ATMEL公司生产的I2C串行E2PROM。它为可用电擦除、可编程只读存储器,自定时写周期,包括自动擦除时间不超过10ms

30、,典型时间为5ms。芯片2.7V至6V的工作电压,可擦写100万次,数据保存可长达100年,提供8脚DIP和SOIC封装。AT24C02允许在一个写周期内同时对1字节到1页的若干字节进行编程写入,一页的大小取决于芯片内寄存器的大小。a.管脚介绍:WP:写保护。将该管脚接VCC,E2PROM就实现写保护(只读)。将该管脚接地或悬空,可以对器件进行读写操作。SCL:串行时钟脚串行输入输出数据时,该脚用于输入时钟。SDA:串行数据/地址输入脚双向串行数据/地址脚,用来输入输出数据。该脚为射(漏)极开路输出,需接上拉电阻。A0A1A2:片选或页选地址输入。用于芯片寻址。AT24C02内部无连接。b.器

31、件地址的约定:主器件在发送启动命令后开始传送,主器件发送相应的从器件的地址,8位从器件地址的高4位固定为1010。接下来的3位(见图2-9)用来定义存储器的地址,对于AT24C02位无意义。最后一位为读写控制位。“1”表示读操作,“0”表示写操作。1010XXXR/W图2-9 AT24C02从器件寻址c.应答信号每次数据传送成功后,接收器件发送一个应答信号。当第九个时钟信号产生时,接收器件将SDA下拉为低,通知已经接收到8位数据。27 报警电路设计本系统设计时考虑到防盗而设计了报警电路如图2-10,由蜂鸣器发声进行报警,蜂鸣器接在CPU的引脚P1.3上,通过PNP型三极管做电流放大,因此可以通

32、过单片机控制蜂鸣器的频率及蜂鸣时间。当输入错误的密码进行开锁时,系统会报警,由P1.3口输出低电平使得PNP型三极管导通,蜂鸣器两端加电,由蜂鸣器发出1秒的报警声,当连续三次出现密码错误时,则系统会长时间报警,此举为了防止别人非法试探开锁。图2-10 报警电路28 本机处理与遥控处理功能选择本系统设计了一个自锁按键用来选择本机处理或者遥控处理,在设置密码时一定要处于本机处理状态下,而开锁则可以选择遥控开锁也可以选择本机开锁,当此按键按下时,红灯亮表示选择了本机处理,此时可以设置密码,修改密码,也可以本机开锁,而不能遥控开锁;当此开关没按下时,红灯灭选择遥控开锁,此时可以通过遥控器输入密码进行开

33、锁,在遥控开锁时不能进行本机开锁以及设置密码。3 系统软件设计 软件是整个控制系统设计的核心,它具有充分的灵活性,可以根据系统的要求而变化。在硬件结构一定的情况下,只要改变软件就能实现一些不同的功能。单片机所具有的智能功能要由软件来完成。在本系统中,软件结构采用模块化设计方法,将遥控接收器所要完成的功能分别编写和调试。所有模块调试成功以后,将各个模块连接构成单片机软件系统。这样的设计有利于程序代码的优化,而且便于设计、调试和维护。对于51系列单片机,现有四种语言支持,即汇编、PL/M,C和BASIC。BASIC通常附在PC机上,是初学编程的第一种语言。一个新变量名定义之后可在程序中作变量使用,

34、非常易学,根据解释的行可以找到错误而不是当程序执行完才能显现出来。BASIC由于逐行解释自然很慢,每一行必须在执行时转换成机器代码,需要花费许多时间不能做到实时性。BASIC为简化使用变量,所有变量都用浮点值。BASIC是用于要求编程简单而对编程效率和运行速度要求不高的场合。当前已经很少用到此语言了。PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言。它很像PASCAL,是一种结构化语言,但它使用关键字去定义结构。PL/M编译器好像汇编器一样可产生紧凑代码。PL/M总的来说是高级汇编语言可详细控制着代码的生成。但对51系列,PL/M不支持复杂的算术运算、浮点变量而无丰富的库函

35、数支持。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理程序有规范的结构,可分为不同的函数。这种方式可使程序结构化将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性编程及程序调试时间显著缩短,从而提高效率。提供的库包含许多标准子程序,具有较强的数据处理能将己编好程序可容易的植入新程序,因为它具有方便的模块化编程技术C语言作为一种非常方便的语言而得到广泛的支持,C语言

36、程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同较快地移植过来。在本系统中,由于单片机内部的运算量不大,而C语言简单,己经能够满足系统需求,所以选择C语言来编写相应代码。31 应用软件设计原则应用系统中的应用软件是根据系统功能要求设计的,应可靠实现系统的各种功能。在本系统中,软件设计要力求做到以下几点:1) 软件结构清晰,简捷,流程合理。2) 各功能程序实现模块化,子程序化。这样,即便于调试,链接,又便于移植,修改。3) 程序存储区,数据存储区要合理规划,既能节约内存容量,又使操作方便。4) 运行状态实现标志化管理。各个功能程序运行状态,运行结果以及运行要 求都要设置状态标志

37、以便查询,程序的转移,运行,控制都可通过状态标志条件来控制。5) 经过调试修改后的程序应进行规范化,除去修改的痕迹,以便于交流和借鉴,也为以后的软件模块化,标准化打下基础。6) 实现全面软件抗干扰设计。软件抗干扰是单片机应用系统提高可靠性的 有利措施。具体的软件抗干扰方法,将在第四章中介绍。下面几节将详细介绍各个模块要实现的功能以及实现方法。32 程序设计串行口初始化开始发射键按送数据到CPU串行口数据送完返回开始串行口初始化接收数据数据是否接完接收数据正确进入开锁程序不处理返回主程序图3-1遥控发射程序框图 图3-2遥控接收程序框图33 遥控接收程序遥控接收子程序要完成的功能就是不断地扫描解

38、码芯片的地址位,接收解码芯片的数据位和有效传输确认位,判断出遥控器上发射过来的相应键值。由于解码芯片的地址位在默认情况下是接地的,对于遥控器上连接在编码芯片的数据位上的键值,只要置高,那么相应的解码芯片对应的数据位也会为高,遥控接收子程序可以直接接收判断,不需要再对地址位置位。本系统中值为3,6,9,#的键值就是直接接收。对于余下的8个连接在编码芯片地址位的键值,当遥控器上的键按下后,遥控接收子程序就不断地循环置地址位为高,然后通过解码芯片的有效传输确认位来确认是不是相应编码芯片的地址位也为高。有效传输确认位输出高电平则编码芯片的相应地址位为高,记下相应地址位,推出遥控器上的键值。地址位与单片

39、机之间加入三极管PNP8550进行隔离和驱动。有效传输确认位与单片机之间加入三极管NPN8050进行隔离和驱动。所以当单片机的控制脚RA-1,RA-2,,RA-8为低时,解码芯片相应地址位为高。当到来,所以单片机读取数据位数据可以延迟一定的时间。因而遥控接收子程序中可以先处理地址位然后处理数据位数据,不会出现数据丢失。一位地址位最多需要等待30ms以确定是否有值,8位最多等待8x30ms240ms,即0.24秒,然后接收数据位数据,不会给用户造成反应迟钝的感觉,符合用户要求。34 I2C通讯子程序如前说述,本系统中由单片机AT89S52的P3.4和P3.5来分别模拟SCL(串行时钟线)和SDA

40、(串行数据线)来实现与EEPROM 24WC02IT通讯。EEPROM 24WC02的器件地址为AOH。A写操作(1)节写在字节写模式下,主器件发送起始命令和从器件地址信息(R/W位置零)给从器件,在从器件产生应答信号后,主器件发送AT24WC02的字节地址7,主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。AT24WC02再次应答。并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,AT24WC02不再应答主器件的任何请求。(2)页写用页写AT24WC02可以一次写入16个字节的数据。页写操作的启动和字节写一样。不同在于传送了一个字节数据后并不产生停止信号。主器

41、件被允许发送15个额外的字节。每发送一个字节数据后AT24WC02产生一个应答位并将字节地址低位加1,高位保持不变。如果在发送停止信号之前主器件发送超过16个字节,地址计数器将自动翻转,先前写入的数据被覆盖。接收到16字节数据和主器件发送的停止信号后,AT24WC02启动内部写周期将数据写到数据区。所有接收的数据在一个写周期内写入AT24WC02。(3)应答查询可以利用内部写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时,AT24WC02启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。如果AT24WC02正在进行内部写操作,不会发送应答信号

42、。如果AT24WC02己经完成了内部自写周期,将发送一个应答信号主器件可以继续进行下一次读写操作。(4)写保护写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写。当WP管脚接高时,整个寄存器区全部被保护起来而变为只可读取。AT24WC02可以接收从器件地址和字节地址。但是装置在接收到第一个数据字节后不发送应答信号从而避免寄存器区域被编程改写。B.读操作对AT24WC02读操作的初始化方式和写操作时一样,仅把R/W位置为1,有三种不同的读操作方式:立即地址读,选择读和连续读。(1)立即地址读AT24WC02的地址计数器内容为最后操作字节的地址加1。也就是说,如果上次读/写的操作

43、地址为N,则立即读的地址从地址N+1开始。如果N=E(对24WC02E=255)则计数器将翻转到0且继续输出数据AT24WC02接收到从器件地址信号后(R/W位置1),它首先发送一个应答信号,然后发送一个8位字节数据。主器件不需发送一个应答信号,但要产生一个停止信号。(2)选择性读选择性读操作允许主器件对寄存器的任意字节进行读操作。主器件首先通过发送起始信号,从器件地址和它想读取的字节数据的地址执行一个伪写操作。在AT24WC02应答之后,主器件重新发送起始信号和从器件地址,此时R/W位置1,AT24WC02响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件不发送应答信号但产生一个停

44、止信号。(3)连续读操作连续读操作可通过立即读或选择性读操作启动。在AT24WC02发送完一个8位字节数据后,主器件产生一个应答信号来响应,告知AT24WC02主器件要求更多的数据,对应每个主机产生的应答信号AT24WC02将发送一个8位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。AT24WC02输出的数据按顺序由N到N+l输出。读操作时地址计数器在AT24WC02整个地址内增加。这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过255,计数器将翻转到零并继续输出数据字节。35 系统程序系统上电后首先完成初始化工作,然后按照事先设定好的程序执行。本系统程序8是基于单任务机制的。这种机制的应用程序是一个无限的循环,在这循环的过程中调用相应的子程序函数来完成相应的操作。这种机制具有简单直观,易于控制的优点。程序中有以下一些设定:设定用户输入的密码一律存于发射缓冲区中。在密码修改时从发射缓冲区取出,写入AT24WC02。密码比对时将AT24WC02中的密码取出来存于接收缓冲区中,然后将发射缓冲区中的密码与接收缓冲区的密码进行比对。固定键盘处理程序的操作,包括:密码的设定和密码的比对。遥控器的操作包括:密码的比对。3.5.1 遥控密码系统的操作方法(一) 密码设置(说明:密码设置必须在固定键盘上操作)1) 先按一下门内侧的密码设定按钮,此时黄灯

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号