毕业设计(论文)-基于单片机控制的红外遥控密码锁的设计.doc_第1页
毕业设计(论文)-基于单片机控制的红外遥控密码锁的设计.doc_第2页
毕业设计(论文)-基于单片机控制的红外遥控密码锁的设计.doc_第3页
毕业设计(论文)-基于单片机控制的红外遥控密码锁的设计.doc_第4页
毕业设计(论文)-基于单片机控制的红外遥控密码锁的设计.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 53 页 共 52 页 基于单片机控制的红外遥控密码锁的设计摘 要红外线IrDA,简称IR,是一种点对点的无线通讯方式,只能进行短距离的无线数据的传输,且中间不能有障碍物。红外线又称红外光波,在电磁波谱中,光波的波长范围为0.01um 1000um;波长为0.76um 1000um的光波为红外光(线),红外线遥控是利用近红外光传送遥控指令的,波长为0.76um 1.5um;用近红外作为遥控光源,是因为目前红外发射器件与红外接收器件的发光与受光峰值波长一般为0.8um 0.94um,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性。目前红外线得到了很普片的应用,如红外线鼠标,红外线打印机,红外线键盘等等。本论文设计的是基于C51单片机的红外遥控密码锁。该锁采用6位数作为密码,红外遥控密码锁的应用研究主要应用了单片机的编程进行红外的编码与解码,并通过单片机实现密码的设置、修改及识别功能。一 绪论1.1课题背景进入二十一世纪以来各种电子信息技术进入高速发展阶段,包括信息系统技术微电子、计算机和现代通信技术、传感器技术,这也包括红外线技术,红外线是一种人的肉眼看不见的光线,最近二三十年来,初露头角的红外技术,在各个领域里获得了广泛的应用。开始应用到生产上,并形成了一门崭新的技术红外技术。本设计针对传统机械锁的不足而设计的通过红外来控制的密码锁。1.2红外通讯红外通讯,顾名思义,就是通过红外线传输数据。在电脑技术发展早期,数据都是通过线缆传输的,线缆传输连线麻烦,需要特制接口,颇为不便。于是后来就有了红外、蓝牙、等无线数据传输技术。红外通讯技术利用红外线来传递数据,是无线通讯技术的一种。红外线的特征:红外传输是一种点对点的传输方式,无线,不能离的太远,要对准方向,且中间不能有障碍,由于红外线的直射特性,红外通讯技术不太适合传输障碍比较多的地方。因此,红外通讯技术多数情况下传输距离短、传输速率不高。1.3密码锁的发展趋势与特点密码锁产生也是经历了一些阶段的,有传统的机械密码锁,电子密码锁,数字密码锁等。随着科学技术的发展,一些以芯片特别是单片机为处理核心的新型密码锁开始不断出现。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁等任务。本论文就以AT89C51单片机设计了一个红外遥控密码锁。二 密码锁的总体设计2.1密码锁的结构与组成该锁采用80C51作为本设计的核心,由遥控发射部分及主机接收部分组成。2.1.1 遥控发射部分遥控发射器主要由AT89C51单片机,红外发射二级管,矩形键盘,数码显示管及复位电路等组成。该部分的结构图如图2-1所示。红外发射器AT89C51键 盘显 示复 位晶 振 图2-1遥控发射结构框图2.1.2 主机接收部分主机接收部分主要由AT89C51单片机,红外接收头,矩形键盘,数码显示管,报警器,电磁锁及复位电路等组成。该部分的结构图如图2-2所示。键 盘红外接收头AT89C51 显 示电磁锁复 位报警器晶 振图2-2主机结构框图2.2 密码锁的工作原理 2.2.1 基本工作原理主机上通过键盘输入6位密码,将输入的密码与设定的密码进行比较,如果相同则驱动电磁锁进行开锁,如果不相同则不解锁;当从遥控器上输入6位密码时利用红外给主机一个中断信号,使主机执行中断服务程序(解码程序),来控制解锁与否。红处线发射及接收控制电路均采用8051单片机来实现,电路简单,输出控制方式可选择,实用性强。具体工作过程如下:发射时如图2-3所示,通过定时器T1(P3.5)口,利用定时中断来发射信号,定时器1中断服务程序的功能是:红外管发射的信号需经过高频(采用38.5KHZ)调制载波才可发射出去,利用定时器1的定时作用,在发射高频脉冲时,通过定时对P3.5口的取反的操作,使发射信号调制成38.5KHZ的高频。再经过红外发射二级管发射,发射距离为8-10米。 AT89C51P3.5 红外发射二级管 图2-3红外发射框图接收时如图2-4所示,利用P3.2口(外部中断0)的下降沿触发中断来接收信号,并通过P3.3口来判断高低电平。外部中断0的中断服务程序的功能是:由接收第一位码的下降沿触发中断后,对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误帧处理。当间隔位的高电平脉冲宽大于3ms时,结束接收,然后根据累加器A中的脉冲数,执行相应的功能操作。 AT89C51P3.2(INT0)P3.3 红外接收头 图2-4红外接收框图2.2.2 红外发射信号的编码遥控器信息码是由AT89C51单片机的定时器T1调制成38.5KHZ红外载波信号,而关键是它的编码,在这里遥控器的编码采用脉冲个数编码格式,不同的脉冲个数代表不同的操作码信息,最少为2个脉冲(采用2个),其它信息码的脉冲个数逐个递增。为了使接收尽量可靠,第一位码宽为3ms,其余码宽为1ms,码间距为1ms,遥控码数据间隔大于10ms。遥控器上每个键都有唯一的一个键号,单片机通过查得按下键的键值发约定个数的脉冲。遥控器的编码格式如图2-5所示。频率为38.5KHZ,即周期约为26us,第一位码需115个脉冲周期,其余为38个脉冲周期,结束帧至少为385个脉冲周期。 按键0编码输出格式 115个 38个 26us 3ms 1ms 1ms 按键1编码输出格式 115个 38个 38个 3ms 1ms 1ms 1ms 1ms 两帧信号之间的输出格式 一帧信号 两帧信号间隔 一帧信号 115个 38个 38个 115个 38个 3ms 1ms 1ms 至少为10ms 3ms 1ms 1ms图2-5遥控器编码图2.2.3 红外接收信号的解码接收信号的解码是根据红外线接收器输出脉冲帧的格式来进行解码的,即用累加器A分别对符合条件的负跳变脉冲进行计数。当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在接收数据帧时,根据发射帧的格式将对第一位(起始)码的码宽进行验证。若第一位低电平码的脉冲宽小于2ms,将作为错误码处理。当间隔位的高电平脉冲大于3ms时,结束接收,然后根据累加器A中的脉冲个数,执行相应的操作。图2-6为红外线接收器输出的一帧遥控码波形图。 停止位10ms 1ms 10ms 3ms 1ms 图2-6红外接收遥控码波形图2.3 密码锁的主要功能遥控密码锁的基本设计功能主要有如下几个部分:1 设定密码:在该设计中设定了一组原始密码:123456用户可以通过矩形键盘的修改键来修改原始密码。比如:按一下修改键,接着在本机上依次输入六位密码,再按确认(#)键即表示密码被设置好了,那么下次用户输入这组数据即可开锁。2 密码输入有效显示:为了确信是否有键按下以及防止密码外泄,在电路中设置了数码管显示,即在显示时并不是显示用户按下的数字符号,而是在输入一位时,数码管则显示一个字符“ H”, 这样既巧妙地提醒了用户又保护了 用户密码,此本设计可靠性优点之一。3 密码错误报警:当用户输入的密码连续三次出现密码错误时,系统会长期报警不止,这时必须按复位方可停止。乃安全可靠性能之二。4 遥控开锁:这是本论文设计中的最大特点之处,用户可以不必在主机上输入密码开锁。只要手执遥控器,键入正确密码,便会自动开锁;如果密码错误,同样也会报警。这是本设计优越性能之三。三 硬件电路设计3.1 单片机AT89C51简介3.1.1 主要特性 在本设计中,是以AT89C51单片机为核心的。AT89C51单片机是由ATMEL公司推出的AT89系列的单片机。AT89C2051是一种带2K字节闪烁可编程可擦除片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。引脚排练如图3-1所示。它的性能与主要特点如下:(1) 与MCS-51微控制器产品系列兼容。(2) 片内有4KB可在线重复编程的快闪擦写存储器(Flash Memory)。(3) 存储器可循环写入/擦除1000次。 图3-1 AT89C51引脚排列图(4) 宽工作电压范围:Vcc可为2.7V-6V。(5) 1288位内部RAM。 (6) 32条可编程I/O线。(7) 两个16位定时器/计数器。(8) 中断结构具有5个中断源和2个优先级。(9) 可编程全双工串行通道。(10) 空闲状态维持低功耗和掉电状态保存存储内容。3.1.2 管脚说明主要引脚的具体描述如下;Vcc: 电源。提供掉线、空闲、正常+5V工作电压。Vss(GND): 接地。P0口: P0口可以作普通的双向I/O口使用,也可以在访问外部存储器时用作低8位地址线和数据总线。P1口: P1口是一个内部提供上拉电阻的8位双向I/O口,向P2口管脚写入1后,被内部上拉为高电平可用作输入口,当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。P1口还具备第二功能。P2口: P2口是一个内部提供上拉电阻的8位双向I/O口,向P2口管脚写入1后,被内部上拉为高电平可用作输入口,当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据存储器时,可作为地址总线的高位字节。P3口:也是一个双向功能口既可以作普通输入输出口使用,也可以按每一位的定义实现第二功能操作。P3口的第二功能如表1.1所示。口 线第二功能信 号 名 称 P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 /INT0 外部中断0 P3.3 /INT1 外部中断1 P3.4 T0 定时器/计数器0 P3.5 T1 顶时器/计数器1 P3.6 /WR外部数据存储器写选通 P3.7 /RD 外部数据存储器读选通 表1.1RST: 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,因此它可用作对外部输出的脉冲或用于定时目的。/PSEN: 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP: 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。3.1.3 芯片可擦除性AT89C51单片机还具有芯片擦除性,整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.1.4 单片机的电源电路电源电路由桥式整流,滤波电容,7805稳压器及电源指示灯组成。交流电经过桥式整流变成直流电,再经过电容滤波。7805集成稳压器稳压成为稳定的5V电源。用一个发光二级管指示灯指示电源状态。电源电路如图3-2所示。图3-2 电源电路图3.1.5 复位电路单片机复位时RESET需要保持96个晶振周期的高电平(即需8个机器周期)。复位以后P0P3口输出高电平,堆栈指针SP指向07H,其他特殊功能寄存器和程序计数器PC清零。只要RESET保持高电平,AT89C51就会循环复位。RESET当由高电平变为低电平后,单片机从程序存储器0地址开始执行程序。但单片机复位不影响内部RAM的状态,包括工作寄存器R0R7。常见的复位电路有:上电复位电路和上电按钮复位电路,在本设计中均采用上电按钮复位电路,如图3-3所示。 图3-3 复位电路3.1.6 晶振电路所谓的晶振电路即指单片机的时钟电路。该电路通常有内部时钟电路和外部时钟电路。一般选用前者。单片机芯片内部有一个反相放大器构成的振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,把XTAL1和XTAL2与外部石英晶体及两个电容连接起来可构成一个石英晶体振荡器如图3-4所示。时钟发生器是一个2分频电路。它把晶体振荡器的频率2分频后供给片内其他电路。一般电容C1和C2起到稳定振荡频率、快速起振的作用。XTAL1 XTAL2 C1 晶振 C2 图3-4 晶振电路3.2 红外发射与接收装置红外遥控系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、电源和应用电路组成。通常为了使信号能更好的被传输发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。红外接收装置通常由一红外接收头组成的接收电路。3.2.1 发射装置常用的发射器为红外发光二级管它是录像机、影碟机、音响装置、空调器等各类红外遥控系统中不可缺少的电子器件,它将脉冲编码遥控指令用红外发光二极管发射红外线去控制受控装置时,受控装置中均有相应的红外光电转换元件,通过这个转换把相应的光信号转换为电信号。这里采用红外发光二极管如 SE303PH303,外形和发光二极管LED相似,发出红外光(近红外线约0.93m )。管压降约1.4V ,工作电流一般小于20mA。为了适应不同的工作电压,回路中常串有限流电阻。发射红外线去控制相应的受控装置时,其控制的距离与发射功率成正比。为了增加红外线的控制距离,红外发光二极管工作于脉冲状态,因为脉动光(调制光)的有效传送距离与脉冲的峰值电流成正比,只需尽量提高峰值电流 ,就能增加红外光的发射距离。提高峰值电流的方法,是减小脉冲占空比,即压缩脉冲的宽度。减小脉冲占空比还可使小功率红外发光二极管的发射距离大大增加。要使红外发光二极管产生调制光,只需在驱动管上加上一定频率的脉冲电压。红外发射电路如图3-5所示。图3-5 红外发射电路3.2.2 接收装置常用的红外接收装置有如红外接收二极管,光电三极管等。实用中已有红外发射和接收配对的二级管。在本设计中采用红外一体化接收头HS0038,接收头图如图(12)所示。它有如下优点:一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。接收头连接图及红外接收电路图如图3-6所示。HS0038 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35 m。它能与TTL、COMS 电路兼容。HS0038 为直立侧面收光型。它接收红外信号频率为38KHZ,周期约26s,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚(1、2、3)分别是地、5 V 电源、解调信号输出端。 图3-6红外接收图3.3 34矩阵键盘在单片机运用系统中,经常使用简单的键盘和BCD拨码盘作为系统的输入。键盘由一组常开的按键组成,可以通过键盘输入数据或命令。每个按键都被赋予一个代码,称为键码。键码分为编码键盘和非编码键盘。编码键盘是通过一个编码电路识别闭合键的键码,而非编码键盘是通过软件来识别键盘的。通常因由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象,键抖动的时间一般为510ms。为了避免一次闭合引起CPU多次处理,通常回采取去抖动措施。非编码键盘有独立式键盘和行列式(矩阵)键盘。由于前者在按键较多时会站用较多的I/O口,因此采用行列式(矩阵)键盘。1. 矩阵键盘及其接口行列式键盘又叫矩阵键盘,是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,它是通过检测键盘有无闭合以及查找闭合键的键号,一般采用扫描法。在这里设计了一34的矩阵键盘。如图3-7所示。(1) 先向所有的行线输出0,列线输出1,然后检测各列线的按键状态,由相应的列线读入累加器A中。有键按下时,对应的列线输入0,无键按下时所有的列线输入为1。(2) 若有键闭合,依次从行线上逐列输出0,然后依次检测各列线的状态。若为1,说明闭合键不在该列;若有的为0,则说明闭合键在该列与行线的交点上。由于每个按键所有的行号与列号不相同,所以每个按键按行号加列号的值赋予了一个键号。 图3-7 矩阵键盘图3.4 74LS164芯片在显示部分,运用LED静态显示,静态显示方式编程简单,但占用单片机I/O口线多适合于显示器位数较少的场合。AT89C51单片机应用系统中,当串行口空闲时,可用来拓展并行I/O口(这里设定串行口工作在移位寄存器方式0状态下),作为LED静态显示接口。在这里运用74LS164来扩展并行I/O口,节约单片机资源。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。引脚排练图以及逻辑图如图3-8所示。74LS164 引脚定义图 74LS164逻辑图 图3-8 74LS164器件图引脚说明:74LS164是串行输入、并行输出的移位寄存器,其引脚功能如下:A、B串行输入端。Q0-Q7并行输入端。/MR清除端。CP时钟脉冲输入端。在脉冲上升沿实现移位;当CP=0、/MR=1时,输出保持不变。3.5 数码管单片机运用系统中,使用的显示器主要有LED(发光二级管显示器)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活,与单片机接口方便。LED显示器结构与原理:LED显示器是由发光二级管显示字段的显示器件有共阴极与共阳极两种,如图(15)所示。其中7只发光二级管(a-g7段)构成字符“8”,另外还有一只小数点发光二级管dp。当某个发光二级管的阳极为高电平时,发光二级管点亮。当人为控制某几段发光二级管点亮就能显示某个数码或字符。LED显示器有静态显示与动态显示两种方式。LED显示器的字码段(7段码)如表3-9所示。 图3-9 LED显示器显示字符共阴极字段码共阳极字段码显示字符共阴极字段码共阳极字段码03FHC0H96FH90H106HF9HA77H88H25BHA4HB7CH83H34FHB0HC39HC6H466H99HD5EHA1H56DH92HE79H86H67DH82HF71H8EH707HF8HP73H8CH87FH80H熄灭00HFFH 表1.2 LED显示器的字段码(7段码)3.6 发光二级管LED1LED简介发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,其核心是PN结。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。它是半导体二极管的一种,可以把电能转化成光能;而红外二极管在正向导通时会发出红外光。常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。2LED特性(1) 发光二极管的反向击穿电压约5伏。主要特性是正向导通、反向截止、击穿特性。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流,以防止击穿。 图3-10 LED伏安特性图(2) 发光二极管(LED)的主要参数a. 最大正向电流Ifm: 允许加的最大正向直流电流,超过此值LED损坏。b. 正向工作电流IF: 指LED正常发光时的正向电流值。c. 正向工作电压VF: 在给定的正向电流下测得的工作电压。d. 最大反向电压VRm: 允许加的最大反向电压,超过此值LED可能被击穿损坏。e. 伏安特性: LED的电压与电流的关系可用图3-10表示。3.7 电磁继电器在开锁部分采用电磁继电器。通过单片机来控制其线圈的通断电,从而控制其触点的吸和与断开。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。一般用符号“J”表示。1电磁继电器的工作原理和特性电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。驱动电路如图3-11所示。2电磁式继电器的主要参数(1) 额定工作电压: 是指继电器正常工作时线圈所需要的电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。在这采用直流电压(+5V)的工作电压来驱动。(2) 直流电阻: 是指继电器中线圈的直流电阻.(3) 吸合电流: 是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。图3-11 电磁继电器驱动电路图3.8 报警器在报警部分,使用扬声器。从单片机发出的引脚(P2.3)控制信号,经一个三极管放大后再驱动扬声器,使整个系统产生报警。报警电路如图3-12所示。 图3-12 报警电路图4 软件程序设计4.1 遥控发射部分程序设计该部分主要分为主程序、按键扫描程序以及遥控编码脉冲发射程序。1. 主程序主要是对定时器T1定时的方式的设定、计数器的初始化等。主程序程序流程图如图4-1所示。开始 初始化 键盘扫描有键闭合? N Y转按键功能程序转脉冲发射程序 *键按下? N Y Y开始发送返回图4-1 主程序流程图主程序的初始化程序如下:START: LCALL CLEAR LJMP START LCALL KEYIN RET AJMP STARTCLEAR: MOV P1,#0FFH CLR P3.5 MOV SP,#70H MOV IE,#00H;关总中断与中断1 MOV TMOD,#20H;设定时器T1方式2自动重装模式 MOV TH1,#0F3H;定时13us MOV TL1,#0F3H SETB EA;开总中断 MOVE SCON,#OOH;置串行口工作方式02. 按键扫描程序 在此设计的是3行4列的矩阵键盘。程序流程图如图4-2所示。开始 闭合键释放否?有键闭合? N N Y Y闭合键号放入A延时10ms Y返回有键闭合? N Y逐列逐行扫描判断闭合键键号 图4-2 按键扫描程序流程图按键扫描程序如下:KEYIN : MOV P1,#0F8H MOV R3,A MOV A,P1 MOV A,R5 CJNE A,#0F8H,NEXT1 LJMP NEXT7KEYOUT: RET NEXT6: MOV A,R4 NEXT1: LCALL DELAY10MS ADD A,#04H;行号加四 MOV A,P1 MOV R4,A CJNE A,#0F8H,NEXT2 DJNZ R7,KEYOUT LJMP KEYOUT MOV A,R2;进行下一列扫描 NEXT2: MOV R4,#0;行号 RL A MOV R7,#03H;扫描行数 MOV R2,A MOV R2,#0FEH LJMP NXLOOPNXLOOP: MOV R3,#0;列号 QJZ: MOV A,R4;置行号 MOV R6,#04H ADD A,R3;行号加列号 MOV P1,R2 MOV 30H,A;置键号 MOV A,P1 MOV A,P1 ANL A,#0F8H ANL A,#0F0H CJNE A,#0F8H,NEXT3 CJNE A,#0F0H,KEYOUT LJMP KEYOUT LCALL DELAY10MS;待按键释放NEXT3 : CLR C CJNE A,#0F0H,KEYOUT RLC A MOV A,30H;键号放入A NEXT7: RLC A RET MOV R5,A JC NEXT4 LJMP QJZ;求键值 NEXT4: DJNZ R6,NEXT5 LJMP NEXT6 NEXT5: MOV A,R3 INC A;列号加一3. 遥控编码脉冲发射程序遥控器的编码采用脉冲个数编码格式,不同的脉冲个数代表不同的操作码信息。程序流程图如图4-3所示。发射开始装入发射脉冲个数发送3ms停发1ms(R1)-1=0? Y N停发10ms以上发1ms脉冲返回停发1ms图4-3 遥控器编码程序流程图 遥控编码脉冲发射程序如下:SEND: JNB BEGIN,START;BENGIN为*(开机)键标志 CLR RS1;选工作寄存起器1 SETB RS0 MOV R1,A;装入发射脉冲数 MOV R0,#0FAH;第一个码:250x0.012ms=3ms AJMP SEND2SEND1: MOV R0,#53;中间码:83x0.012=1msSEND2: SETB TR1;开高频定时器1中断调制(38KHZ) SETB ET1 NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R0,SEND2 MOV R0,#64H;码距:100x0.010ms=1msSENDOUT: CLR ET1;关高频定时器1中断调制(38KHZ) CLR TR1 CLR P3.5 NOP NOP NOP NOP NOP DJNZ R0,SENDOUT DJNZ R1,SEND1;若R1中仍有脉冲则继续发送1ms的码 LCALL DELAY500MS RET INTT1: CPL P3.5 RETI4.2 主机接收部分程序设计主机程序部分主要分为主程序、按键扫描程序以及解码接收程序。1. 主程序主程序中主要是对外部中断0的设定以及一些存储单元的清零等初始化工作。主程序程序流程图如图4-4所示。开始 初始化键盘扫描有键按下? N Y转按键功能子程序图4-4 主程序流程图主程序的初始化程序如下:START: LCALL CLEAR MOV MIMACWCS,#0;密码错误存储单元清零 LCALL KEYIN MOV WZDMIMACWCS,#0 LJMP START NOPCLEAR: MOV SP,#60H NOP SETB IT0;负跳变中断 NOP SETB EX0;开外部中断0 NOP SETB EA;开总中断 NOP CLR P2.0;关锁 LJMP START CLR P2.3;关报警 RET MOV 20H,#0;清零 MOV 21H,#0 MOV 29H,#0 MOVE SCON,#00H;置串行口工作方式02. 按键扫描程序如同上所示。3. 解码接收程序。解码接收程序利用外部中断0的中断服务程序实现的。外部中断0服务子程序流程图如图4-5所示。中断开始 低电平脉宽2ms? N Y接收并对低电平(负)脉冲计数高电平脉宽3ms? N 按脉冲个数至对应功能程序 Y中断返回图4-5 解码接收程序流程图解码接收程序如下:INT0SERVE: PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR EX0;中断一来关外中断0 JNB P3.3,INT0SERVE1;确认中断 INT0RET: POP DPH;若为干扰信号则开中断0退出中断 POP DPLPOP PSW POP ACC SETB EX0 RETI INT0SERVE1: CLR A MOV DPH,A;用数据寄存器对第一个码的低电平计时 MOV DPL,AINT0SERVE2: JB P3.3,INT0SERVE3;开始对低电平计时当p3.3为高电平1时 ;计时结束跳出循环并计时低电平是否大于2ms INC DPTR NOP NOP AJMP INT0SERVE2;循环周期为8usINT0SERVE3: MOV A,DPH;利用DPTR的高8位判断低电平是否大于2ms JZ INT0RET;A不为0,说明DPL有进位则255x8us=2ms即为;第一个脉冲,A为0,说明小于2ms是一个干扰;则退出中断程序 CLR A INT0SERVE4: INC A;脉冲个数加一INT0SERVE5: JNB P3.3,INT0SERVE5;为低电平则等待 MOV R1,#06H;为高电平则开始对高电平计时INT0SERVE6: JNB P3.3,INT0SERVE4;当P3.3有副负脉冲时,且前一高电平小;于3ms ,则脉冲个数加一 LCALL DELAY513US DJNZ R1,INT0SERVE6;若前一高电平脉宽大于3ms时即为一结帧 DEC A DEC AJZ FUNCION0;A为0则接收0号键DEC AJZ FUNCION1;A为0则接收1号键DEC AJZ FUNCION2;A为0则接收2号键DEC AJZ FUNCION3;A为0则接收3号键DEC AJZ FUNCION4;A为0则接收4号键DEC AJZ FUNCION5;A为0则接收5号键DEC AJZ FUNCION6;A为0则接收6号键DEC AJZ FUNCION7;A为0则接收7号键DEC AJZ FUNCION8;A为0则接收8号键DEC AJZ FUNCION9;A为0则接收9号键DEC ADEC AJZ FUNCION11;A为0则接收11号键LJMP INT0RET;退出中断服务子程序RET结论本课题研究的是具有单片机功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论