资源目录
压缩包内文档预览:(预览前20页/共42页)
编号:549367
类型:共享资源
大小:1.86MB
格式:ZIP
上传时间:2015-12-03
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
智能学习型遥控系统的设计与实现毕业设计,毕业设计论文
- 内容简介:
-
引言 第 1 页 ( 共 42 页 ) 智能学习型遥控系统的设计与实现 1 引言 1 引言 . 1 1. . 错误 !未定义书签。 1 选题背景 . 3 2 系统综述 . 3 2.1 遥控系统综述 . 4 2.1.1 红外遥控系统编码及译码技术 . 4 2.1.2 脉宽调制控制技术 . 4 2.2 系统及需求分析 . 4 2.2.1 主要功能 . 5 2.2.2 可行性分析 . 5 2.3 遥控器设计背景 . 7 2.4 遥控器功能简介 . 7 2.4.1 红外信号产生发送功能 . 7 2.4.2 红外信号接收整形功能 . 7 2.4.3 红外信号学习功能 . 7 2.4.4 复合 MACRO 功能 . 7 2.4.5 操作蜂鸣提示功能 . 7 2.5 系统开发目标 . 8 nts智能学习型遥控系统的设计与实现 第 2 页 ( 42 页 ) 3 系统分析 . 8 3.1 硬件结构图 . 8 3.2 功能模块图 . 8 4 系统设计 . 9 4.1 硬件模块结构设计 . 9 4.1.1 总电路图 . 9 4.1.3 蜂鸣器提示部分设计 . 11 4.2 软件设计 . 14 4.2.1 译码原理 . 14 4.2.2 主体程序流程图 . 17 4.2.3 译码程序流程图 . 18 5 系统实现 . 19 5.1 硬件部分的实现 . 19 5.2 软件的实现 . 21 5.2.1 译码信号发送程序的实现 . 22 5.2.4 对蜂鸣器鸣叫控制程序的实现 . 27 6 系统的开发环境及测试分析 . 27 6.1 系统开发环境 . 27 6.2 系统测试分析 . 28 6.2.1 硬件测试分析 . 28 6.2.2 程序测试分析 . 28 nts系统综述 第 3 页 ( 共 42 页 ) 6.2.3 全系统测试 . 29 6.2.4 用户验收测试 . 29 7 总结 . 30 1 选题背景 随着科学技术的迅猛发展,我国电子市场在不断增大,电子产品走进千家万户。而在众多电子产品中红外线的应用相当广泛,一些家用电器控制几乎都是用红外遥控器完成。 红外线遥控是目前应用最广泛的一种通信和遥控手段。由于红外线 遥控器具有体积小、功耗低、功能强、成本低等特点。因此,彩电、录像机、音响设备、空调、玩具、门铃以及遥控汽车路牌等其它小型装置上也纷纷采用红外线遥控。 红外线是一种光线,具有普通光的性质,可以以光速直线传播,强度可调,可以通过光学透镜聚焦,可以被不透明物体遮挡等等。特别制造的半导体发光二极管,可以发出特定波长的红外线,通过控制二极管的电流可以很方便地改变红外线的强度,达到调制的目的。因此,在现代电子工程应用中,红外线常常被用做近距离视线范围内的通讯载波,最典型的应用就是家电遥控器。 随着社会科学技术的发展与俱增 ,人们的生活水平也是益提高,为了减少人的工作量,所以是对各种家用电器、电子器件的非人工控制的要求也是越来越高,针对与这种情况,设计出一种集成度比较高的控制体系是必然的。 带红外遥控器的家电给我们的生活带来极大的方便,但遥控器多了很容易弄混,如果有一种可对家中各种红外遥控器发射的控制信号进行识别、存储和再现的智能型红外遥控器,用这样一个遥控器控制家中所有电器该有多好。为此,我们试着设计一种以单片机为核心的智能型遥控器 。 经指导老师同意,确定了此毕业设计的题目。 2 系统综述 本智能学习型遥控系统是将红外发送与接 收技术应用在遥控系统上,它完全可以替代普通的遥控器,而且可以集多个遥控器于一身,解决了日常生活中由于遥控器过多造成的许多不便。本遥控系统将红外传送遥控系统智能化,可使产品缩小体积,增nts智能学习型遥控系统的设计与实现 第 4 页 ( 42 页 ) 强功能,并且能够学习和控制各种不同类型的红外遥控设备。本系统所涉及的技术主要包括:红外载波数据传输技术、单片机控制技术、红外遥控系统编码及译码技术、脉宽调制控制技术、电路 PCB 设计与制作技术等。 2.1 遥控系统综述 2.1.1 红外遥控系统编码及译码技术 本系统中使用的红外遥控发射电路 SC6122。它是一块用于红外遥控系统中的 专用发射集成电路,采用 CMOS 工艺制造,可以在 2 0V 至 5 5V 的低电压下工作,它通过 SEL 选择管脚,可支持 128+6 条指令码,用户编码可自由选择。接 64 个按键,其中有三组双重按键。 SC6122 所发射的一帧码含有一个引导码, 16 位的用户编码和 8 位的键数据码。键数据码的反码也同时被传送。引导码由一个 9ms 的载波波形和 4.5ms 的关断时间构成,它作为随后发射的码的引导。这样,当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测及其它各项控制之间的时序关系。编码采用脉冲位置调制方式 (PPM)。利用脉冲 之间的时间间隔来区分“ 0”和“ 1”。每次 8 位的码被传送的同时,它们的反码也被传送,以大大减少系统的误码率。 2.1.2 脉宽调制控制技术 采样控制理论中有一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。脉宽调制( PWM)控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率 脉宽调制是一种调 制或改变某个方波的简单方法。方波占空比基本形式是随输入信号变化的。占空比是指方波的高电平时间和低电平时间之比。一个 50%占空比的波形会具有 50%的高电平时间和 50%的低电平时间,而一个 10%占空比的波形则具有10%的高电平时间和 90%的低电平时间。 2.2 系统及需求分析 nts系统综述 第 5 页 ( 共 42 页 ) 2.2.1 主要功能 通过对生活中经常用到的遥控系统的了解以及调查,本系统基本要实现以下功能: ( 1) 红外信号产生发送功能 。在遥控系统接通电源后,就处于工作准备好状态,可以通过遥控器上的矩阵按键,就可以发送红外信号。 ( 2) 红外信号学习功能 。在遥控 器进入学习状态后,可以按下遥控器的矩阵按键,红外接收头就会采集到对方发送的红外信号,并将电信号转换成数字信号将其存储。从而实现学习功能。 ( 3) 复合 MACRO 功能 。该功能能够实现一个按键可以实现多个按键的功能。 ( 4) 数据存储功能 。 在对遥控系统在学习状态下获取到信号转换成数字信号的时候,就需要将数字信号保存到存储模块当中。 2.2.2 可行性分析 要完 成本系统 功能,主要需要解决三大方面的内容:第一个就是对红外信号的译码问题,通过查找具体型号遥控器的技术资料,了解其编码规则,并在存储式示波仪上观察其具体波形,在以上基础 上还可直接用单片机将数据通过串口传到 PC 机上进行具体分析;第二个就是通过按键发送相应的数据功能的实现,通过单片机译出各按键的键码值,然后通过红外发送头发送信号。第三个就是数据存储功能的实现,将接收后转换得到的数字信号存储在存储器中。 在技术难度方面,由于有指导老师的指导和相关参考文献,因此完全可以实现。 在系统中使用的单片机是 AT89S52, AT89S52 是一个低功耗 ,高性能 CMOS 8 位单片机 ,片内含 8k Bytes ISP(In-system programmable)的可反复擦写 1000次的 Flash只 读程序存储器 ,器件采用 ATMEL 公司的高密度、非易失性存储技术制造 ,兼容标准MCS-51 指令系统及 80C51 引脚结构 ,芯片内集成了通用 8 位中央处理器和 ISP Flash存储单元 ,功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52 具有如下特点: 40 个引脚 ,8k Bytes Flash 片内程序存储器 ,256 bytes 的随机存取数据存储器( RAM) ,32 个外部双向输入 /输出( I/O)口 ,5个中断优先级 2层中断嵌套中断 ,2个 16位可编程定时计数器 ,2个全双工串行通 信口 ,看门狗( WDT)电路 ,片内时钟振荡器。 nts智能学习型遥控系统的设计与实现 第 6 页 ( 42 页 ) 该单片机可组成独立系统,并且成本低,运行速度快,其强大的功能是完全可以实现该系统的。 红外信号译码的实现 本系统最重要的就是译码的准确性,为了做到这一点最主要的是要对红外接收头输出信号的彻底分析,主要是通过输入到存储式示波仪上观察其波形,记录其波形规则及具体的维持时间,也可以通过单片机对红外接收头输出的信号通过对高低电平计数的方式通过串口输入到 PC 机上,观察单片机对信号接收的误差,再有针对性的进行比较准确的译码。 在对遥控器发码规则搞清楚的基础上,就可以在单片机 程序上下功夫进行译码了,当红外线信号由低跳高或由高跳低的时候启动定时计数器,并对计数结果进行保存,再对一系列的数据分析判断其属于哪个范围,若属于编码规则“ 0”的范围则译码“ 0”,若属于编码规则“ 1”的范围则译码“ 1”。然后再对译码产生二进制位进行组合区分,以分离开客户码和按键码等,得到键码值就可以了。 按键发送数据信号 的实现 在遥控器上有按键矩阵和学习按键,当在按键矩阵中的任意一个键按下时,遥控器进入发送信号状态,红外发送头会将该按键的相关信息发出。如果按下学习按键,遥控器进入学习状态,然后按下矩阵按键中的 任意一个,遥控器进入等待红外信号的接收,接收成功后,当再次按下矩阵中的那个按键后,遥控器又将进入发送信号状态。 复合 MACRO 功能的 实现 在遥控系统学习状态中,复合 MACRO 功能能够使一个键的集成多个按键的功能。在一些单片机系统中,一键多功能的技术,开关 SP1 接在 P3.7/RD 管脚上,在AT89S52 单片机的 P1 端口接有四个发光二极管,上电的时候, L1 接在 P1.0 管脚上的发光二极管在闪烁,当每一次按下开关 SP1 的时候, L2 接在 P1.1 管脚上的发光二极管在闪烁,再按下开关 SP1 的时候, L3 接在 P1.2 管脚上的 发光二极管在闪烁,再按下开关 SP1 的时候, L4 接在 P1.3 管脚上的发光二极管在闪烁,再按下开关 SP1 的时候,又轮到 L1 在闪烁了,如此轮流下去。这样就实现了具有一键多功能的按键识别技术。 操作声音提示 的实现 在本系统中,通过按键对系统操作或按键发送信号的时都会有蜂鸣音的提示,蜂nts系统综述 第 7 页 ( 共 42 页 ) 鸣是通过和 CPU 来控制的,其蜂鸣时间长度和频率都是通过程序控制的。 2.3 遥控器设计背景 以方便人们生活对电器的控制为宗旨,以减轻工人的劳动负担为主要目的。采用先进的技术和方法,依靠高素质的科研人员和高水平的检测检验队伍,提供分析监 控服务,同时进行监控技术和方法的研究。给人们的日常生活带来更多的方便, 建立 智能学习型遥控系统,对电器进行遥控 , 还可以学习其它遥控器的按键功能,操作的同时还有蜂鸣声音提示。无论何时何地,都能在你的手中遥控着。 2.4 遥控器功能简介 本系统主要实现以下各功能:红外信号产生发送功能、红外信号接收整形功能、红外信号学习功能、复合 MACRO 功能、操作时蜂鸣提示功能。 2.4.1 红外信号产生发送功能 本红外遥控系统运行后,并不立刻发送数据,必须要按下按键矩阵中的任何一个键后才会发送信号,若持续按键时间超过一定时 间将会自动默认你已经松开按键,发送头将按正常情况发送信号。 2.4.2 红外信号接收整形功能 当遥控系统进入学习状态下的时候,当外界有相应的红外信号发送过来,红外接收头将会接收到该信号并将该信号转换成数字传输给单片机。 2.4.3 红外信号学习功能 当单片机收到红外接收头传送来的数字信号的时候静态稳定高亮显示,用来显示系统所处状态。 2.4.4 复合 MACRO 功能 复合 MACRO 功能就是能够人那个单片机的学习功能更加强大,减小遥控器的体积,复合 MACRO 功能就是一个键可以学习多个功能,即可以发送多种不 同的信号。 2.4.5 操作蜂鸣提示功能 nts智能学习型遥控系统的设计与实现 第 8 页 ( 42 页 ) 在本系统中只要按键就发出不同的蜂鸣提示。在系统刚接通时,蜂鸣器会连续鸣叫两声,表示系统已经准备好工作。在按键矩阵任意按下键时,蜂鸣器都会鸣叫一声,表示信号发送成功。 2.5 系统开发目标 ( 1)开发出满足上述功能的系统; ( 2)努力使该系统具有稳定、耐用、可靠度高、使用方便等特点; ( 3)尽量降低成本、优化系统; ( 4)改进设计以适合广泛应用。 3 系统分析 3.1 硬件结构图 本系统的功能设计电路应该包括以下几个基本电路。其电路组成图如下: 图 1 智能学习型遥控系统结构图 3.2 功能模块图 根据本系统设计思想,本系统具有红外信号产生发送功能、红外信号接收整形功能、红外信号学习识别功能、复合 MACRO 功能、数据存储功能。其功能框图如下: M C U 按 键 矩 阵 LED 指示电路 红外发 射电路 功率放 大电路 EEPORM 存储 放大 电路 红外接收传 感 器 nts系统分析 第 9 页 ( 共 42 页 ) 图 2 智能学习型遥控系统功能图 4 系统设计 4.1 硬件模块结构设计 在该设计中,电路的设计都是经过再三斟酌的,并且用 Protel 画出电路图,为以后做 PCB 以及焊接电路做好准备。 4.1.1 总电路图 本系统电路包括电 源部分电路、红外接发送与接收点路、单机最小系统电路、蜂鸣器声音提示电路、数字信号存储电路,在本电路中,主要用到单片机的 P0 和 P1口, P0 口把单片机产生的信号传送到三极管基极,然后再由红外发送头将它发送出去。 P1 口连接矩阵按键,来控制单片机应该发送那个信号。 智能学习型遥控系统 红外学习识别功能 红外信号 发射功能 红外信号接收功能 复合MA C H O功能 数据存储功能 nts智能学习型遥控系统的设计与实现 第 10 页 ( 42 页 ) 图 3 红外遥控系统 总电路 4.1.2 红外接收部分电路设计 该图是红外线遥控器信号接收头的简易电路,它可接收载波频率从 3357KHz 的遥控器信号。 10 电阻起到限流的作用, 47uF 电容滤波减少干扰 ,当红外接收头 OUT 端没有信号输出时 ,10K 的电阻能使红外接收头 OUT 端保持高电平。以逻辑笔接触红外线接收模块的信号输出端( OUT),便可以侦测当按下红外线遥控器某一按键时,红外线数字信号的发射。若有发射红外线数字信号则经过红外线接收模块取出数字信号数据,逻辑笔脉冲 LED 便会闪动。这是检测红外线遥控器好坏最简单的方法。当外部有 红外线信号时,该 LED 灯会闪烁提示。 PNP 型三极管的基极接在红外接收头的信号输出引脚 ,三极管的集电极极接地 ,发射极接光发二极管 ,然后通过 1K 的电阻接电源nts系统设计 第 11 页 ( 共 42 页 ) 正极 ,其中 1K 的电阻在此电路中起限流的作用。当没有红外线信号的时候,其输出脚保持高电平,此时三极管截止,当有红外线信号时,红外线接收头的输出会出现低 变,此时三极管出现导通电流,所以发光二极管闪动。 图 4 红外遥控系统接收电路 4.1.3 蜂鸣器提示部分设计 本红外遥控系统的蜂鸣器声音提示部分电路如上图所示,在单片机的 P2 5 脚通过 1K 的电阻 与 8550 三极管的基极相连,三极管的集电极接地,发射极与蜂鸣器的负极相连,蜂鸣器的正极接电源正极。电源正极通过 10K 电阻与单片机的 P2 5 脚相连。因此当 P2 5 脚没有信号输出高电平时, P2 5 脚相当与接一个 10K 上拉电阻而保持高电平,三极管截止,没有电流通过蜂鸣器。当 P2 5 脚输出低电平时,三极nts智能学习型遥控系统的设计与实现 第 12 页 ( 42 页 ) 管导通 ,有电流通过蜂鸣器,蜂鸣器发出鸣叫声音,其中 1K 的电阻起限流作用。因此可以通过程序控制单片机 P2 5 脚的输出状态来控制蜂鸣器的蜂鸣频率及蜂鸣时间。 图 5 遥控系统蜂鸣器提示电路 4.1.4 单片机最小系统及部分周边电路设计 单片机的最小系统包括震荡电路、复位电路、工作指示灯等。系统中采用 11.0592的振和 2 个 30P 的片电容构成震荡电路,由 1K 电阻和 22uF 电容和一个按键构成上电复位电路,通电工作时工作指示灯为亮。 nts系统设计 第 13 页 ( 共 42 页 ) 图 6 单片机最小电路 4.1.5 遥控系统按键矩阵电路设计 本 实用新型涉及按 键控制技术,针对现有技术端口用量大、成本高的缺陷,提供一种按键矩阵,包括按键电路和多个按键,按键电路包括电源、上拉电阻、处理单元和多个分压支路;多个分压支路彼此并联, 并与上拉电阻串联后接于电源的两极之间;每一分压支路对应一个按键,包括串联的按键开关和分压电阻,各分压支路分压电阻的阻值各不相同;处理单元的两端分别接于多个分压支路的两个并联端,用于测量按键按下时该按键对应的分压支路两端的电压,并将测得的电压值与预先存储的按键电压值进行匹配,输出匹配按键的按键值。由于整个按键矩阵仅配置一个端口,可大大节省芯片资源,降低按键电路的成本,且使用的器件数量少,易于实现 。 nts智能学习型遥控系统的设计与实现 第 14 页 ( 42 页 ) 图 7 按键矩阵电路 4.2 软件设计 在本系统中,硬件部分电路设计比较简单,主要的 难点就是集中在程序设计方面,因为程序就是灵魂。在译码过程中都是要靠严密的程序来实现的,现在我将具体讲解本系统的程序设计思想。 4.2.1 译码原理 红外线遥控器是以红外发光 LED,发射波长 940nm 的红外线不可见光,来传送信号。整个遥控器系统分为发射端和接收端两个部分,发射端经过红外线发射 LED送出红外线控制信号,这些信号经过红外接收模块接收端接收进来,并对其控制信号做译码而做相对的动作输出,完成遥控的功能。当按下遥控器上某键后,遥控器上的控制芯片便进行编码产生一组句柄,结合载波电路的载波信号(一般使用 38kHz)而成为合成信号,经过放大器提升功率而推动红外线发射二极管,将红外线信号发射出去,所以要发射的句柄必须加上载波才能使信号传送的距离加长,一般遥控器的有效nts系统设计 第 15 页 ( 共 42 页 ) 距离为 7m。红外接收主要控制组件为红外线接收模块,其内部含有高频的滤波电路,专门用来滤除红外线合成信号的载波信号( 38kHz)而送出发射器的控制信号。当红外线合成信号进入红外线接收模块,在其输出端便可以得到原先的数字控制编码,只要经过单片机译码程序进行译码,便可以得知按下了哪一按键,而做出相对应的控制处理,完成红外线遥控的动作。在红外线信号的传播中,其 编码方式有:时间调制、相位调制、电平调制等,其中以时间调制为主。本系统所使用的遥控器的红外信号编码方式为时间调制。 要将译码做得非常准确必须先要弄清楚遥控器的编码规则及观察其具体波形,再具体分析其误差范围,然后有针对性的译码准确率将大大提高。下面来分析一下所使用的遥控器所发的红外信 号。 首先在存储式示波仪上观察其波形如下: 图 8 示波仪观察红外接收头信号 再查阅该 IC 遥控器所发码的编码格式如下: 图 9 遥控器发码格式 还了解其逻辑“ 0”和逻辑“ 1”的定义: 客户码引导码 键码反码客户码反码 键码nts智能学习型遥控系统的设计与实现 第 16 页 ( 42 页 ) 图 10 遥控器的逻辑位定义 图 10 为每按下一个按键所发的一串码的格式,可以观察看出,该型号遥控器所发码包含引导码、 8bit 位客户码、 8bit 位客户码反码、 8bit 按键码、 8bit 按键码反码以及结束码组成。图 12 为其逻辑位的定义,以及其电平时间长度,可以了解其编码规则, 560us 时间的高和 590us 时间的低电平应译码“ 0”, 560us 时间的高和 1690us时间的低电平应译码“ 1”。 通过大量的实验测试以及观察波形发现,红外接收头输出的为遥控器发射码的反向,红外接收头在没有信号到达时,其输出端一直保持高电平,直到接收到红外线信号时,才会有低的跳 变。这一点是相当重要的,因为单片机对红外接收头信号的译码正是从第一个低跳变开始的。 在图 10 中,观察红外线信号的波形的时候,一方面是观察其高低电平的变化,可以直接根据规则手工译码;另一方面要注意记录其各电平持续的时间,确定大概的活动范围。为了精确起见,可以直接用单片机将其高低电平计数数据通过串口传送到PC 机上仔细观察,确定范围。 有了前面的了解,对红外线信号的译码就不是那么困难了。可以用单片机的一个定时计数器,对其高低电平进行计数,具体是这样的:当单片机检测到第一个低电平,则定时计数器 T0 立即开始计数,等到 检测到高电平出现, T0 停止计数,读 TH0 寄存器中的值,检测是否为引导码,是就跳过 16 位的客户码, T0 计下每次底电平的时间,再判断这个时间属于哪个范围即可译码“ 0”或者“ 1”,如此循环,直到译出所有的位。 9ms 560us 560us 4.5ms 590us 1690us 引导码 0 1 nts系统设计 第 17 页 ( 共 42 页 ) 取键值 取键码 开始 系统初始化 信号处理 生成发码波序列 发码第一帧 对方是否有信号发出 继续发一帧码 是否为学习键 否 否 有 等待一定时间接收信号 按键是否松开 键 4.2.2 主体程序流程图 图 11 主体程序流程图 nts智能学习型遥控系统的设计与实现 第 18 页 ( 42 页 ) 等待键码下一位高 电平 ,T0 停止计数 等待键码第一位低电平 ,T0 开始计数 等待键码第一位高电平并置 TH0、 TL0、 h_count 为零 当前位为 1 初始化 ,置 TH0、 TL0 为零 判断其是否为引导码 TH00x04 进入译码程序 否 是 H_count #define uchar unsigned char #define uint unsigned int #define send0 send_pulse_565 (); send_space_1685 (); #define send1 send_pulse_565 (); send_space_560 (); uchar SYS_DATA=0x49; /系统码 sbit OUT=P37; void send_bit (uchar one_bit); /发送一位字节 void send_data (uchar one_data); /发送一个数据 /包括一个起始标志 一个系统码及其反码 一个数据码 (one_data)及其反码 char code nts系统实现 第 23 页 ( 共 42 页 ) disp=0x28,0x7E,0xA2,0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0x30,0x25,0xA7,0x26,0xA1,0xB1; char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0; /显示缓冲 void delay(uchar t) char a; while(t-) for(a=255;a0;a-); void display(uchar t) while(t-) P0=dispi1; P2=0x7f; /对 P2口进行赋值 delay(1); P2=0xff; /对 P2口进行赋值 P0=dispi2; P2=0xbf; /对 P2口进行赋值 delay(1); P2=0xff; /对 P2口进行赋值 P0=dispi3; P2=0xdf; delay(1); P2=0xff; /对 P2口进行赋值 P0=dispi4; P2=0xef; delay(1); /延时一小段时间 P2=0xff; P0=dispi5; P2=0xf7; delay(1); P2=0xff; P0=dispi6; P2=0xfb; /对 P2口进行赋值 delay(1); /延时一小段时间 P2=0xff; P0=dispi7; P2=0xfd; delay(1); P2=0xff; P0=dispi8; nts智能学习型遥控系统的设计与实现 第 24 页 ( 42 页 ) P2=0xfe; delay(1); P2=0xff; void send_pulse_9000 (void) /9ms 脉宽 TH0=0xdc; TL0=0xff; TR0=1; TR1=1; while(TR0); TR1=0; OUT=1; /发送引导码中 9ms 的高电平 void send_space_4500 (void) /4.5ms 间隔 OUT=1; TH0=0xee; TL0=0x7f; TR0=1; while(TR0); OUT=1; /发送引导码中 4.5ms 的低电平 void send_pulse_565 (void) /0.565ms 脉宽 TH0=0xfd; TL0=0xee; TR0=1; TR1=1; while(TR0); TR1=0; OUT=1; /发送客户码 565ms 的高电平 void send_space_1685 (void) /1.685ms 间隔 OUT=1; TH0=0xf9; TL0=0x7f; nts系统实现 第 25 页 ( 共 42 页 ) TR0=1; while(TR0); OUT=1; void send_space_560 (void) /0.56ms 间隔 OUT=1; TH0=0xfd; TL0=0xea; TR0=1; while(TR0); OUT=1; void send_bit (uchar one_bit) uchar i; uchar key_num=0x01; for(i=0;i1; /one_bit 右移一位 void send_data (uchar one_data) uint t=1000; send_pulse_9000(); /起始码 9ms的脉宽 考虑到误差 send_space_4500(); /4.5ms 的间隔 send_bit (SYS_DATA); /发系统码 send_bit (SYS_DATA); /发系统码的反码 send_bit (one_data); /发数据码 send_bit (one_data); /发数据码的反码 TR1=1; while(t-); TR1=0; OUT=1; nts智能学习型遥控系统的设计与实现 第 26 页 ( 42 页 ) void main(void) uchar c=0x77; uint t=65535; TMOD=0x21; /T0 产生精确时间的延时或脉宽 16位 /T1产生 38kHz方波 8位自动重装 TH1=0xf3; TL1=0xf3; IE=0x8a; delay(255); display(100); delay(255); display(100); while(1) send_data(c); void time0 (void) interrupt 1 TR0=0; TR1=0; void time1 (void) interrupt 3 /T1 用来产生 38kHz方波 OUT=OUT; 5.2.2 按键检测程序的实现 本系统的按键检测分两种情况 ,一种是矩阵按键按下的时候 ,这时候红外发射头会发送一帧信号,信号里面含有该按键的键码。另一种是按下学习按键后,系统将等待对方的信号输入,如果有信号输入,将该信号译码并保存至存储器中备用,如果没有信号输入,系统将等待一定得时间,如果超过等待时间还没有信号输入,系统将又回到获取键码 的状态。以下程序段是此系统检要的按键检测程序: /判断是哪键接下程序 /功能 :根据键码中的值按键后需要做出的反应 /条件 :temp_h,temp_l 中要有值 nts系统实现 第 27 页 ( 共 42 页 ) /结果 :current_n中得到当前按键 if(temp_h=0x00&temp_l=0x09)current_n=1; /判断是不是矩阵键 1 if(temp_h=0x01&temp_l=0x0d)current_n=2; /判断是不是矩阵键 2 if(temp_h=0x01&temp_l=0x0f)current_n=3; /判断是不是矩阵键 3 if(temp_h=0x01&temp_l=0x09)current_n=4; /判断是不是矩阵键 4 if(temp_h=0x00&temp_l=0x0d) /判断是不是学习按键 current_n+; if(current_n=7)current_n=1; 5.2.4 对蜂鸣器鸣叫控制程序的实现 本系统中的蜂鸣器鸣叫控制程序比较简单,当需要鸣叫的时候,给控制蜂鸣器的脚输出低电平,则蜂鸣器鸣叫,当输出高电 平时,蜂鸣器不会鸣叫。通过调整输出低电平时间的长短可以控制鸣叫的时间长短。反复通断可以让蜂鸣器连续鸣叫。以下程序段为对蜂鸣器鸣叫控制程序: /蜂鸣器鸣叫程序 Beep=1; /一开始蜂鸣器是不应该叫的 /有按键按下时 ,译码 ,蜂鸣器鸣叫 beep=0; /输出低电平让蜂鸣器鸣叫 delay05s(); /让蜂鸣器持续鸣叫 0.5秒 beep=1; /输出高电平让蜂鸣器停止鸣叫 写入单片机的部分详细程序请参见附录。 6 系统的开发环境及测试分析 6.1 系统开发环境 系统开发环境包括硬件平台和软件平台两种。 硬件环境。开发本系统需要一些必须的硬件准备,如: PC 机、 MCS51 系列单片机编程器、万用电路板、 TDS220 存储式数字示波仪、万用表、 5V 稳压电源、制板和焊接的一些工具,以及必须的电子元器件等。要很好地完成该设计这些都是必须的,nts智能学习型遥控系统的设计与实现 第 28 页 ( 42 页 ) PC 机可以实现程序的编译产生单片机可以识别的机器码,并可以和外部硬件电路联合防真。编程器是单片机开发中必不可少的,它的功能是把 PC 机编译后产生的机器码写入单片机的程序存储器,因此在单片机的开 发中起到相当大的作用。仿真机可以通过和 PC 机的连接来实现硬件的防真,而不需要每次都把程序写入单片机才可以调试。在本设计中还有一个重要的测试工具就是存储式示波仪,它能较准确并形象地测试出红外线信号,并测试出一些必要的数据,为单片机的译码工作提供重要的依据。 软件环境。在本系统的开发中会用到以下辅助软件: Keil、 Protel 99se、以及编程器的驱动等软件。 Keil 主要是完成程序的编译及提供防真环境,应用 Protel 可以完成电路及电路板的设计, Protel 是一款电路设计专业软件,应用该软件可以轻松完成电路图 的设计,并且其超强的自动布线功能,更能出色完成电路 PCB 的绘制。 6.2 系统测试分析 在本系统开发过程中采用了多种措施保证质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入应用,将会造成难以想像的后果,因此系统测试是开发过程中为保证质量必须进行的工作。 由于系统中隐藏的某些缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明系统正确;成功的测试也不是没有发现错误的测试。有意义的系统测试应该是从“破坏” 系统的角度出发,精心设计最有可以暴露系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出系统中潜在的错误和缺陷。 6.2.1 硬件测试分析 硬件测试一般是对硬件的稳定性和可靠度所进行的测试,主要是通过改变外部环境观察其是否能正常工作,比如电源波动等,并作出相应的保护措施,若发现问题及时寻求解决的方法,力求增加系统的稳定性和安全性。另一方面就是检测红外接收头工作的稳定性,在本设计中,红外接收头是采集红外线信息的重要元件,所以其能不能正常稳定的工作直接影响到测码系统的稳定,可以进行多次长时间 的测试,看其错误的几率有多大,再根据具体的情况增加保护,或改善电路,增加抗干扰的能力。 6.2.2 程序测试分析 nts系统的开发环境及测试分析 第 29 页 ( 共 42 页 ) 单元测试: 对每部分功能的单元进行测试,单元测试也称模块测试或程序测试。单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。 组合测试: 组合测试的对象是指已经通过单元测试的模块,不是对零散模 块进行单个测试,而是用系统化的方法装配和测试程序系统,是一个严格的过程,必须认真地进行。把各个不同功能的模块组合起来进行相关功能的严格测试,是否能够达到预期的效果,若出现差错,客观认真地分析原因,并寻求最佳的解决方案。 6.2.3 全系统测试 主要把硬件和软件结合起来进行比较全面的测试,主要可以通过以下各方式进行: 白盒测试: 白盒测试就是在了解系统各功能的情况下所进行的有目的的测试,来验证各部分功能是否都已达到预期效果,并检查是否会有新问题的出现。 黑盒测试: 在对系统功能完全不了解的情况下所进行的无目 的的测试,对所有按键及遥控器的检测过程中,无目的的随便操作,观察其运行情况是否有问题出现,若有问题及时找出原因,并修改。 老化测试: 让系统较长时间工作,观察其是否能够长时间正常运行,是否有死机等情况。本系统在该测试中,连续工作一天各部分功能仍然正常。 6.2.4 用户验收测试 在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实测试。产品的服务者是用户,用户的要求高于一切,用户的意见也代表了一切。 该系统在线装完成后的第一次测试过程中,主要有以下问题:按键灵敏度不够、nts智能学习型遥控系统的设计与实现 第 30 页 ( 42 页 ) 信号发送不够稳 定,容易受到干扰。 针对这些问题我主要对程序做了一定的修改,在按键灵敏度问题上,采用结合实际情况来完善程序;在信号不稳定的问题上,主要是根据特殊情况解决一些常见的干扰。所以经过以上的具体修改问题都有明显改善。 7 总结 完成本设计需要一定的知识面,和对各种知识的准备。需要有冷静的头脑和分析问题的能力,及解决问题切实可行的方法。在本设计中我认为最重要的是以下这些方面和问题: 本设计中需要注意的重要方面: ( 1) 需要对单片机知识有相当的了解,特别是对定时计数器的运用,再就是程序设计方面,具备对程序运行分析的能力, 和解决问题的方法; ( 2) 对红外接收头信号的分析一定要准确,虽然在存储式示波仪上能够较形象地观察到其波形,可毕竟不是最准确的数据,若要得到准确的数据,在测试阶段,可以用单片机把定时计数器所测数据直接传到 PC 机进行分析,这样测得数据更加准确,而且是直接面向单片机的,对译码十分有利; ( 3) 要求有一定的硬件知识,具备一般的分析判断及解决问题的能力,对电路板的制作也有一定的要求; 本系统所解决的主要问题及欠缺: ( 1) 本智能学习型遥控系统主要解决了针对 NEC 编码格式的遥控器信号的译码问题,通过红外接收头接收其他遥控器所发送的红外信 号,并且能够译码存储起来。这样就实现了通过一个遥控器来控制多个电器。 ( 2) 本系统也存在一些欠缺,主要有学习功能状态下的时候容易受到干扰,就是由可能在红外线较多的地方,学习功能可能不容易成功。 nts参考文献 第 31 页 ( 共 42 页 ) 参考文献 1 MCS-51 系列单片机系统及应用 蔡美琴等 高等教育出版社 2003.5, 1-188。 2 MCS-51 系列单片机系统原理与设计 苏凯等 冶金工业出版社 2004.3, 10-212。 3 8051单片机彻底研究基础篇 林伸茂 人民邮电出版社 2003.7, 24-153。 4 Protel99SE 电路设计与制作 赵广林 电子工业出版社 2005.8, 15-342。 5 PowerPCB5.0入门与提高 冯耀辉等 人民邮电出版社 2004.6, 17-48。 6电子技术基础康华光等 高等教育出版社 2004.7, 10-156。 7常用电子元件及应用 陈永莆等 人民邮电出版社 2005.4, 2-256。 8数字电子技术基础 阎石等 高等教育出版社 2002.8, 1-254。 10单片机原理与应用 孙涵芳等 北京航空航大学出版社 2003.6, 5-3
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。