电子信息工程毕业设计 文献综述 开题报告】红外遥控电子密码锁设计—软件设计

上传人:r****d 文档编号:124577716 上传时间:2022-07-25 格式:DOC 页数:63 大小:87KB
返回 下载 相关 举报
电子信息工程毕业设计 文献综述 开题报告】红外遥控电子密码锁设计—软件设计_第1页
第1页 / 共63页
电子信息工程毕业设计 文献综述 开题报告】红外遥控电子密码锁设计—软件设计_第2页
第2页 / 共63页
电子信息工程毕业设计 文献综述 开题报告】红外遥控电子密码锁设计—软件设计_第3页
第3页 / 共63页
点击查看更多>>
资源描述
【电子信息工程毕业设计+文献综述+开题报告】红外遥控电子密码锁设计软件设计 (20_ _届)本科毕业设计红外遥控电子密码锁设计软件设计摘 要 目前,具有报警功能的电子密码锁,正逐步取代传统的机械密码锁。电子密码锁在性能和技术方面都有了很大的进展,例如:克服了传统的机械密码锁密码少,可靠性不足和操作不方便等缺点。本文设计了一种基于单片机STC89C52的红外遥控电子密码锁。在该设计中,采用了红外线作为传输介质,因为它具有信息传输可靠,抗干扰能力强等特点。这种密码锁有两种类型的输入设备,一个是安装在电子密码锁上的4 * 4矩阵键盘,另一个是红外遥控器。具有开锁和更改所设定的密码等功能。操作时,LCD1602可以显示有关信息。在介绍了红外遥控编码和解码的原理,4*4矩阵键盘的工作原理,STC89C52内部EEPROM的应用以及LCD1602显示屏的初始化和工作原理等的基础上,本文详细叙述了软件的设计要点以及方法,同时给出了主程序和几个主要子程序的流程图和代码。子程序主要包括红外遥控子程序和4*4矩阵键盘子程序。关键词:单片机 电子密码锁 红外遥控 The Design of Electronic Code Locks Based on Infrared Remote ControlSoftware DesignAbstract码At present, key-pad electronic code lock with alarming function is to gradually replace the traditional mechanical code lock. Key- pad electronic code lock makes a great progress in terms of performance and technology, for instance, overcoming the shortcoming of the traditional mechanical code lock which contain few password , lack of reliability and inconvenient operation. This paper introduces a type of remote-controlled electronic code lock based on the chip of 80C52. This code lock have two input devices, one is a 4*4 matrix keyboard installed on the code lock. Another is a remote controller . In the design, we adopt the infrared ray as the medium, because of the reliable transmission of information,and the strong anti-interference ability. We can use either of them to open the lock or change the password we have set. when you are operating, LCD1602 could display the information. This paper first introduce the encoding and decoding theory of infrared remote control, the working principle of the 4*4 matrix keyboard, STC89C52 internal EEPROM applications, and LCD1602 initialization and working principle, and so on .Then the design of software is described in detail. The flowchart and code of the main program and major subroutine such as infrared remote control subroutine and 4 * 4 matrix keyboard subroutine are shown.Keywords: MCU Electronic code lock Infrared Remote-control 目录摘 要IIIAbstractIV1 绪论11.1课题的来源11.2课题的意义11.3国内外发展现状11.4课题研究的主要内容22方案设计与总体设计32.1总体方案的设计32.1.1总体方案的硬件设计32.1.2总体方案的软件设计42.2硬件设计简述52.2.1单片机主控模块52.2.2 红外遥控模块52.2.3 4*4矩阵键盘模块62.2.4 LCD1602液晶显示模块62.2.5 报警模块72.2.6 电源模块72.3方案评价73系统软件设计93.1主程序设计93.2红外遥控模块软件设计93.2.1 红外通信基本原理及标准93.2.2 红外遥控系统及原理103.3 LCD1602液晶显示模块软件设计133.4 STC单片机内部EEPROM及ISP的应用143.4.1 EEPROM存储器143.4.2 ISP特殊功能寄存器153.5 4*4矩阵键盘模块软件设计163.5.1 4*4矩阵键盘的流程图及功能163.5.2 4*4矩阵键盘的工作原理173.6 报警器模块软件设计173.7 系统调试183.7.1 程序编译183.7.2 程序下载184结论20参考文献21致谢22附录23附录图1 电路原理图23附录图2 PCB板24附录图3 实物图25附录4 程序261 绪论随着人们生活的提高和安全意识的加强,在日常生活中出现了各式各样的密码锁。社会科技在不断地地进步,密码锁也经历了一代又一代。密码锁已经从传统的机械锁发展到了磁性锁,电子锁,声控锁等等,这些锁是在传统机械锁的基础上,加上了不同的密码,不同的磁场,不同的声音等来控制锁的开启。这些密码锁保密性高,使用灵活性强,安全系数高,在很大程度上克服了传统机械锁的缺点,使得人们对自身的财产安全有了更多的保障。但是这些密码锁不能很好的实现远距离遥控控制,比如声控锁在进行远距离遥控时稳定性不高,不能进行很正确的远距离控制,一定程度上限制了这些密码锁在日常生活中普及和推广。为了解决远距离控制的问题,红外遥控电子密码锁的研究普遍受到人们的重视和关注。红外遥控电子密码锁在一定程度上可以解决传统机械锁和一般电子密码锁存在的问题,具有很大的研究价值。1.2课题的意义 红外遥控是目前使用最广泛的一种通信和遥控手段,采用红外线作为传输媒介进行数据通信是一种既方便又经济实用的选择,在小型移动设备中得到了广泛的应用。在许多单片机应用系统中,常常利用非电信号传送信息以实现遥控的功能。而红外通信具有传输可靠性高、实施方便、控制简单等特点,是一种较为常用的通信方式。该系统以单片机为核心,结合红外遥控技术,配以相应的硬件电路,由各模块共同作用实现各种功能。红外遥控电子密码锁解决了传统密码锁和一般的电子密码锁的不足,操作方便,提高密码锁的可靠性和安全性,实现了远距离控制技术,并且能够很稳定的实现远距离控制技术,还具有密码预置、误码报警、耗电省等功能,基本可以满足用户的需要,起到防盗的作用,非常适合办公室、住宅等用锁的要求,具有很好的开发和研究价值。密码锁的发展大致可以分为四个阶段:1、木质锁;2、机械锁;3、普通的电子密码锁、磁片密码锁、EP卡锁;4、未来的家用电子密码锁、遥控电子密码锁、以及用于特定场合的安全密码锁。目前,在日常安全范围领域,具有防盗报警功能的电子密码锁逐渐替代了传统机械锁,在性能上和技术上都大大提高了。随着大规模集成电路技术的发展,特别是单片机的出现以后,它在保留了电子密码锁原有的一些功能的同时,对这些电子锁进行了智能化管理,这样的产品体积大大减小了,成本也大大降低了,也进一步提高了密码锁的 安全性、可靠性。红外遥控技术在遥控方式上大体经历了从有线到无线的超声波、从振动子到红外线、再到使用总线的微机红外遥控这样几个阶段,红外遥控技术慢慢变得成熟,运用在各方面。目前,红外线遥控是使用最广泛的一种通信和遥控手段,采用红外线作为传输媒介进行数据通信是一种既方便又经济实用的选择,在小型移动设备中得到了广泛的应用。 红外遥控电子密码锁系统大致以单片机为核心,结合红外遥控技术,配以相应的硬件电路,实现了电子密码锁密码的显示、存储、修改以及驱动报警等功能,同时实现了远程遥控,具有更好的密码保护以及更完善的功能系统。课题主要关于红外遥控电子密码锁的设计研究。该系统以单片机为核心,结合红外遥控技术,配以相应的硬件电路(矩阵键盘、报警模块、显示模块等),预期实现电子密码的密码显示、修改、存储以及驱动报警等功能,同时,采用的红外遥控技术可以实现远程遥控。结合硬件电路,通过软件设计,主要完成以下几点内容:1、红外遥控信号的接收(遥控距离达到810米);2、键盘输入、本机设置的键盘信息管理功能;3、单人电控锁开锁、关锁的控制功能;4、报警功能。主要完成主程序结构设计及其程序编写和子程序结构设计及其程序编写。 软件是整个系统的核心内容,在硬件电路已经确定的情况下,不同程序可以实现不同的功能。该课题的设计基于C语言,使用KeiluVision编辑、调试、编译通过。采用模块化设计,自顶而下的设计思路,这样的设计有利于程序代码的优化,而且便于设计、调试和维护。以主程序为核心设置了多个功能模块子程序。程序大致可以分为系统初始化程序、红外遥控模块子程序、密码判断子程序、显示子程序、键盘扫描中断服务程序等。其中主程序主要起到一个决策和导向作用,系统的各个功能模块主要通过调用具体的子程序来实现。系统初始化主要包括:定时器、中断、1602芯片以及系统参数等的初始化;往EEPROM写入初始化密码主要是完成对原先密码进行更改或者进行相关设置的任务,然后将更新后的密码保存到EEPROM中。2方案设计与总体设计 根据设计要求,本系统的设计思路如下:以单片机STC89C52控制为中心,分为红外遥控,单片机控制,蜂鸣器报警,LCD1602液晶显示,4*4键盘输入以及电源。总体设计方案如图2-1所示。图2-1系统总体设计方案 各个功能模块的功能大致如下:红外遥控模块:红外遥控器按有键被按下时,就输出一定数量被调制的脉冲信号。当接收器收到发射器发射的红外指令信号时,它将红外指令信号变成TTL电平信号,再经过放大、解调、整形、解码处理后送入单片机,由单片机进行识别处理,从而控制电子密码锁的工作。单片机模块:主控电路模块主要采用以单片机STC89C52为核心的主控电路。红外线接收器把接收到的信号传送给单片机,单片机对信号进行识别,将信号识别成指令,利用这些指令控制电子密码锁的工作。蜂鸣器报警功能模块:若3次输入密码错误,报警模块报警。LCD1602液晶显示模块:此模块采用单片机向液晶显示屏的串口发送数据指令,当串口接收到一串数据后,LCD1602液晶显示屏能实现数据的显示、清屏操作和光标的设置等操作。4*4矩阵键盘模块:该模块可以实现输入密码,设置新密码等功能。 软件是整个控制系统的核心,在硬件结构一定的情况下,只要改变软件就能实现一些不同的功能。对于51系列单片机,现有四种语言支持,即汇编、PL/M,C和BASIC。汇编语言最接近机器语言,利用汇编语言时,单片机的资源利用效率较高,但是这要求对单片机的指令系统非常了解,对单片机的存储器结构也要有一定的了解。PL/M是Intel从8080微处理器系列开始为其系列产品开发的编程语言,对于51系列的单片机而言,PL/M不支持复杂的算术运算、无丰富的库函数支持。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码,对单片机的指令系统不要求了解,仅要求对51系列单片机的存储器结构有初步了解。BASIC通常附在PC机上,是初学编程的第一种语言,主要用于要求编程简单而对运行速度和编程效率要求都不高的场合,现在已经很少用到BASIC语言了。经过上述的比较后,该课题的设计选择基于C语言,使用KeiluVision编辑、调试、编译通过。采用模块化设计,自顶而下的设计思路,这样的设计有利于程序代码的优化,而且便于设计、调试和维护。以主程序为核心设置了多个功能模块子程序。程序大致可以分为系统初始化程序、红外遥控模块子程序、密码判断子程序、显示子程序、键盘服务程序等。主程序流程图如下: 图2-2主程序流程图本设计中我们选用的单片机控制芯片是STC89C52芯片,相较于AT系列的单片机,STC89C52可在线编程,烧制程序简单,工作稳定高,兼容性好且抗干扰性强。模块图如图2-3。 图2-3 单片机主控模块2.2.2 红外遥控模块红外远程遥控模块由发射和接受两部分组成,电路如图2-4。遥控发射器采用型号TC9012芯片,TC9012芯片是一块用于东芝系列红外遥控系统中的专用发射集成电路,采用 CMOS 工艺制造。而遥控接收器采用HS0038B型号的红外一体化接收头,HS0038B的管脚分布如图2-5所示,2脚、3脚分别为地电源和地,1脚是解调信号输出口,其电平与TTL兼容。 图2-4 红外遥控模块电路图 图2-5 HS0038B2.2.3 4*4矩阵键盘模块 因为本系统需要用到10个数字按键以及几个系统功能键,需要用到的按键数量比较多,由于单片机的I/O口是有限的,选择使用4*4的矩阵键盘来作为输入,这样一个8位的I/O口就可以驱动16个键盘,大大提升了I/0口的利用率。矩阵键盘硬件电路图如图2-6所示。 图2-6 4*4矩阵键盘电路图 2.2.4 LCD1602液晶显示模块液晶显示模块采用应用比较广泛的LCD1602,是通用型的双行16字符点阵液晶模块,内含数字、字母、符号192种(无汉字)字符库,可通过8位或4位的单片机进行显示字符的控制,通过编程可实现字行的上下滚页,左右移动,通过硬件连线可控制背景灯的对比度,背景灯的开关。LCD1602与STC89C52单片机的电路引脚连接图如图2-7所示。 图2-7 1602液晶显示模块电路引脚图2.2.5 报警模块本次研究课题是红外电子密码锁,目的是良好保护财产,因此我们需要在设计中加入报警模块,在密码连续3次错误时就报警。如图2-8。 图2-7 报警模块电路图2.2.6 电源模块 该模块是用来控制系统在工作时的电源,上述采用的芯片所需的电压基本都在5V左右,所以系统在工作时采用5V的工作电压。如图2-8。 图2-8 电源模块图对于51系列单片机,现有四种语言支持,即汇编、PL/M,C和BASIC。汇编语言最接近机器语言,利用汇编语言时,单片机的资源利用效率较高,但是这要求对单片机的指令系统非常了解,对单片机的存储器结构也要有一定的了解。PL/M是Intel从8080微处理器系列开始为其系列产品开发的编程语言,对于51系列的单片机而言,PL/M不支持复杂的算术运算、无丰富的库函数支持。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码,对单片机的指令系统不要求了解,仅要求对51系列单片机的存储器结构有初步了解。BASIC通常附在PC机上,是初学编程的第一种语言,主要用于要求编程简单而对运行速度和编程效率要求都不高的场合,现在已经很少用到BASIC语言了。C语言有以下几个优点:1、C语言是编译型语言,不仅有高级语言的特点,还具备汇编语言简洁、可控制硬件的特点;2、可移植性好;3、有丰富的库函数;4、表达能力好,易于编程,可读性强;5、寄存器的分配由编译器完成;6、可以模块化设计,只要将各模块之间的接口确定好就可以了;7、开发周期短;8、有实时多任务操作系统,可以合理地分配CPU的时间和单片机的资源。经过比较之后,采用C语言来完成该系统的设计。3系统软件设计 本设计采用模块化设计,自顶而下的谁思路。主程序的内容主要涵盖了各子程序的内容。主程序的流程图在第二章中已经给出。从流程图中可以看出,主程序主要包括这些内容:初始化定时器和中断,采用定时器0和外部中断0,并且定时器0工作在工作方式2;初始化LCD1602和EEPROM;设置初始密码;判断红外和4*4矩阵键盘是否有键按下,如果红外有键按下,则红外接收头接收数据,外部中断响应,单片机产生中断,进入数据处理阶段,最后根据按键流程图输出响应的结果,如果矩阵键盘有键按下,直接进入按键处理程序。按键处理程序包含了报警和LCD1602显示。 对红外遥控模块进行系统设计,必须先了解一些相关的原理和标准,如:红外通信基本原理,红外遥控器编码和解码原理,红外数据协会标准,红外遥控器原理等,这样才能有一个比较清楚系统的设计方案。3.2.1 红外通信基本原理及标准红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。它一般由红外发射和红外接收两部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号),通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。1993年,由HP、COMPAQ、INTEL等二十多家公司发起成立了红外数据协会(Infrared Data Association,简称IRDA),1993年6月28日,来自50多家企业的120多位代表出席了红外数据协会的首次会议,并在建立统一的红外通讯标准问题上达成了一致。IRDA1.0简称为SIR(Serial InfraRed),是基于HP-SIR开发出来的一种异步的、半双工的红外通讯方式。SIR以系统的异步通讯收发器(UART)为依托,通过对串行数据脉冲的波形压缩和对所接收的光信号电脉冲的波形扩展这一编码和解码过程实现红外数据信号传输。由于受到UART通讯速率的限制,SIR的最高通讯速率只能达到115.2kbps。IRDA标准包括三个基本的协议和规范:物理层规范(Physical Layer Link Specification),链接建立协议(ink Access Protocol:IRLAP),链接管理协议(Link Management Protocol: IRLMP)。3.2.2 红外遥控系统及原理通用红外遥控系统由发射和接收两大部分组成,应用编码和解码专用集成电路芯片来进行控制操作,如图3-1所示。发射部分包括键盘、编码调制、LED红外发送器;接收部分包括光/电转换放大器、解调、解码电路。遥控发射器遥控接收器 图3-1红外遥控系统1、遥控发射器及编码遥控发射器专用芯片很多,该系统中采用了TC9012芯片。TC9012芯片是一块用于东芝系列红外遥控系统中的专用发射集成电路,采用 CMOS 工艺制造。它可外接32个按键,提供8种用户编码,另外还具有 3 种双重按键功能。当发射器按键按下时即有遥控码发出,所按的键不同遥控编码也不一样。TC9012芯片采用脉冲位置调制方式(PPM)。TC9012 的一帧数据中含有 32 位码,包括两个8位用户码,8 位数据码和8位数据码的反码及最后位的同步位。引导码由4.5ms的载波和4.5ms的载波关断波形所构成。用户码和数据码的发射都是低位在前,高位在后。发射码格式如图3-2: 图3-2 发射码格式 脉冲位置调制方式(PPM):“1”和“0”的区分取决于脉冲之间的时间 。脉宽为0.565ms、间隔0.56ms、周期为1.125ms,占空比大约为1:1的组合表示二进制的“0”,如图2-6;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms,占空比大约为1:3的组合表示二进制的“1”,如图3-3。 图3-3 遥控码的“0”和“1” 2、遥控接收器及解码一体化红外线接收头是一种集红外线接收和放大于一体的器件,不需要外接任何其它元件,就能实现红外线接收,输出与TTL电平信号兼容的所有工作,体积和一般的塑料三极管大小一样,它适合于各种红外遥控和红外线数据传输。HS0038B有许多优点:稳定性好,抗干扰能力很强,外围电路非常简洁,成本低,适用于各种红外遥控和红外数据传输,是替代其它红外接器的理想元件。所以在该设计中采用了HS0038B型号的一体化红外接收器。HS0038B的信号电平为:38KHz红外发射接收到时:低电平输出;38KHz红外发射接收不到时:高电平输出。HS0038B接收器可以实现红外信号接收的一系列功能,如解调、滤波等功能,所以采用一体化红外接收器的信号输出引脚直接与单片机的中断引脚(INT0)相连,来实现红外信号的解码。在设计中采用下降沿触发,若检测到低电平则引起中断,进入中断程序。外部中断程序如下:void INT0init void EA 1;IT0 1;/下降沿触发方式EX0 1; 解码的关键是如何识别“0”和“1”,由图2-6可以发现“0”、“1”均以0.56ms的高电平开始,不同的是低电平宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据低电平的宽度区别“0”和“1”,也就是判断时间为1.25ms还是2.25ms,如果时间是1.25ms,收到的就是“0”,如果时间是2.25ms,收到的就是“1”。 在该系统中,对红外发射器发射出的数据处理的代码如下: void irpros void uchar k 1,i,j;uchar value;for j 0;j 4;j+ /四个码(2个用户码,数据码和数据反码) for i 0;i 8;i+ value value 1;/执行7次,右移一位(低位在前,高位在后)if irdatak 6 /执行8次,判断发射的数据是否为“1” value value|0x80; /高位置1k+; ircodej value; irprosok 1;/红外接收OK 遥控器功能键该设计定义了遥控器的一些功能键,通过遥控器的输入对已设密码进行写入,修改和清空,实现上锁和开锁的功能。遥控器主要有数字键0-9,开锁键,上锁键,设置密码键,保存密码键和清空密码键。遥控器按键分配如图3-4所示: 图 3-4 遥控器按键分配图 红处接收控制电路采用STC89C52单片机来实现,输出控制方式可选择,实用性强。红外按键部分的流程图和4*4键盘的按键处理流程图是一样的。红外遥控模块的流程图如图3-5: 图3-5 红外遥控模块流程图3.3 LCD1602液晶显示模块软件设计LCD1602液晶屏的主要功能有:1、40个通道点阵LCD驱动;2、输入、输出信号;3、可选择当作列驱动或者行驱动;4、通过单片机控制将所测的数据显示出来。LCD1602的初始化设置:显示模式设置:指令码功能00111000设置16*2显示,5*7点阵,8位数据接口2、显示开/关和光标设置指令码功能00001DCBD 0 关显示 ;D 1 开显示C 0 不显示光标 ;C 1 显示光标B 0 光标不闪烁 ;B 1 光标闪烁 000001NCN 0 当读或写一个字符后地址指针减一,且光标减一N 1 当读或写一个字符后地址指针加一,且光标加一S 0 当写一个字符,整屏显示不移动S 1 当写一个字符,整屏显示左移或者右移,以得到光标不移动但屏幕移动的效果3、数据指针设置设置数据指针地址:80H+地址码。清屏设置:01H。包括数据指针清零和所有显示清零。RAM地址映射图:控制器内部带有80*8位的RAM缓冲区,对应的图如图3-6。图3-6 RAM地址映射图写操作时序图:综上所述,LCD1602的初始化程序如下: void init_1602 /1602初始化函数 lcden 0; write_com 0x38 ; /显示模式设置 write_com 0x0c ; /显示开 不显示光标 光标不显示 write_com 0x06 ; /显示地址递增,即写一个数据后,显示位置右移一位 write_com 0x01 ; /清屏 Display_string table,0x80 ; /在第一行显示 Display_string Lock ok! ,0x80+0X40 ; /在第二行显示 3.4 STC单片机内部EEPROM及ISP的应用3.4.1 EEPROM存储器在STC单片机中有2KB的EEPROM存储器,分为8个扇区,每个扇区有512B写入的数据可以保存的有效时间长达100年,擦写次数可长达10万次以上。片内EEPROM地址如表3-1所示。与采用片外EEPROM相比,采用单片机内部的EEPROM保存密码的可靠性和安全性都较高,这种方法也广泛用于家居和办公等智能控制系统中。EEPROM存储器有串口和并口两种,串口的部分电路电路还支持下载线。在该系统中采用EEPROM来完成密码的读写和保存。 表3-1 片内EEPROM地址第一扇区第二扇区第三扇区第四扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2000H21FFH2200H23FFH2400H25FFH2600H27FFH第五扇区第六扇区第七扇区第八扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2800H29FFH2A00H2BFFH2C00H2DFFH2E00H2FFFH3.4.2 ISP特殊功能寄存器ISP是in system programable的缩写 ,是指在线系统编程,也就是说不用将板子取下,可以简单地对其进行编程。IAP是in application programable 的缩写,是指在线应用编程,也就是单片机提供了一系列的机制,当单片机在运行时可以提供一种改变flash数据的方法,这种方法的典型应用是用一小段代码来实现程序的下载。事实上,单片机的ISP功能是通过IAP技术来实现的。下面介绍一下ISP特殊功能寄存器的含义:ISP_DATA: ISP操作时的数据寄存器,从FLASH中读出数据和向FLASH中写数据都应该放在此处;ISP_ADDRH: ISP操作时的地址寄存器高八位;ISP_ADDRL:ISP操作时的地址寄存器低八位;ISP_CMD: ISP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。ISP_TRIG: ISP操作时的命令触发寄存器。在ISPEN ISP_TRIG.7 1时,对ISP_TRIG先写入46H,再写入B9H,ISP命令才会生效。ISP_CONTR: ISP控制寄存器。定义ISP功能寄存器地址的代码如下:/定义ISP功能寄存器地址sfr ISP_DATA 0xE2; /定义ISP的数据寄存器地址sfr ISP_ADDRH 0xE3; /定义EEPROM地址寄存器的高8位sfr ISP_ADDRL 0xE4; /定义EEPROM地址寄存器的低8位sfr ISP_CMD 0xE5; /定义ISP的命令寄存器地址sfr ISP_TRIG 0xE6; /定义ISP命令触发寄存器地址 sfr ISP_CONTR 0xE7; /定义ISP控制寄存器地址3.5 4*4矩阵键盘模块软件设计由于单片机的I/O口数量有限,该系统采用4*4矩阵键盘。这样用一个8位的I/O口就可以驱动16个键盘。每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通。从附录图1中可以看出键盘的连线方式,由行线和列线共同来决定哪一个按键被按下。4*4矩阵键盘的按键功能和红外遥控模块的按键功能是一样的,包括15个按键:数字键0-9,开锁键,上锁键,设置密码键,保存密码键和清空密码键。3.5.1 4*4矩阵键盘的流程图及功能矩阵键盘的流程图如图3-6。下面对流程图进行具体的介绍:当没有接收到遥控信号时,这时由键盘输入密码,当6位有效密码输入正确时开锁键确认,完成开锁,1602显示open ok!。开锁完成后,如果需要再把锁锁上,可以按下上锁键,此时锁又重新锁上,1602显示Lock ok!。在输入6位有效密码时,必须按照先后序输入,如顺序错误或密码不对时,1602显示器会提示错误,若连续3次输入错误,系统会长时间报警,这时必须按复位键恢复到初始化状态。在输入密码的过程中,若发现错误了可以按下清空键,清空已输入的密码,然后重新输入密码。当锁处于开锁状态时,可以设置新密码,先按下设置密码键,输入新密码,然后按下保存密码键,此时新密码已保存,同时锁被重新锁上。 图3-7键盘功能按键分布图 图3-6 矩阵键盘流程图3.5.2 4*4矩阵键盘的工作原理一个按键是否被按下有行线和列线共同决定。判断键盘中有无键按下:将全部行线置低电平(0000),然后检测列线的状态,只要有一个列线的电平为低, 就表示键盘中有按键被按下,而且被按下的键是低电平列线和4根行线交叉的4个按键之中的其中一个,若所有列线均为高电平(1111),则表示键盘中没有键被按下;接着判断被按下的按键所在的位置:在知道有按键被按下后,就要确定到底是哪个按键被按下。方法是:依次将行线置为低电平,就是在置某根行线为低电平时,剩余行线为高电平,当确定某一根行线为低电平后,再依次检测各列线的电平状态,若某一根列线为低电平,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。3.6 报警器模块软件设计该功能为当输入密码错误时,实现报警功能,从而提高其安全性。该模块比较简单,就是在用4*4矩阵键盘或者红外遥控器输入密码时,若果连续3次输入的密码都是错误,此时蜂鸣器就会进入长时间报警,必须按复位键,蜂鸣器才会停止报警。3.7 系统调试3.7.1 程序编译本设计采用C语言来完成,同时也决定了编译器的选择,采用KEIL编译器来完成整个程序的编译。KEIL是德国KEIL公司开发的单片机编译器,是目前最好的51系列单片机开发工具之一,提供了丰富的库函数和集成开发调试工具,全windows界面。KEIL已被完全集成到uVision3的集成开发环境中,本设计的程序就是在uVision3的集成开发环境中编译的,这个开发环境包括以下几个部分:汇编器、编译器、项目管理器、实时操作系统和调试器。在uVision3的集成开发环境中操作的步骤为先新建一个project,填写好保存路径,在file菜单里新建text文本,在text里写入程序,保存,最后把text添加到source group1里,这样就可以对程序进行编译了,若没有错误就可以生产HEX文件了。由于程序比较长,在软件调试时,本设计采用先模块调试然后再进行系统调试。在调试的过程中红外遥控模块的程序经常出现错误,红外通信只能工作于半双工方式,另外,通信波特率比较低,编程时应注意等待时间。在编译时采用单步编译,逐一找出错误的地方并改正直至编译正确。编译正确后的界面如3-8。 图3-8 编译正确后的界面程序编译成功,生产了HEX文件后,就可以把程序下载到STC89C52单片机中了。在下载程序时,要用一个转换器将单片机和电脑连接起来。本设计下载程序时采用了RS-232转换器。下载时硬件连接是这样的:单片机RXD(P3.0)引脚RS-232转换器电脑TXD;单片机TXD(P3.1)引脚RS-232转换器电脑RXD;单片机GND电脑GND。连接图如图3-9。 图3-9 串口连接图STC系列的单片机相比AT系列的单片机的优点是可以在线编程,而且速度快,STC提供了ISP下载工具STC-ISP.exe软件。在连接好单片机和电脑之后就可以运行STC-ISP.exe软件进行程序下载了。打开软件进行参数设置。下载时都要先点下载再上电。下载界面图如图3-10。 图3-10 下载界面图 4结论通过上面软件的分析和设计,本系统完全是可行的。在设计和实验的基础上,和设计硬件部分的同学一起做出了实物。本设计利用STC89C52单片机芯片控制基于单片机的红外遥控密码锁,选择C语言来完成整个软件的设计。实现了红外遥控和键盘双输入控制,密码储存部分采用STC89C52单片机芯片内部的EEPROM实现,可以实现输入密码开锁,对密码锁进行上锁,还有设置新密码等多种功能。显示部分采用1602LCD液晶显示屏,在报警模块部分设计了蜂鸣器在密码输入错误三次后蜂鸣器报警的功能。任何个项目都不是十全十美的,该系统也有一些不足的地方。没有考虑到外部因素对系统的影响,比如密码丢失,误操作对系统的影响。报警功能做得不够完善,只有一个蜂鸣器,在嘈杂的地方就不一定能感觉到蜂鸣器的报警声音。红外遥控有时也不太稳定,在调试的时候发现用遥控器输入密码时,感应不是太灵敏,要多输几次才可以,它实际的有效距离也没有进行系统的理论论证。参考文献1 石晶晶 李亚梅.新型红外遥控密码锁的研究与设计J.中国科技信息2008 19 :134-136.2 王晓东,刘春红,于鑫.单片机和计算机的串口通信J.应用科技,2003(30) 1:14-16.3 何小艇主编.电子系统设计M.浙江大学出版社,1998.12.4 曹开田. 基于单片机的红外遥控密码锁的设计与实现J.中国仪器仪表,2006 3 :93-94.5 于会山,崔学礼.一种新型红外线遥控智能密码锁M.电子技术,2005.10.6 曹巧媛.单片机原理及应用M.北京:电子工业出版社,2007 牛翌光.单片机原理及接口技术M.北京:电子工业出版社,2008 杨路明.C语言程序设计M.北京:北京邮电大学出版社,2005IrDA 红外通信在导航仪中的应用J. 2000 10 :54-56.10 尹学锋.红外线遥控密码锁的研究M.安防科技研究与探索,2008.3.11 李明等.C语言程序设计教程M.上海.上海交通大学出版社,2008.12 马冬梅,屈霞.一种简易红外遥控密码锁设计与实现J.现代电子技术,2010 13 :159-162.13 程院莲,卢飞跃,基于AT89S51单片机的电子密码锁的设计J.福建电脑,2010 6 :58-61.14 王金国. 采用单片机的电子密码锁控制电路J . 山东煤炭科技,2000 3 :30 - 33.15 朱纯益 .单片机用作通用红外遥控接收器的设计J.单片机与嵌入式系统应用 ,2002 16 Jimemez Petal. Improved PPM schemes for infrared wireless LAN J.Electronics Lettrs.1996.10.17 Serial Infrared Link Access Protocol IrLAP ,Version 1.1. June 16,1996,IBM Corporation , Hewlett-Packard Company, Apple Computer, Inc.,Counterpoint Systems Foundry, Inc.18 黄耀军,周云,严国萍.计算机红外无线互连的设计几实现J.2000.2. 19 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用M.西安:西安科技大学出社,1998.8.20 谢平.USB与红外组合通信系统的研究与实践J .微计算机信息,2009 附录附录图1 电路原理图附录图2 PCB板附录图3 实物图 附录4 程序#include #include /字符串#include #define uint unsigned int #define uchar unsigned char/ /定义ISP功能寄存器地址sfr ISP_DATA 0xE2; /定义ISP的数据寄存器地址sfr ISP_ADDRH 0xE3; /定义EEPROM地址寄存器的高8位sfr ISP_ADDRL 0xE4; /定义EEPROM地址寄存器的低8位sfr ISP_CMD 0xE5; /定义ISP的命令寄存器地址sfr ISP_TRIG 0xE6; /定义ISP命令触发寄存器地址 sfr ISP_CONTR 0xE7; /定义ISP控制寄存器地址/定义ISP操作模式选择 ISP_CMD #define ISP_BYTE_READ 0x01 /读字节指令码#define ISP_BYTE_PROGRAM 0x02 /写字节指令码,前提是该字节是空的,所以建议先擦除该字节所在扇区#define ISP_BYTE_ERASE 0x03 /扇区擦除指令码,EEPROM没有字节擦除指令码/定义ISP等待时间指令码 ISP_CONTR,ISP_CONTR.7是ISP功能允许位ISPEN,0禁止,1允许 #define ENABLE_ISP 0x81 /晶振20MHZ以下/定义EEPROM的起始扇区地址#define FLASH_START_ADDRESS 0x2000 /STC89C51/52RC/定义全局变量uchar DataMemery; /IspRead 函数返回字节数据的中转变量/ sbit lcden P25;sbit rw P26;sbit rs P27;sbit beep P23;uchar num,flag; /flag:密码真确的标志位uchar table16 0 ; /存初始密码uchar table216 ; /放*的数组uchar table316 ; /清除一个uchar userpassword6 0 ; /放密码的数组uchar code table46 012345; /初始密码uchar code table your password.;/红外设置uchar bitnum;/uchar startflag; /是否开始接受的标志uchar irtime; /红外时间uchar bitime,irreceok; /irreceok红外接收是否OK的标志uchar irprosok; /红外处理数据是否OK的标志 uchar irdata33;/引导码1位,用户码16位,数据码8位,数据码反码8位,共33位uchar ircode4;/该数组用于存储解码后的数据, 四个字节 除去引导码 void delay uint z /1ms延时 uint x,y;for x z;x 0;x- for y 110;y 0;y- ; void write_com uchar com /写命令函数 rs 0;rw 0;P0 com;delay 5 ;lcden 1;delay 5 ; lcden 0; void write_date uchar date /写数据函数 rs 1;rw 0;P0 date;delay 5 ;lcden 1;delay 5 ;lcden 0; void prints uchar *string /显示字符串 while *string write_date *string ;string+; void Display_string uchar *string,uchar com uchar i;write_com com ;/prints string ;for i 0;i 16;i+ write_date stringi ; void init_1602 /1602初始化函数 lcden 0;write_com 0x38 ; /显示模式设置write_com 0x0c ; /显示开 不显示光标 光标不显示write_com 0x06 ; /显示地址递增,即写一个数据后,显示位置右移一位 write_com 0x01 ; /清屏Display_string table,0x80 ;Display_string Lock ok! ,0x80+0X40 ; /*函数功能:清空密码*/void clear uchar i,j;for i 0;i 6;i+ userpasswordi ; for j 0;j 16;j+ table4j ; / /函数名称:void TriggerIsp void /函数功能:触发ISP命令寄存器/输入输出:空/ void TriggerIsp void /EA 0; ISP_TRIG 0x46; ISP_TRIG 0xb9; _nop_ ; /EA 1; / /函数名称:void DisableIsp void /函数功能:对操作后的EEPROM善后处理/输入输出:空/ void DisableIsp void ISP_CONTR 0x00; ISP_CMD 0x00; ISP_TRIG 0x00; ISP_ADDRH 0x00; ISP_ADDRL 0x00; / /函数名称:void IspRead uchar Address /函数功能:从EEPROM中读取一字节数据/输入输出:输入:EEPROM的扇区地址/ 输出:DataMemery,读取到的数据内容/ void IspRead uint Address uchar Addrh,Addrl; ISP_C
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


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

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


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