收藏 分销(赏)

51单片机中 做红外遥控密码锁的课题论文毕业论文.doc

上传人:二*** 文档编号:4539469 上传时间:2024-09-27 格式:DOC 页数:64 大小:534KB
下载 相关 举报
51单片机中 做红外遥控密码锁的课题论文毕业论文.doc_第1页
第1页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 51单片机中做红外遥控密码锁的课题论文毕业论文1.1 课题背景与目的电子技术的飞速发展,给古老的锁具生产带来了巨大的变革,现代的电子技术与机械技术相结合,产生了一大批如声控锁、磁控锁、密码锁、遥控锁,指纹锁等先进的锁具。 目前国外密码锁系统的主要方向的发展是:接触式密码锁系统,非接触式密码锁系统,智能识别密码锁系统,但是他们都相应的存在着不同的缺点。例如:接触式密码锁系统成本较低,体积小,卡片本身无须电源,但使用不太方便,而且有接触磨损。相比之下,红外遥控密码锁系统的成本与接触式密码锁系统相当,而且可以进行近距离遥控,使用十分方便。而且它已经与 PC 机的数据库相结合,可以组成一套酒店房间的

2、门禁管理系统。 由于红外遥控具有许多优点, 例如红外线发射装置采用红外发光二极管遥控发射器易于小型化且价格低廉; 采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。所以红外线遥控是目前使用最广泛的一种通信和遥控手段。 在本设计中,红外遥控密码锁和 PC 机、数据库相结合,能够实现适时的、强大的管理,使得整个红外遥控系统得到更好的完善。 1.

3、2 国外研究现状目前大部分的锁采用的都是机械式的,其最大的缺点是利用简单工具就能很容易地把锁打开。针对这种情况,我们设计了一种红外遥控密码锁,而一般设备都采用专用的遥控编码与解码集成电路,其制作简单、容易,但由于特定功能的限制,只适用于专用的电器产品,其应用围受到限制。而设计的红外遥控密码锁系统能提高门禁系统的可靠性和安全性,适应市场需要。该系统具有普通电子密码锁功能的同时,还增加了遥控功能。该系统具有较强的实际应用价值,所涉与的技术包括:红外载波数据传输技术、单片机控制技术、红外遥控系统编码与译码技术、电路设计与演示板制作技术等。1.3 课题研究方法本设计基于STC8952单片机系列,运用了

4、两块单片机芯片,一片实现红外解码,一块用来按键控制,数码管显示以与数据存储,通过查找资料确定各个模块的功能与实现方法,先在软件上进行调试,再根据硬件修改调试软件,最后将各个模块合理组合在一起,达到预计的功能与目标。1.4 本章小结本章介绍了红外遥控密码锁技术的课题背景,红外技术在现代生活中的应用以与该课题的国外研究现状,探讨与确定研究本课题的方法。2 基本原理与方案的论证 2.1 红外通讯原理红外遥控是单工的红外通信方式,本设计的红外遥控采用以通信方式为基础的红外遥控,而且本设计也使用了红外通信技术,故着重分析红外通信的基本原理。红外通信是利用红外技术实现两点间的近距离通信和信息转发。它一般由

5、红外发射和接收系统两部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。红外线是波长在 750nm至1mm之间的电磁波5,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。红外通信一般采用红外波段的近红外线,波长在 0.75um至 25um之间。红外数据协会(IrDA)成立后,为了保证不同厂商的红外产品能够获得最正确的通信效果,红外通信协议将红外数据通信所采用的光波波长的围限定在 850 至 900nm之。红外通信的基本原理6是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号) ,通过红外发射管发射红外信号。常

6、用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。脉时调制(PPM)7,8,9,10是红外数据协会(IrDA)和国际电子电工委员会(IEEE)都推荐的调制方式,本设计采用脉时调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232 8通信,首先产生一个同步头,然后接着 8 位数据比特。如图 2.1所示。图 2.1 PPM 调制波形图普通的红外遥控采用面向指令的帧结构,数据帧由同步码,地址码和指令码组成,指令码长度多为 816 个比特,传送多字节遥控协议时效率偏低,而增加指令码的长度

