1、 毕 业 设 计题 目: 红外多路遥控发射及接收系统设计与制作 诚 信 声 明本人声明:1、本人所呈交的毕业设计(论文)是在老师指导下进行的研究工作及取得的研究成果;2、据查证,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经公开发表过的研究成果,也不包含为获得其他教育机构的学位而使用过的材料;3、我承诺,本人提交的毕业设计(论文)中的所有内容均真实、可信。作者签名: 日期: 年 月 日 毕业设计(论文)任务书 设计(论文)题目: 红外多路遥控发射及接收系统设计与制作 姓名 罗伟 系别 电气与信息工程系 专业 电子信息工程 号 12 指导老师 刘正青 职称 高级实验师 教
2、研室主任 刘望军 一、基本任务及要求: 本设计要求完成通过空间的传播实现对受控设备的控制,发射部分完成遥控指令的发射,接受部分完成遥控指令的接受实施,课题要求完成实物制作。功能要求:发射端用数字显示所控的路数和状态级别,接受端用数码管作为被控对象并显示受控对象及工作状态。1、 遥控对象为8个2、 状态控制数:8种,即可对每个设备进行8种工作状态的控制3、 工作频率:40KHZ4、 遥控距离大于5米5、 发射功率大于100mW二、进度安排及完成时间: (1)第一周至第四周:毕业实习; (2)第五周至第六周:查阅资料、撰写文献综述和开题报告; (3)第七周至第九周:查阅资料进行整体电路及单元电路设
3、计; (4)第十至十二周:修改并完善电路,并进行实物制作; (5)第十三周至第十五周:撰写设计说明书; (6)第十六:毕业设计答辩; 红外多路遥控发射及接收系统设计与制作目 录一、绪 论11.1 引 言11.2本课题的主要任务1二、红外遥控系统简介22.1 系统组成框图22.2 多路控制的红外遥控系统4三、红外遥控系统的总体设计53.1 发控制系统设计53.1.1 电路设计53.1.2软件设计93.2 接收控制设计143.2.1电路设计143.2.2软件设计15四、器件介绍194.1 AT89C51单片机简介194.1.1主要特性194.1.2 管脚说明204.1.3 振荡器特性214.1.4
4、 芯片擦除214.2 编译码集成电路VD5026/5027简介22六、系统的调试与分析286.1 发射系统的调试286.2 接收系统的调试296.3 整机联调及数据分析30七、结束语31附录A:参考文献33附录B:程序清单34附录C:整体电路原理图38摘 要随着科学技术的飞速发展,信息的飞快传播,红外遥控在人们的生活中已经成为不可或缺的部分。本文重点介绍了利用单片机AT89C51实现红外发射和接收电路的设计方法。发射电路采用单片机89C51将待发送的二进制信号编码调制为40KHz的脉冲信号通过红外发射管发射红外信号。红外接收端采用一体化红外接收头HS0038接收红外接收信号。它同时对信号进行放
5、大检波,整形得到TTL电平的编码信号再送给单片机。经单片机解码实现对不同设备的控制。整个电路耗电省、简单可靠、操作灵活、性能价格比高,较好地满足了现代生活,生产和科研的需要。广泛应用在家用电器,安全保卫,及人们的日常生活中。例如电视机的遥控,音响设备的遥控,电风扇的遥控,安全保卫报警器,遥控空调器,自动门等均可采用红外遥控技术来实现。关键词:遥控电路;红外发射;红外接收;单片机ABSTRACT With the rapid development of technology, the rapid dissemination of information means that infrared
6、control has become an indispensable component in peoples life. The article highlighted the design method of transmitting and receiving circuit by infrared control which use single-chip microcomputer AT89C51 . The emission circuit concocts the binary system signal coding which is prepared to send wit
7、h the signle-chip microcomputer 89C51.Then the pulse signal uses infrared emission diode to send the infrared signal. The infrared signal is received by the integrative infrared receiving CX20106. At the same time the signal is magnified and plasticed to get the TTL coding signal sending to the sign
8、le-chip microcomputer. After that the signle-chip microcomputer decodes the signal to control different equipments. The entire circuit is simple, reliable, flexible operation,high-performance, of high value and low cost, and it can meet the modern life, production and research need. The infrared rem
9、ote system is abroad used in the wirings, security ward and people daily life. For emample, it can be used to remote control TV, raido and air-condition. Also used in security alarm, auto door and so on. Key Words:Remote controlling circuit;Infrared emission;Infrared receiving;Single-chip microcompu
10、ter红外多路遥控发射与接收系统设计一、绪 论1.1 引 言 随着电子技术的突飞猛进,尤其是跨入2000年后,红外技术得到了极速发展。红外遥控已渗透到国民经济的各行各业和人们日常生活的方方面面,伴随着科学技术的不断进步和地球空间技术的发展,使人们对红外线技术的研究越来越深入,应用范围更广泛,尤其是在红外遥感技术和红外通信技术领域里,数字锁相技术和传感器技术的巨大进步,大大加速了这个进程,目前无线产品在商业销售中的使用已相当普遍,但大多存在着很大的局限性,电路繁杂,计算难度大且多为模拟电路,抗干扰能力差,准确度底,电路的维护调试很不方便。越来越多的远距离控制和数据通信系统引入了不可见的红外线作为
11、传输媒介进行通信,组成了无线红外遥控通信系统,此方法以其成本底、精度高、保密性强、技术性能稳定的特点而受到广大用户和专业人士的欢迎。目前市场上流行的各类红外线通信系统都是以调制解调的方式,在数字锁相环技术的基础上加以应用,这种方法对发送信号进行编码、调制,其可靠性、误差小、成本低、传输距离远、功耗低。在工业自动化、生产控制过程、信息采集和处理、通信、红外制导、激光武器、电子对抗、环境监测、红外育种安全防范、家用电器控制及日常生活各个方面都得到了广泛的应用。红外线遥控作为目前应用最广泛的一种通信和遥控手段,因而有广泛的实用价值,值得借鉴和推广。1.2本课题的主要任务本课题的核心是设计出一个无线红
12、外多路遥控发射/接收系统的软件。本设计要求掌握无线红外多路遥控发射/接收系统的工作原理,本红外多路遥控发射接收是以红外线为传递信息媒体的短距离无线控制系统,可对8个受控对象的工作状态进行遥控,适用于工业,医疗,家用电器等设备的开启或关闭控制,也可以对一种设备八种工作状态进行控制。具体要求如下:(1) 遥控距离 不小于5m,即红外遥控发射机与红外接收机之间的距离不小于5m; (2) 遥控路数 8路,即可对8个受控设备进行8种控制; (3) 工作频率 40kHz,即红外发射和接收的载频为40kHz; (4) 发射端可显示控制路数,接收端可显示受控状态 。 二、红外遥控系统简介红外遥控是目前家用电器
13、中用得较多的遥控方式,在讲红外线遥控之前,首先讲一讲什么是红外线。我们知道,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.620.76m;紫光的波长范围为0.380.46m。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。红外线遥控就是利用波长为0.761.5m之间的近红外线来传送控制信号的。 2.1 系统组成框图通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 编码脉冲编码红外发射键盘及
14、其代码延时20ms结 束译 码等待按键释放计算存值 图2-1红外发射、接收系统组成方框图发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同(见图2-2),只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略
15、判定。图2-2 接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用PC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(
16、VO或OUT)。图2-3给出一些成品红外接收头的外形。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的。在发射端对晶振进行整数分频,分频系数一般取12,所以455kHz1237.9 kHz38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。此次遥控系统的设计要求载波频率为40KHz。 图2-32.2 多路控制的红外遥控系统多路
17、控制的红外发射部分一般有许多按键,代表不同的控制功能。当发射端按下某一按键时,相应地在接收端有不同的输出状态。接收端的输出状态大致可分为脉冲、电平、自锁、互锁、数据五种形式。“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。“电平”输出是指发射端按下键时,接收端对应输出端输出“有效电平”,发射端松开键时,接收端“有效电平”消失。此处的“有效脉冲”和“有效电平”,可能是高、也可能是低,取决于相应输出脚的静态状况,如静态时为低,则“高”为有效;如静态时为高,则“低”为有效。大多数情况下“高”为有效。“自锁”输出是指发射端每按一次某一个键,接收端对应输出
18、端改变一次状态,即原来为高电平变为低电平,原来为低电平变为高电平。此种输出适合用作电源开关、静音控制等。有时亦称这种输出形式为“反相”。“互锁”输出是指多个输出互相清除,在同一时间内只有一个输出有效。电视机的选台就属此种情况,其它如调光、调速、音响的输入选择等。“数据”输出是指把一些发射键编上号码,利用接收端的几个输出形成一个二进制数,来代表不同的按键输入。一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便后级适时地来取数据。这种输出形式一般用于与单片机或微机接口。除以上输出形式外,还有“锁存”和“暂存”两种形式。所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予
19、以“储存”,直至收到新的信号为止;“暂存”输出与上述介绍的“电平”输出类似。38 三、红外遥控系统的总体设计3.1 发控制系统设计 此部分设计要求:用数码管显示所控制路数以及控制状态,即 第一次按下“1”键显示数字“1”,表示对设备“1”进行选择,再按下键则表示对设备“1”进行的控制状态。按下“0”表示复位。再按下“2”表示对设备“2”进行选择,在按下键及对设备“2”进行控制3.1.1 电路设计 发射控制部分电路主要分为:按键及控制电路,显示电路,编码电路,脉码调制振荡电路,红外发射电路这5部分。(1)按键及控制电路按键及控制电路由AT89C51与键盘组成,根据设计要求,此系统要求对八路信号进
20、行遥控,因此电路采用4*4矩阵键盘按键输入方式。按键的一端接89C51的P1(P1.0P1.7)口,另一端接+5V电源。这种方式的优点是编程简单,416 按键的单片机键盘接口:当键盘数为 416键时再用独立方法实现就得占用 416的 I/O口,显然是一种浪费。这时我们就用行列扫描式方案,行数加上列数就等于我们的按键总数,这样我们要 16个按键时只要 8个 I/O 口,也就是占用了一个字节 I/O口,这种16 键行列扫描是最常用的一种了。下面就 16个按键的键盘为例,说一下行列键盘的扫描方法。逐点扫描法:设 P1口的低 4 位置为 0,高 4位置为 1,当无按键时 P1口的数据始终保持F0H 不
21、变。当有按键时,高位中的高电平会和低位中的低电平短路。此时高位中的高电平就会被拉低(任何高电平遇到低电平都为低),即高 4 位中有 0出现。当单片机读 P1 口的值不为 F0H 时则表示有键按下,经过去抖处理后就开始扫描这一个键的位置了。先把 P1 的高 4 位置 0,低 4 位置 1,下面置低第 1 列线并置高第 1 行,之后再读第 1 行的电平,为高说明不是第 1 行第 1 列的键被按下,跳到下一个点的扫描(第 1列第 2 列)。当其为 0时表示第 1 行第 1列的键被按下,调用相应处理程序。逐点扫描的优点是它的编程简单,易于理解,可以作同时按多个键的识别。缺点是它的速度慢,处理程序代码较
22、长。逐行扫描法:和逐点扫描的方法相似,只是数据的处理是以一行的 4 位数据直接处理,也就是先使能第 1 行(置低电平),然后看哪一列的数据变成低电平了,如果高4 位数据没有变为低电平则使能下一行。找到了按键所在的行并测出列数据就可以调用相应处理程序。逐行扫描的照逐点扫描要好的多,程序相对简单,速度快,也支持同时多按键处理。一般的扫描键盘多用此法。全局扫描法:全局扫描是只先设 P1的高 4位为 1,低 4位为 0,即 F0H,然后读取 P1 口的数据如果不为 F0H 说明有键按下,经过延时去抖处理后读出 P1 口的值,因为低 4 位是 0 无论按键如果都不会影响它,只有高 4 位被改变。将数据寄
23、存起来后再把 P1 的状态反过来,将 P1的高 4 位置0,低 4位置 1,即 0FH,再读一次数据。这时高 4 位的值是 0 依然不变。这样两次读取我们就得到了 2 个字节的数据(XXXX0000和 0000XXXX,X为读到的数据),最后我们将这两个数相或(将两个半字节数据溶合为一个字节),就得到了一个新的字节,用这个字节和我们的设定的数据比较来决定键值。全局扫描只用两次扫描,速度快,易学易用,程序简单,可是它不支持同时多键处理,最佳适用 4*4扫描键盘,可以用在一般的用途。按键接口电路如图:图3-1(2)显示电路 在显示电路部分用到八段LED显示器。八段LED显示器由8个发光二极管组成。
24、其中7个长形条的发光管排列成”日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如下图4所示。 图3-2数码管电路图共阴和共阳结构的LED显示器各笔划段名和安排位置时相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制就可以表示欲显示字符的字形代码。例
25、如,对于共阴LED显示器,当公共阴极接地(为零电平),而阴极hgfedcba 各段为01110011时,显示器显示“P”字符,即对于共阴LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。设计要求用数字显示所控制的路数,即将发送的键值转换成与数码管显示相对应的字符码。选89C51的P2口作为字符码输出端口。因为51单片机I/O口输出低电平时输出的电流很小,数码管不会太亮,所以用锁存器74HC373来驱动数码管发光,显示接口电路见附图1。数码管显示18数字时,P2口应送出的字符值分别为:F9H、A4H、B0H
26、、99H、92H、83H、F8H、80H。并用89C51的P3.4、P3.5口分别控制74HC373允许输入G与输出控制/OE。(3)编码电路编码电路有集成电路VD5026组成,它将进行的4位BCD码变换成串行的编码信号。其功能是将并行的4位BCD码转换成串行输出信号,经调制以后发射。将89C51单片机P3口的P3.3P3.0直接接到VD5026的数据输入D3D0端,另外用P3.5接发射指令,VD5026的工作原理与性能见器件介绍。具体电路见附图1。(4)脉冲调制振荡电路为了提高传输信号的抗干扰能力,还需要将编码信号调制在较高频率的载波上发射。本课题要求载波频率为40KHz,故可采用CMOS门
27、电路构成的脉冲调制电路。当编码信号A为高电平时,振荡器工作,输出为载频信号;当编码信号为低电平时,振荡器不工作,输出为低电平。输出的编码调制信号波形如下图5中的B所示。A B图3-3 编码调制波形图脉码调制振荡电路见下图6所示 图3-4 脉码调制振荡电路图(5)红外发射电路红外发射电路有放大电路和红外发射管组成。G3、G4为隔离级,其作用是减少发射时的大电流对振荡级的影响;三极管对发射信号进行电流放大。当G4输出为高电平是,三极管导通,红外管工作,当G4输出为低电平时,三极管截止,红外管不工作。 图3-5 红外发射电路图3.1.2软件设计软件设计有两种方法:一种是自上而下,逐步细化;一种是自下
28、而上,先设计出每一个具体的模块(子程序),然后再慢慢扩大,最后组成一个系统。在本设计中我用自下而上的设计方法。首先设计出一个延时子程序,再设计显示子程序,最后组成一个按键查询程序。当然在编程之前要先画程序流程图。画程序流程图是程序设计的一个重要组成部分,而且决定成败的关键部分。画程序流程图的过程就是进行程序的逻辑设计过程,这中间的任何错误或忽视均将导致程序出错或可靠性下降。因此,真正的程序设计过程是流程图设计,而上机编程是将设计好的程序流程图转换成程序设计语言而已。正确的流程图画法是先粗后细、一步一个足印,只考虑逻辑结构和算法,不考虑或少考虑具体指令。这样画流程图就可以集中精力考虑程序的结构,
29、从根本上保证程序的合理性和可靠性。接下来就是进行指令代换,这时只要消除语法错误,一般就能顺利编出源程序。发射部分的软件设计有两种方案。第一种方案是在发射部分从编码程序的设计着手,从而设计出整个发射部分。下面是两种方案的比较。(1)方案一:编码程序的设计课题要求用数字显示所遥控的路数,即将发送的键值与数码管显示相对应的字符码。键盘的每一键均表示一种控制,并赋予了键值,因此,编码程序的作用是控制单片机读键盘,然后生成与键值一致的编码,并用串行数据方式发送编码,编码程序流程图如图8所示。 图3-6编码流程图其中,置波特率子程序用于设定数据传送速率。当选择串行发送方式1时,其波特率由定时器T1的溢出率
30、和SMOD的位状态确定。串行数据发送子程序用来设定数据发送程序。串行发送方式1是由10位异步通信方式,其中1个起始位,8个数据位和1个停止位。发送时,首先送出起始位,而后发送数据位D0D7(由低位到高位),最后为停止位。当10位发送完毕后,89C51的T1自动跳变为1,产生中断,串行发送结束。注意:在进行多次发送数据时,必须在程序中有清零命令。按键子程序用来判断有无按键按下。判断时可先将P1口中对应行的口全置“1”,即P1输出为0FH,然后用读引脚的办法将P1口值读入,读入值与0FH 一致,则无键按下,否则就有键按下。10ms延时程序是为了消除按键瞬间按下的抖动。(2)方案二的程序框图下面是程
31、序框图的一部分,是通用的4*4矩阵键盘按键查询程序框图。NNNYYY返回键值置0所有列输出置0设置列扫描输出参数和循环次数列扫描输出行输入修改列输出扫描参数所有列输出置0设置列扫描输出参数和循环次数所有列输出置0结束开始行输出全为1?逐行检查是否有键按下4列扫描完?图3-7 4*4矩阵键盘按键查询程序框图DELAYR7设初值0AHR6设初值0FFHR6-1=0否?R7-1=0否?返回YYNN 图3-8 延时程序框图 (3)方案二的程序设计主控程序的设计思想:发射控制程序主要用到了独立式按键查询程序、延时程序和查表显示程序。用89C51单片机的P1口作为按键的输入,P2口作为显示输出,P3口作为
32、键值的BCD码输出和控制输出。用寄存器R0作为计数器,初值为零,在每次测试有无按键按下之前加1,直到加到7为止,然后又从零开始加,是为了显示查表子程序中查表的目的。由于此系统要求是对8路信号的遥控,在编程时没有用到八位二进制数到四位BCD码的转换。只判断输入健值,然后将其对应的四位BCD码送P3口的低四位输出。P5用做锁存器74HC373和编码器VD5026的输出控制,当有信号要发射时此端口为低电平。P3.4用做控制74HC373的允许输入端,高电平有效。显示电路的程序设计思想:当测试到是哪一路信号输入时,将其对应值的是十六进制数送P2口输出。其对应情况为:信号通道 P2口输出(十六进制) P
33、3口输出(十六进制)按键“1” 0F9H 0D1H按键“2” 0A4H 0D2H按键“3” 0B0H 0D3H按键“4” 99H 0D4H按键“5” 92H 0D5H按键“6” 83H 0D6H按键“7” 0F8H 0D7H按键“8” 80H 0D8H查表显示电路的程序如下:DISP: ;显示子程序PUSH SP PUSH PSW MOV DPTR,#TAB MOV A,R0 MOVC A,A+DPTR ;查表MOV P2,A ;将测试到的信号的十六进制送P2口,显示输出POP PSW POP SP RET ;返回TAB: DB 0F9H,0A4H,0B0H,99H,92H,83H,0F8H,
34、80HEND如下是延时子程序:DELAY: ;延时子程序MOV R7, #01H D1:MOV R6, #0FFHD2:DJNZ R6,$ ;R6减于1不等于零则转移DJNZ R7,D1 ;R7减于1不等于零则转移RET ;返回方案一更适合工作状态数比较大的情况下,如对8路受控对象进行8种工作状态的控制,即工作状态总数为8*8种。方案二则是只要求对八路受控对象进行开关控制。由于本课题是要求对8个受控设备进行八种控制的。显然我们选用方案一。方案一的读入键值子程序是确定被按下的键。当确定有键被按下时,可先对4根列线轮流置“0”,4根行线全部置“1”,由此产生置位值。再读P1口,读入值与置位值一致,
35、则无键按下,否则就有键按下,读入值即为键值。将键值作为发射码送串行发送口。方案一程序设计时,在汇编语言的环境下进行编程,在PROTEUS上运行和调试。3.2 接收控制设计 接收控制部分的设计要求:用8个数码管的数字表示相应设备的状态第几个数码管亮则表示第几路进行控制,数码管数字显示几则表示控制状态。3.2.1电路设计接收控制部分主要有:红外接收、解调电路,解码电路,控制电路三部分。(1)红外接收、解调电路红外接收电路通常由一片专用集成电路和少量外围器件组成。我们采用了应用最为广泛的芯片CX20106,图11是由CX20106组成的红外接收、解调电路。红外接收管将光信号转换为电信号,从CX201
36、06的1脚输入,经前置放大器、限幅放大器放大后送至带通滤波器,带通滤波器的中心频率与红外发射载波频率相同。检波器、积分器组成解调电路,对接收信号进行解调。施密特触发器对解调输出信号进行整形,从7脚输出,该输出为集电极开路电路,因此要接上拉电阻。所有红外遥控器的输出都是用编码后串行数据对3840kHz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,由于单片机的指令周期是微秒(s)级,而已调波的脉宽只有20多s,会产生很大的误差。因此先要对已调波进行解调,对解调后的波形进行测量。 图3-9 红外接收解调电路(2)解码电路解码电路的功能是将解调后的串行数据进行解调,使其成为BCD控制代码,
37、并使控制代码进行输出。VD5027是与VD5026配对使用的通用接收解码器。收到的串行数据从VD5027的14脚输入,经数据提取电路判断后与序列发生器产生的本地地址码亿比特一比特地进行校验。如果第一次接收到的地址码和本地地址码相符,则将紧接着收到的4位数据马储存在内部4bit移位寄存器中(不移到输出锁存器)。当第二次收到的地址码仍与本地地址码相符,则将新收到的数据码于上一次储存的数据码加以比较,若两次相同则控制逻辑电路使有效传输输出端VT为高电平,4比特移位积存器中的数据码转移到输出锁锁存器,并且在输出锁存器保留,直到新的数据代替它。保留在锁存器的数据经缓冲器后输出,同时有效传输输出端VT保持
38、高电平。若两次不相同或4个数据周期内没收到信号,则VT为低电平。电路连接见附图2。(3)控制电路控制电路有89C51与八个发光数码管组成,数码管的亮、灭表示设备的工作状态:亮说明受控设备开启,灭说明受控设备停止。数字表示控制状态。数码管连接在89C51的P2口,在编程时,89C51将收到的四位BCD码转换二极管的控制信号来使二极管发光或熄灭,证明设备的受控情况。P2.7P2.0分别控制18路信号,及1到8号数码管。每次只有一路信号输出,所以数码管每次只有一只亮数字。3.2.2软件设计同样的在接收部分主要有译码即解码程序设计和控制程序设计。 (1)程序框图译码的工作过程是,由89C51将解调后的
39、编码读入,再由内部程序将读入的编码译成相应的路控制信号,由于编码的就是键值,因此可用查表程序将键值转换成相应的控制信号并用识别标志位的方法,识别键值所对应的控制方式,译码程序流程如图12所示。 收解调信号复位键?查表检测键值路控制?状态控制并返回显示“0”并返回路控制并返回YYNN 图3-10 译码程序流程图接收控制程序的目的是测试接收到的控制信号,从而控制P2口的输出,使其为高电平或低电平,达到控制受控设备的要求。考虑到接收的只是四位BCD码,所以测试时只判断P1口的低四位(P1.3P1.0)是否为0或1。例如:当测试到P1.3P1.0为0011时,说明接收到的是第三路信号,则选择P2.5口
40、作为信号的输出端,也就是将P2.5清零,使第三个二极管发亮,说明接收到了第三路信号。测试过程为:先检测P1.3是否为0,为0;再检测P1.1是否为0,不为0。说明是1;最后检测P1.0,为1,证明接收到的是0011,即可控制P2.5为0,使第3只数码发光。 下面是接收部分的程序框图:开始赋初值P3.2=0?P1.3=0?P2=FFHP1.2=0?P1.1=0?P2.7=低P2.0=低P1.0=0?P1.0=0?P1.0=0?P1.0=0?P2.7=低P2.7=低P2.7=低P2.7=低P2.7=低P2.7=低返回键值置0L5L3L6L1L2L4L7100001L811000011 图3-11 接收控制程序框图(2)程序设计设计思想:接收控制的输入用89C51的P1口低四位(P1.3P1.0),当有信号输入P3.2也有中断输入,此时测试P1.3P1.0为0或1,判断是哪路信号,再选择相应的端口输出控制信号。其对应情况:P1.3P1.0 P2端口(P2.7P2.0) 受控设备0001 01111111 数码管“1” 0010 10111111 数码管“2”0011 11011111 数码管“3”0100 11101111