7、不利于接收器同步,为此本设计选用一种面向字节的帧结构,采用类似于异步串行通信的帧结构,每帧由一个起始位(二进制数 0) 、8 个数据位和 2 个停止位(二进制数 1)构成,如图 2.2 所示。每帧传送 1 个字节的数据,帧与帧间隔大于 2ms,帧结构不含地址信息,寻址问题由高层协议解决8。图 2.2 数据帧结构示意图由于红外光存在反射,在全双工的方式下发送的信号也可能会被本身接收,因此,红外通信应采用异步半双工方式,即通信的某一方发送和接收是交替进行的。2.2 89C52芯片介绍89C52的引脚图如图2.3所示图2.3 89C52芯片引脚图主电源与时钟引脚-此类引脚包括电源引脚Vcc、Vss、

8、时钟引脚XTAL1、XTAL2。(1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。(2)Vss(20脚)接地。(3)XTAL1(19脚)在单片机部,它是一个反向放大器的输入端,该放大器构了片的振荡器,可提供单片机的时钟控制信号。(4)XTAL2(18脚)在单片机部,接至上述振荡器的反向输出端。控制引脚此类引脚包括RESET(即RSR/VPD)、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。(1)RSR/ VPD(9脚):复位信号输入端,高电平有效,当振荡器运行时,在此引加上两个机器周期的高电平将使单片机复位(REST)。复位后应使此引脚电平保持为不高于

9、0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保持部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压围(50.5V)时,VPD就向部RAM提供备用电源。(2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个LSTTL负载。(3)PSEN(29脚):程序存储器允许

10、输出控制端。此输出为单片访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。(4)EA/VPP(31脚):EA功能为外程序存储器选择控制端。当EA端保持高电平时单片机访问部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器的程序。输入/输出引脚此类引脚包括P0口、P1口、P2口和P3口。(1)P0(P0.0P0.7)是一个8位三态双向I/0口,在不访积压外部存储器,做通用I/0口使用,用于传送CPU

11、的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位与数据总路线分时复用口,可带8个LSTTL负载。(2)P1(P1.0P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有部上拉电阻,可带4个LSTTL负载。(3)P2(P2.0P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。2.3 方案的比较与确定本设计的重点在于遥控解码,遥控解码的方式有硬件解码与软件解码。方案一:硬件解码。硬件解码:在承受遥控的一边可以连接一个专用解码芯片,只要按键盘上的键值,它就能直接把这个键值解码出来并存储,当你调用这个键值的时候只要从里面去读取就行了,所以

12、它的解码率高,读取显示简单,这是它的优点。可是该芯片价格昂贵,而且只能解码对应的遥控器,兼容性差,成本昂贵,不适合用作市场量产。方案二:软件解码。软件解码:根据遥控器选择的芯片不同,其遥控码格式也有不同。现在市场上主要有日本的NEC标准和飞利浦标准,通过软件的方式解码时解码的正确率就是一个很重要的指标了。在单片机编程的时候是选择用执行效率高的汇编语言还是选用可读性编写容易的C语言呢?不可否认汇编的执行效率是C语言的几倍甚至几十倍,而且误码率低,可是如果选择汇编的话编写难度可想而知,可是如果用C语言编写的话误码率与实时性又会变得比较差。综合以上考虑,如果我们能够在解码这部分用汇编,而显示与控制这

13、部分用C语言编写的话,就能较好的完成我们预期的目标。因此我选用了两块C52单片机芯片,一块负责红外解码,一块负责显示与控制。事实证明,我的选择和预想中的一样,很好的解决了汇编与C语言难以共存的问题。基于上述比较,我们选择了方案二,采用汇编与C语言共同的软件解码方式。2.4本章小结本章介绍了基于单片机红外遥控密码锁设计的两个重点-红外通讯基本原理与单片机芯片89C51的基础知识。通过介绍实现他的关键技术提出了系统设计的方案-硬件解码方案和软件解码方案。而后对两个方案的优缺点进行比较,最终确定了实现设计的方案-软件解码方案。3 模块功能介绍与实现3.1 红外遥控技术 3.1.1 硬件介绍: 遥控器

14、里面是一个键盘编码器,每个按键对应一个编码,在把编码调制到一个高频信号上,其目的是为了降低发射的功率损耗;再把调制好的信号送给红外发光管把信号发送出去。接收过程恰好与此相反,首先由红外接收管收到微弱的信号,经放大后解解调(把高频载波去掉),再进行解码,就可得到遥控器发过来的数据。如图3.1所示。图3.1 红外遥控流程图图3.1中遥控接收器部分的“光/电放大”和“解调”由一体化接收头完成,单片机要做的只是“解码” 。实验板上一体化接收头的数据输出线经过了 INT0 切换开关连接到单片机的 P32 脚(即 INT0) ,INT0 切换开关弹起时连通。3.1.2 实现方法: 经遥控器发送的是串行数据

15、, 通过脉冲的占空比来区别 0 和 1 ; 以脉宽为 0.565ms,间隔 0.56ms,周期为 1.125ms 的组合表示二进制0 ;以脉宽为 0.565ms,间隔为 1.685ms,周期为 2.25ms 的组合表示二进制1 。其波形如以下图。 图3.2 遥控码的“0”和“1”遥控器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备;后 16 位为 8 位操作码与其反码,最多可产生128 个不同的编码。 当遥控器一个键按下超过36ms,震荡器使芯片激活,将发射一组 108ms 的编码脉冲,这 108ms 发射代码由一个起始码 (9ms) , 一个结果码 (

16、4.5ms) , 低8位地址码(9ms18ms) ,高 8位地址码(9ms18ms) ,8 位数据码(9ms18ms)与其反码(9ms18ms)组成。如果键按下超过 108ms 仍未松开,接下来发送的代码(连发码)就只由起始码(9ms)和完毕码(4.5ms)组成。解码关键在于如何识别0和1 , 0和1均以 0.56ms 的低电平开始,不同的是高电平的宽度不同, 0为0.56ms, 1为1.68ms,所以必须根据高电平的宽度区别0和1 。如果从 0.56ms 过后开始延时,0.56ms 后若读到低电平,说明该位为0 ,反之为1 ;为了可靠起见,延时必须比 0.56ms 长一些,但又不能超过1.1

17、2ms,否则如果该位为0 ,读到的已是下一位的高电平,因此取(1.12+0.56)/2=0.84ms比较可靠。过程如图3.3所示。图3.3 数据码的组成3.2 4*4矩阵键盘因为本设计用到的按键较多,所以本设计采用行列式键盘,同时也能减少所占用的I/O线的数目,节省资源。图3.4行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。本设计发射部分采用4*3键盘,接收部分采用4*4键盘。键盘扫描时,首先由I/O口低四位输出高电平,高四位输出低电平,假若有键按下,那么在I/O口低四

18、位即可读出低电平,接着延时消抖,再具体判断是何键按下。判断键盘中有无键按下 将全部行线 X0-X3 置低电平 然后检测列线的状态 只要有一列的电平为低 则表示键盘中有键被按下 而且闭合的键位于低电平线与4根行线相交叉的 4个按键之中 若所有列线均为高电平 则表示键盘中无键按下 判断闭合键所在的位置。 在确认有键按下后 即可进入确定具体闭合键的过程 其方法是 依次将行线置为低电平 即在置某根行线为低电平时 其它线为高电平 当确定某根行线为低电平后 再逐行检测各列线的电平状态 若某列为低 则该列线与置为低电平的行线交叉处的按键就是闭合的按键. 现将接收部分的键盘功能做一下说明。如图,0至9号键为数

19、字键,六位密码从中产生。“确认”键,“更改”键,“取消”键和“MAS”键为功能按键,具有控制开锁,更改密码和取消相关操作等功能。剩余的两个键在本设计中未用,可作为今后的功能扩展键使用。3.3 I2C总线技术3.3.1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC串行 EEPROM24C02 读写实验 I2I2空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达 25 英尺,并且能够以10Kbps的最大传输速率支持 40 个

20、组件。I2C总线的另一个优点是,它支持多(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 I之间、IC与IC之间进行双向传送,最高传送速率 100kbps。各种被控制电路均并联在这条总线上,但就像机一样只有拨通各自的才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器 (或被控器) ,又是发送器(或接收器),这取决于它所要完成的功能。 3.3.2 I2C通信原理 (1)数据传输:SDA线上的数据必须在时钟的高电平时期保持稳定,SDA线

21、上的电平状态I21 数据传输:SDA 线只有在时钟的低电平时期才能改变。图3.5 SDA和SCL相互关系(2)开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 (3)完毕信号:SCL为高电平时,SDA由低电平向高电平跳变,完毕传送数据。 (4)应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的IC 发出低电平脉(5)总线基本操作:I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信

22、号,则判断为受控单元出现故障。器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。参见图3.6图3.6 SCL与SDA波形关系3.3.3 硬件介绍: 24C04是CMOS 2048位串行EEPROM,部组织成 2568位。16 字节页面写。与MCS-51单片机接口如图 40所示。由于SDA是漏极开路输出,且可以与任何数目的漏极开路或集电极 开路输出

23、“线或”(wire-Ored)连接。上拉电阻的选择可参考 24C02 的数据手册(一般为 10K)。下面是通过I2C接口对 24C04 进行单字节写操作的例程。图3.7 24C02电路图3.4 显示模块3.4.1 LCD液晶显示 LCD1602 可显示两行英文字符,并且带 ASCII 字符库。LCD1602 模块部可以完成显示扫描,单片机只要向 LCD1602 发送命令和显示容的 ASCII 码。表3-1 引脚功能说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,可以通过一个10K的

24、电位器调整对比度)。4RSRS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy fla

25、g)15BLA背光电源正极16BLK背光 电源负极图3.8 LCD1602引脚图表3-2寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以与读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

26、因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。图3.9是1602的16进制ASCII码值:读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。图3.9 1602的16进制ASCII码值表3-3 显示地址1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH指令集160

27、2通过D0D7的8位数据端传输数据和指令。显示模式设置:(初始化)0011 00000x38设置162显示,57点阵,8位数据接口;显示开关与光标设置:(初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0

28、);02H(显示回车,数据指针=0)。通常推荐的初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开与光标设置3.4.2 数码管显示数码管显示有动态扫描显示与静态显示。其中动态扫描显示是最常用的显示方法。在本次设计中,通过动态扫描方式显示密码与其状态。由于人类的眼睛有视觉余留的特性,对快速变化的图象分辨不清,利用这点我们制一数码管处于点亮的时间为 10ms,接着关闭它,锁存数据的显示码,选通这位,控制它点亮 10

29、ms,以此下去直到第六个数码管也点亮 10ms,在从第一位开始重复上面的步骤。图3.10 数码管显示流程图3.5 本章小结 本章具体介绍了红外通讯模块,键盘模块,密码存储模块以与显示模块的基本知识与其实现的方法。红外通讯模块解决遥控解码问题,通过弄清楚红外的编码格式,就能通过软件解码方式读取遥控发射的数据。键盘部分介绍了4*4矩阵键盘的原理与实现。密码存储模块运用了I2C总线技术,详细介绍了I2C总线技术的优缺点。显示部分详细说明了LCD1602液晶显示的基本原理与运用操作,而且还提到了数码管的动态扫描显示原理。4 总结本设计利用两块89C52单片机芯片完成了基于红外遥控密码锁的设计,实现了红

30、外遥控和键盘双输入控制,密码储存部分采用24C02芯片实现了断电保护问题,显示部分实现了数码管六位动态显示状态功能,并扩展到了LCD1602液晶屏上显示,在报警部分设计了蜂鸣器在密码输入错误三次蜂鸣器报警的功能。它的创新点在于用了一块单独的89C52芯片进行红外解码,而且解码部分软件设计用的是汇编语言,而显示键盘部分用的是C语言,通过两块89C52芯片使得这两种语言很好的组合在一起,使得他们既能够很好的完成各自的任务也能很好的兼容在一起完成整个系统的任务。然而系统还是存在如下一些不足:没有考虑过多外部因素对系统的影响,比如密码丢失,误操作对系统的影响。报警与提示功能做得不够完善,遥控的有效距离

31、没有进行系统的论证。这些因素有待进一步完善。参考文献1林伸茂.8051单片机彻底研究基础篇M.:人民邮电,2003:24-153.2广林.Protel 99SE电路设计与制作M.:电子工业,2005:15-342.3冯耀辉等.PowerPCB 5.0入门与提高M.:人民邮电,2004:17-48.4康华光等.电子技术基础第2版M.:高等教育,2004:10-156.5凯,颖超.生化分析仪的设计与与PC机的通信J.微计算机信息,2006:208-209.6马鸿文.基于AT89C52单片机的自动存取柜的设计与实现M.微计算机信息,2006:101-103.7 曹巧媛.单片机原理与应用M.:电子工业

32、,2002.8 牛翌光.单片机原理与接口技术M.:电子工业,2008:32-79.9 路明.C语言程序设计M.:邮电大学,2005:52-268.10 文峥,先亮,其善.IrDA 红外通信在导航仪中的应用J. 2000,10.11 邱玉春,文俊.单片机系统中的红外通信接口J.2000:56-. 12 黄耀军,周云,严国萍.计算机红外无线互连的设计几实现J.2000,2. 13 麦山,皮佑国.基于单片机的协议红外遥控系统J.1998,5.14 Jimemez Petal. Improved PPM schemes for infrared wireless LAN J.Electronics L

33、ettrs,1996,10. 15Serial Infrared Link Access Protocol(IrLAP),Version 1.1. June 16,1996,IBM Corporation , Hewlett-Packard Company, Apple Computer, Inc.,Counterpoint Systems Foundry, Inc.附录 源程序 ORG 0000HMAIN: JNB P3.2,IR ;遥控扫描 LJMP MAIN ;主循环 IR: ;解码开始 MOV R6,#10 IR_SB: ;CPL P1.0 ;LCALL DELAY882;延时882微

34、秒 MOV R7,#202 DELAY882_A:;882us延时 NOP NOP DJNZ R7,DELAY882_A P3.2,IR_ERROR;数据错误退出解码 DJNZ R6,IR_SB;重复10次检测 ;识别连发码 JNB P3.2,$;等待高电平避开9MS低电平引导脉冲 ;LCALL DELAY2400 MOV R7,#245 DELAY2400_A: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_A JNB P3.2,IR_RP;这里为低电平,认为是连发码 ;LCALL DELAY2400 ;延时4.74MS避开4.5MS的结果码 M

35、OV R7,#245 DELAY2400_B: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_B ;读取32位数据码 MOV R1,#1AH;存放数据的起始地址 MOV R2,#4 IR_4BYTE: MOV R3,#8 IR_8BIT: JNB P3.2,$;等待地址码第一位的高电平信号 ;LCALL DELAY882;高电平来后开始延时882uS MOV R7,#202 DELAY882_B:;882us延时 NOP NOP DJNZ R7,DELAY882_B MOV C,P3.2 JNC IR_8BIT_0;延时后为为低电平则跳到IR_8B

36、IT_0 ;LCALL DELAY1000 MOV R7,#229 DELAY1000_A: NOP NOP DJNZ R7,DELAY1000_A IR_8BIT_0: MOV A,R1;将R1中的地址给累加器A RRC A;将C移入A的最低位 MOV R1,A;保存A中的值到RAM中 DJNZ R3,IR_8BIT;接收地址码的高8位 INC R1;下一地址 DJNZ R2,IR_4BYTE;接收完成8位数据,8位数据码和16位地址码 LJMP IR_GOTO ;解码完毕 IR_RP: LJMP IR_GOTO IR_ERROR: LJMP MAIN IR_GOTO: ;执行部分 MOV

37、A,1CH CPL A CJNE A,1DH,IR_ERROR MOV P1,1DH ;接收到的数据显示到P1口 MOV 1AH,#00H ;接收区清0 MOV 1BH,#00H MOV 1CH,#00H MOV 1DH,#00HDELAY2400_1: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_1DELAY2400_2: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_2DELAY2400_3: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_3DELAY

38、2400_4: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_4DELAY2400_5: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_5DELAY2400_6: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_6DELAY2400_7: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_7DELAY2400_8: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_8DELAY

39、2400_9: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_9DELAY2400_10: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_10DELAY2400_11: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_11DELAY2400_12: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_12DELAY2400_13: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_13DELAY2400_14: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_14DELAY2400_15: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_15DELAY2400_16: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_16DELAY2400_17: NOP NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY2400_17DELAY2400_18: NOP

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服