红外解码单片机控制声卡采样触屏校验毕业设计论文_第1页
红外解码单片机控制声卡采样触屏校验毕业设计论文_第2页
红外解码单片机控制声卡采样触屏校验毕业设计论文_第3页
红外解码单片机控制声卡采样触屏校验毕业设计论文_第4页
红外解码单片机控制声卡采样触屏校验毕业设计论文_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要 随着家用电器种类的增加和无线遥控产品的普及,红外遥控器的使用频率越来越高,针对国内红外遥控学习技术成熟,但产品化程度低的特点,本文自主设计一种具有红外学习和触屏显示功能的红外遥控器,借此促进红外遥控学习技术在国内市场的产品化推广。 在红外解码方面,传统方法采用单片机中断或者查询方式采集红外信号,环境不理想情况下可能需要多占空比和红外二极管贯通电流影响,通过调试将38khz 载波红外信号发射距离提高到10 米;在红外接收方面,进行了红外干扰测试;在触屏校验方面,通过实验获取触屏数据,利用matlab 参数估计lsqcurvefit 函数求得校正参数,解决了触屏漂移问题;在彩屏显示方面,将

2、遥控器所有按键简化为方向键和确认键,虚拟数码管显示按键位置,避免了单片机片上资源紧张的问题,此外,彩屏仅支持16 位r5g6b5 格式数据,一张176*220 图片占用72. 6kb 空间,造成极大浪费,本文借此讨论了适合本系统的图片压缩技术,给出了一种具体的图片压缩格式。关键词:红外学习;红外解码;单片机控制;声卡采样;触屏校验abstractin the electronic world, the infrared remote control technology is widely used in our lives. various appliances on the market

3、have the technology of infrared remote control system with maturity and low cost. however, to avoid different brands and between different types of equipment malfunction, people use different devices in different transport rules or identification number, which makes various types of remote control a

4、pply only to their remote objects and easy causes confusing results that the actual use of the remote control are many and complex. the design requirements is to achieve an intelligent learning ir remote control implementations.keywords: infrared remote controller;the 38khz carrier;self-study;infrar

5、ed remote receiver;infrared remote transmitter目 录1. 绪论11.1 选题的目的意义 21.2 红外学习研究现状 31.3 选题研究的内容 32 智能红外遥控学习方案设计42.1 总体方案介绍42.2 方案论证 52.21 学习方式 52.22 按键模块 52.23 显示模块 62.24 红外接收模块 62.25 微控制器选择 6 3 硬件电路设计 73.1 系统硬件基本组成73.2 主要模块电路设计73.2.1键盘和显示电路设计83.2.2 红外发射电路及其编码83.2.3红外接收电路 113.2.4 存储电路 123.2.5 单片机控制电路

6、134 系统软件设计164.1 系统编程语言和编程工具 164.1.1编译软件keil uvision2简介174.2软件设计 184.2.1学习功能 194.2.2数据压缩编码 255 智能红外遥控器的实现 315.1 系统硬件调试 325.1.1 元件的使用 325.1.2 整板测试 345.1.3 上电测试 345.2系统软件调试 365.2.1按键与显示模块调试 365.2.2接收模块调试 365.2.3发射模块调试 405.3调试小结 455.4 智能红外遥控器性能测试485.41 测试所使用仪器505.42 测试结果555.43 结果分析58总结 60谢 辞 62参考文献 63附录

7、1:主程序部分代码651 绪论1.1 选题的目的意义随着电子工程在产品设计中的应用日益广泛,对产品的人性化设计成为设计领域一个新的革命。遥控器主要由形成遥控信号的微处理器芯片、晶体振荡器、放大晶体管、红外发光二极管以及键盘矩阵组成。随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。在当今社会科学技术的发展与日俱增,人们是生活水平也是日益提高,为了减少人的工作量,所以是对各种家

8、用电器、电子器件的非人工控制的要求也是越来越高,针对与这种情况,设计出一种集成度比较高的控制体系是必然的。单片机的集成度很高,它具有体积小、质量轻、价格便宜、耗电少等突出特点,尤其耗电少,又可使供电电源体积小、质量轻。所以特别适用与“电脑型产品”,它的应用已深入到工业、农业、国防、科研、教育以及日常生活用品(家电、玩具)等各种领域。单片机特别适合于把它做到产品的内部,取代部分劳师机械、电子零件或元器件。可使产品缩小体积,增强功能,实现不同程度的智能化。红外线是一种光线,具有普通光的性质,可以以光速直线传播,强度可调,可以通过光学透镜聚焦,可以被不透明物体遮挡等等。特别制造的半导体发光二极管,可

9、以发出特定波长(通常是近红外)的红外线,通过控制二极管的电流可以很方便地改变红外线的强度,达到调制的目的,因此,在现代电子工程应用中,红外线常常被用做近距离视线范围内的通讯载波,最典型的应用就是家电遥控器。使用红外线做信号载波的优点很多:成本低、传播范围和方向可以控制、不产生电磁辐射干扰,也不受干扰等等。因此被广泛地应用在各种技术领域中。带红外遥控器的家电给我们的生活带来极大的方便,但遥控器多了很容易弄混,如果有一种可对家中各种红外遥控器发射的控制信号进行识别、存储和再现的智能型红外遥控器,用这样一个遥控器控制家中所有电器该有多好。为此,我们试着设计一种以单片机为核心的智能型遥控器。通过此设计

10、可以提高我们对专业知识的运用能力,让我们把在大学三年中所学到的专业知识真正的运用到实践当中。在设计过程中使我们能够把专业知识系统的,有条理的连接起来。1.2 红外学习研究现状常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940mm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一

11、下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉锯法来粗略判判定。接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mw左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用pc1373h、cx20106a等红外接收专用放大集成电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头

12、的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(vdd)、电源负(gnd)和数据输出(vo或out)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38khz这是由发射端所使用的455khz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455khz1237.9khz38khz。也有一些遥控系统采用36 khz、40 khz、56 khz等,一般由发射端晶振的振荡频率来决定。红外遥控

13、的特点是不影响周边环境的、不干扰其他电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥即可。因此,现在红外遥控在加用电器、室内近距离(小于10米)遥控中得到了广泛的应用。多路控制的红外发射部分一般有许多按键,代表不同的控制功能。当发射端按下某一按键时,相应地接收端有不同地输出状态。接收端地输出状态大致可分为脉冲、电平、自馈、互锁、数据五种形式。“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有

14、效脉冲”,宽度一般在100ms左右。“电平”输出是指发射端按下键时,接收端对应输出端输出“有效电平”消失。此处的“有效脉冲”和“有效电平”,可能是高、也可能是低,取决于相应输出脚的静态状况,如静态时为低,则“高”为有效;如静态时为高,则“低”为有效。大多数情况下“高”为有效。“自锁”输出是指发射端每按一次某一个键,接收端对应输出端改变一次状态,即原来为高电平变为低电平,原来低电平变为高电平。此种输出适合用作电源开关、静音控制等。有时亦称这种输出形式为“反相”。“互锁”输出是指多个输出互相清除,在同一时间内只有一个输出有效。电视机的选台就属此种情况,其他如调光、调速、音响的输入选择等。“数据”输

15、出是指把一些发射键编上号码,利用接收端的几个输出形成一个二进制数,来代表不同的按键输入。一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便以后适时地来取数据。这种输出形式一般用于与单片机或微机接口。除以上输出形式外,还有“锁存”和“暂存”两种形式。所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予以“储存”,直至收到新的信号为止;“暂存”输出与上述介绍的“电平”输出类似。1.3 选题研究的内容该论题研究的内容主要是以下几个方面:(1),研究红外遥控信号波形;(2),设计红外遥控器信号接受系统;(3),信号转换系统设计; (4),转换发送电路设计;2 红外遥控学习方

16、案设计2.1 总体方案介绍红外遥控器的核心元器件是编码芯片,将需要实现的操作指令事先编码,设备接收后解码再控制有关部件执行相应的动作。编码是通过载波输出的,即所有的脉冲信号均调制在载波上,载波频率通常为38khz。在发送端,载波利用电信号驱动红外发光二极管,将电信号变成光信号发射出去,发射的是红外光,波长范围在 840nm 到 960nm 之间。在接收端,通过光电二极管将红外光信号转换成电信号,经放大、整形、解调等步骤,最后还原成原来的脉冲编码信号,并根据遥控指令完成相应的动作。学习型红外遥控器通过记录各种不同类型的遥控器的编码波形,将其存储下来并与某个按键关联,从而实现“学习”功能这样作不必

17、关心编码的细节,通用性大大提高。根据课题要求初步制定了实现上述功能的基本思路。此系统主要分为6大模块:单片机控制模块、键盘模块、红外接收模块、红外发送模块、存储模块、显示模块。(其中的主要模块是单片机控制系统模块,主要的功能实现都是由单片机程序控制,键盘的扫描,液晶的显示,红外遥控信号的接收、学习以及发射都是由单片机的程序来控制。)系统原理框图如1.1所示:图1.1系统组成原理图自学习型遥控器的功能主要分为学习和发送两个部分。在学习的过程中,收电路接收到红外遥控信号以后, 经过放大并解调出ttl电平信号送至微处理器进行处理。经过微处理器处理以后存储到外存储器里 。当要发射红外信号时,根据扫描键

18、盘电路获取的键盘值,从与键值相对应的外存储器存储区中还原出相应的红外遥控编码 ,并调制到38khz的载波信号上。最后通过放大电路驱动红外发光二极管发射红外信号。达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备的功能。2.2 方案论证2.21 学习方式从目前市场上主要出现的万能学习型遥控器看,主要分为两大阵营:(1)固定码式学习型遥控器。这类学习型遥控器采用了“不完全归纳法”,也就是说对市场上所使用的遥控器信号大量的收集总结,对收集的信号分类,然后“分而治之”对每种类别都预制一种解码程序和发射程序。这种方式的学习过程是:学习信号的采集 ;判别信号的类别(属于那一种解码方案),编码,存

19、储到。优点:这种学习型遥控器对硬件的要求相对简单,对主控制器(主控ic)的工作频率要求不太高,因为信号的发送频率,编码方式等等都是已知的,只要对采集的信号进行判别即可;另外对存储器的容量也比较低,因为它不存在压缩的问题,按照最原始的最简编码进行存储。缺点:只能对已知的遥器(或者说已经收集到的信号)有效,对于新开发,新型的编码格式就无能为力了。(2)波形拷贝式学习型遥控器。这类遥控器的设计思想是:把原遥控器所发出的信号进行完全拷贝,而不管遥控器是什么格式,进行适当的压缩后,存储在存储器内,当需要发射时,再由储存器内读出解压后还原原始信号。此方式的工作过程分以下几步完成:对原始发射信号波形采集到主

20、控mcu的中、分析信号,压缩信号,存储信号。发射信号波形的测量,这一步主要是将原始信号缓存储到中。分析信号,对采集到的信号进行分析,比如对信号发送的的高低电平的时间,等参数进行细致分析,便于下一步的压缩。压缩编码,根据常用高低电平的时间,特殊高低电平的时间,发送周期,对原始信号进行压缩编码。存储信号,把压缩编号后的数据存储到eeprom中优点:可以使用任何遥控器的学习,无须更新代码程序即可使用目前所有乃至未来的所有红外线遥控的学缺点:对主控制芯片和存储器的选择都比固定式要高。整体成本上较贵于固定码式学习型遥控器由于遥控器发出的编码信号变化多样,市场上成百上千的编码方式并存,并没有一个统一的国际

21、标准,只有各芯片厂商事实上的标准,使得模拟并替换各种原厂遥控器成为难点。而且客户码、命令码也是由不同厂商自行规定的。导致采用第一种方案来设计有很大的局限性,因此第二种是较为可行的方案。即通过记录各种不同类型的遥控器的编码波形,将其存储下来并与某个按键关联,从而实现“学习”功能这样作不必关心编码的细节,通用性大大提高。因此2.22 按键模块方案1:采用独立式按键。独立式按键电路配置灵活,。软件结构简单,每个独立式按键单独占有一根i/o口线,每根i/口线上的按键工作状态不会影响其他i/o口线的工作状态。但是每个按键必须占用一个i/o口线,在按键较多时,i/o口线浪费较大。故在按键数量不多时,采用这

22、种按键电路。独立式按键与单片机接口图如2.1所示:图2.1 独立式键盘方案2:使用矩阵键盘管理专用芯片,比如hd7279。占用比较少的资源就能管理一个按键数比较多的键盘,集成了硬件消抖功能,提高了程序的执行效率。但是增加硬件成本和仪器的功耗。方案3:行列式键盘,用i/o口线组成行、列结构,按键设置在行、列线交点行,行、列线分别连接到按键开关的两端。在按键较多时,可以节省i/o口线。24加3个功能键的键盘与单片机接口图如2.2所示。图2.2 24加3个功能键的键盘设计中使用的单片机i/o口丰富,不用考虑i/o口紧张,而且通常家用电器有32个键盘,选择方案3。2.23 显示模块方案1:采用数码管(

23、led)显示。数码管价钱较便宜,对环境因素要求较低,显示明亮,采用 bcd 编码显示数字,程序编译相对容易,资源占用少。但同时它的显示内容有限,只能显示简单的数字和字母。这种常用的液晶,耗能也高。方案2:采用液晶(lcd)显示。液晶显示屏(lcd)具有轻薄短小,耗电量低,无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强和显示形式灵活等优点。只是编程工作量较大,控制其占用资源较多,但在本系统中对控制器的资源使用中完全可以使用。综上所述,选择方案2。2.24 红外接收模块方案一:采用红外接收二极管加专用的红外处理电路。接收电路的红外接收管是一种光敏二

24、极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。此种电路结构较复杂,现在一般不采用。方案二:采用一体化红外接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,不需要任何外接元件,就能完成从红外线接收到输出与ttl电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。综上所述,选择方

25、案2。本系统所使用的红外接收头的型号是常用的hs0038,即其载波的频率是用38khz(37.9khz)。2.25 微控制器选择方案1:用常用的单片机。at89c51等类似的单片机我们之前用过,很熟悉,用它作为主控单元,但此类单片机往往由于工作频率较低,它的内部存储器容量过小,难以满足本系统的设计需要。方案2:使用基于stc单片机,比如选择stc89c52rc型单片机是一种低功耗、高性能、采用cmos工艺的8位微处理器,与工业标准型80c51单片机的指令系统和引脚完全兼容。片内8k flash存储器可在线重新编程,或使用通用的非易失性存储器编程器。由于一般的距离测量中,距离的变化速度并不太快,

26、而且单片机的机器周期可达s级,则其计时精度为s级,完全可以满足系统测量的要求,并且成本较低。stc89c52rc单片机,基于stc89c51内核,是新一代增强型单片机,指令代码完全兼容传统stc89c51,速度快812倍,带adc,4路pwm,双串口,有全球唯一id号,加密性好,抗干扰强。综上所述,选择方案2。3 硬件电路设计3.1 系统硬件基本组成基于单片机的智能化遥控器的系统硬件结构主要有以下六部分组成: 单片机系统电路、红外接收电路、红外发送电路、存储电路、键盘电路、显示电路。3.2 主要模块电路设计3.2.1键盘和显示电路设计(1)键盘电路设计24加3个功能键的键盘电路模块见图3.1所

27、示。键盘的实现方法是给所有的列线i/o口线均置成低电平,然后将行线电平状态读入到单片机中,如果有键按下,就会有一根行线电平被拉至低电平,根据次原理就可以检测到是哪个键按下。图3.1 键盘电路(2)显示模块电路显示部分采用了1602型lcd显示模块。1602型lcd显示模块具有体积小,功耗低,显示内容丰富等特点。1602型lcd可以显示2行16个字符,有8位数据总线d0d7和rs,r/w,en三个控制端口,工作电压为5v,并且具有字符对比度调节和背光功能。1602型lcd的接口信号说明和主要技术参数分别如表3.1、3.2所示.表3.1 1602型lcd的接口管脚信号编号符号引脚说明编号符号引脚说

28、明1vss电源地9d2data i/o2vdd电源正极10d3data i/o3vl液晶显示偏压信号11d4data i/o4rs数据/命令选择端(h/l)12d5data i/o5r/w读写选择端(h/l)13d6data i/o6e使能信号14d7data i/o7d0data i/o15bla背光源正极8d1data i/o16blk背光源负极表3.2 1602型lcd的主要技术参数显示容量16x2个字符芯片工作电压4.55.5v工作电流2.0ma(5.0v)模块最佳工作电压5.0v字符尺寸2.95x4.35(wxh)mm图3.2中的显示电路中的10针接口与单片机的p1口相连,6针的接口

29、与单片机的p2口的高位相连。图3.2 显示电路3.2.2 红外发射电路及其编码(1)红外发射电路红外光是电磁波的一种,其频率高于微波而低于可见光,是一种人的肉眼看不到的光线。通常将其中间0.761000m的波谱段称为红外光谱区。一般把红外光波谱细分为四个区域,即近红外(0.763.0m)、中红外(3.06.0m)、中远红外(6.020m)、和远红外(201000m)区。这里说的近远是指红外光在电磁波谱中与可见光的距离而言。我们实际的红外遥控系统中所使用的主要集中在0.761.6m的近红外区。红外线的波长较短,更适合用于短距离控制系统中。近红外光可以通过红外发光二极管 (led)获得红外发光二极

30、管是一种由pn结构成的注入电流型发光器件,在加上合适的正向偏置电压后,就可以发出一定波长的近红外光。发射电路如图3.3所示。图3.3 红外发射电路本人发射电路设计采用的是ne555(8脚时基集成电路),因为其特点比较符合红外遥控器的设计方案。ne555主要特点:1, 只需要简单的电阻器,电容器,即可完成特定的振荡延时作用。2, 它的操作电源范围极大,可与ttl,cnos等逻辑电路配合。3, 其输出端的供给电流大,可直接推动多种自动控制的负载。4, 它的计时精度高,温度稳定,价格便宜。pin1(接地)-地线,通常被连接到电路共同接地。pin2(触发点)-这个脚位是触发ne555使其启动它的时间周

31、期。pin3(输出)-当时间周期开始时,输出脚位移至比电源电压少1.7伏的高电位。周期结束后,输出电位回到0伏左右的低电位。pin4(接单片机)pin5(控制)-这个接脚准许由外部电压改变触发和闸限电压。pin6(重置锁定)-使输出呈低态pin7(放电)-这个接脚和主要输出接脚有相同的电流输出能力,当输出为on时为low,当输出为off时为high。pin8(电源)-接电源目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。发光二极管有交流电流、直流电流和脉冲电流等驱动方式。交流电流驱动方式主要用

32、于红外测量、检测以及较简单的红外光通信中。直流电流驱动方式,如图3.4(发射方式示意图)左图所示,也被称为平均发射方式,是指通过启动直流电源驱动发光二极管发出恒定的红外光。一般用这种驱动方式的红外光电二极管功率较小(大都小于100mv)、功耗较大、抗干扰能力也很差。图3.4 发射方式示意图为了提高红外遥控系统的工作距离,而又不使红外发光管过载,一般不采用这种方式,而是采用如图3.4右图所示的脉冲式发射方式或调制载波脉冲发射方式,红外遥控系统的工作有效作用距离取决于发光二极管辐射的峰值功率,而峰值功率是由驱动发光二极管的电路峰值所决定的。在相同的平均电流下,脉冲宽度越窄,峰值功率越大,传输的速度

33、就越快,发光的效率也就越高,遥控的有效距离也就越远。这种发射方式也大大提高了系统的抗干扰能力。对于红外光通信,除了红外遥控距离外,调制频率、调制带宽也是发光二极管的两个重要参数。调制频率关系到红外发光二极管在光通信中的传输速度的高低,红外发光二极管因受到注入pn结有源区内少数载流子寿命的限制(一般只有几十兆赫兹),从而限制了红外发光二极管在高比特速率系统种的应用。通过合理的脉冲编码和优化驱动电路,可使发光二极管有可能用于高速光通信系统。调制带宽定义为:在保证一定的调制频率下,当发光二极管输出的交流光功率比参考频率下降3db时,所对应的频率值。它是衡量发光二极管调制能力的重要参数。(2)红外遥控

34、编码红外遥控器码将需要实现的操作指令事先编码,然后将所有编码的脉冲信号调制在38 khz方波的载波上,经过三极管放大后,驱动红外发光二极管向外发送。其中38 khz载波直接由单片机用软件模拟,由定时器to产生。为保证38khz方波的频率稳定性,在硬件设计时尽可能使用频率高的晶振,提高cpu运行速度。在应用系统中,要完成对遥控器信号的解码并实现对系统功能的控制,必须了解遥控器信号码(即遥控器所发射脉冲流)的格式,即信号的引导脉冲高低脉冲的宽度、“0”,“1”的表示法,以及遥控器识别码、各个功能键的键码。对信号码的识别应该从分析脉冲流的各个高、低脉冲的时间入手,通过分析各个高、低脉冲的时间,分析得

35、出信号码的格式。常见的“0”,“1”的波形如图3.5所示。采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。图3.5 遥控码的“0”和“1”控器所产生的脉冲编码的格式一般为: 引导脉冲(头)识别码(用户码)键码键码的反码其引导脉冲为宽度是10 ms左右的一个高脉冲和一个低脉冲的组合,用来标识指令码的开始。识别码、键码、键码的反码均为数据编码脉冲,用二进制数表 示。“0”和“1”均由ms量级的高低脉冲的组合代表。识别码(即用户码)是对每个遥控系统的标

36、识。通过对识别码的检验,每个遥控器只能控制一个设备动作,有效的防止了多个设备之间的串扰。当指令键按下时,指令信号产生电路便产生脉冲编码。键码后面一般还要有键码的反码,用来检验键码接收的正确性,防止误动作,增强系统的可靠性。这些指令信号由调制电路调制成3240 khz的信号,经调制后输出,最后由驱动电路驱动红外发射器件(led)发出红外遥控信号。图3.6为一类遥控连发信号波形图。图3.6 一类遥控连发信号波形当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码

37、(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。3.2.3红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的ttl 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本系统中我们采用红外一体化接收头hs0038,外观图如图3.7 所示。hs0038 黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35

38、m。它能与ttl、coms 电路兼容。hs0038 为直立侧面收光型。它接收红外信号频率为38 khz,周期约26 s,同时能对信号进行放大、检波、整形,得到ttl 电平的编码信号。三个管脚分别是地、5 v 电源、解调信号输出端。图3.7 红外一体化接收头hs0038外观图当无遥控信号输入时,hs0038输出端保持高电平,有信号时输出为高低电平脉冲,故接收时一个码由一个低电平后跟一个高电平构成。本红外遥控接收电路如图3.8所示。将其输出端接入单片机外部中断0的int0脚。图3.8 红外接收电路3.2.4 存储电路遥控器所能存储代码的数量也是衡量一个智能学习型遥控器性能好坏的重要指标。遥控器在学

39、习完某个遥控器的代码后得把该代码存储起来,由于单片机内部的数据存储器ram所能存储的数据有限而且不能掉电保护。所以就需要合适大小的外存储器来存储所学习到的代码。这里采用常用的存储芯片at24c02。at24c02是由atmel公司提供的,i2c总线串行eeprom,其容量为1kb,工作电压在1.8v5.5v之间,生产工艺是cmos工艺,具有工作电压宽(2.55.5v)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。其引脚图和时序图分别如图3.9、3.10所示。图3.9 at24c02引脚图图3.10 at24c02时序图引脚功能介绍如下:

40、a0(引脚1):器件地址的a0位。a1(引脚2):器件地址的a1位。a2(引脚3):器件地址的a2位。gnd(引脚4):地线。sda(引脚5):数据总线引脚。scl(引脚6):时钟总线引脚。test(引脚7):测试引脚,vcc(引脚8):电源线引脚。 at24cxx系列的器件地址是a6 a5 a4 a3 a2 a1 a0 r/w,其中最低位r/w除外,其余都是地址位,共有7位,其中低3位a2 a1 a0由引脚连接决定,高4位a6 a5 a4 a3已经由厂家给出为1010。r/w决定数据传输的方向,当r/w1时,是从 存储器读出数据,当r/w0时,是向存储器写入数据。at24c02内有256字节

41、存储单元,片内地址使用一字节(8位)地址寻址就可以满足要求。地址范围是00hffh。存储电路原理图如下:图3.11 存储电路3.2.5 单片机控制电路(1)所选单片机简介本设计中选用的宏晶科技的stc89c52rc型单片机是一种低功耗、高性能、采用cmos工艺的8位微处理器,与工业标准型80c51单片机的指令系统和引脚完全兼容。片内8k flash存储器可在线重新编程,或使用通用的非易失性存储器编程器。由于一般的距离测量中,距离的变化速度并不太快,而且单片机的机器周期可达s级,则其计时精度为s级,完全可以满足系统测量的要求,并且成本较低,所以本设计中选用stc89c52rc型号的单片机。stc

42、89c52rc单片机,基于stc89c51内核,是新一代增强型单片机,指令代码完全兼容传统stc89c51,速度快812倍,带adc,4路pwm,双串口,有全球唯一id号,加密性好,抗干扰强。(2)单片机引脚功能stc89c52rc采用40pin封装的双列直插dip结构。40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。stc89c52rc的引脚图如图3.12所示,其引脚功能如下:图3.12 stc89c52rc引脚图1. pin20:接地脚。2. pin40:正电源脚,工作时,接+5v电源。3. pin19:时钟xtal1脚,片内振

43、荡电路的输入端。4. pin18:时钟xtal2脚,片内振荡电路的输出端。5. stc89c52rc的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12mhz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将xtal1接地,外部时钟信号从xtal2脚输入。6. 输入输出(i/o)引脚:pin39-pin32为p0.0-p0.7输入输出脚。pin1-pin8为p1.0-p1.7输入输出脚。pin21-pin28为p2.0-p2.7输入输出脚。7. pin9:reset/vpd复位信号复用脚,当stc89c52rc通电,时钟电路开始工作,在r

44、eset引脚上出现24个时钟周期以上的高电平,系统即初始复位。stc89c52rc的复位方式可以是自动复位,也可以是手动复位。此外,reset/vpd还是一复用脚,vcc掉电期间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。8. pin30:ale当访问外部程序存储器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。如果单片机是eprom,在编程其间,将用于输入编程脉冲。9. pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地

45、址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。10. pin31:ea/vpp程序存储器的内外部选通线,stc89c52rc和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。4 系统软件设计4.1 系统编程语言和编程工具在单片机的开发应用系统中,汇编语言作为传统的编程语言,己经不能满足实际需要,高级语言被逐渐引入,c语言就是其中之一。c语言是一种通用的计算机程序设计语言,它既有高级语言的各种特征

46、,又能直接操作系统硬件。对于大多数单片机,使用c语言与使用汇编语言相比具有如下优点:(1)不需要了解处理器的指令集,也不必了解存储器结构。(2)寄存器分配和寻址方式由编译器进行管理。(3)指定操作的变量选择组合提高了程序的可读性。(4)可使用与人的思维更相近的关键字和操作函数。(5)程序的开发和调试时间大大缩短。(6) c语言中的库文件提供了许多标准的例程。(7)可实现模块化编程技术,从而可将己编制好的程序加入到新程序中。(8) c语言可移植性好且非常普及。目前,8051上的c语言的代码长度,已经做到了汇编水平的1.21.5倍。4k字节以上的程度,c语言的优势更能得到发挥。至于运行速度的问题,

47、只要有好的仿真器,找出关键的代码,再进一步做一下人工优化,就可很容易达到美满。故在本系统中,单片机程序采用c语言编写,使用keil c51编译软件来编程。4.1.1编译软件keil uvision2简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统, keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。keil uvision2版本功能齐全,集编辑、编译、仿真于一体,支持汇编和c语言的程序设计,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用界面友好,易学易用。keil c51软

48、件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。keil uvision2的运行界面如下图4.1所示。图4.1 keil uvision2的运行环境界4.2软件设计学习型遥控器的设计性能及实现与其软件设计编写有着密切的关系,在设计中采用内部定时器对信号高低电平计时的方法来采集数据并保存。由于受到存储空间和代码长度的限值,硬件中的按键并没有完全充分使用。而是选择了其中的6个按键进行学习。系统软件

49、首先对定时器设置和初始化液晶显示。在主循环中检测按键,假如有学习按键按下时,则进入学习模式。此时要继续按下编号为3-6的某个按键,然后可以用红外遥控器对准接收头按下遥控器上需要学习的键,将学到的红外信号绑定到该编号键,并将学习到的红外解码数据存到eeprom中。在主循环中检测到编号3-6的按键,则进入发送模式。根据按键的编号找到相应eeprom中的地址,读出红外数据,并将此数据调制经红外发射头发射出去。软件流程图:图4.2 主程序流程图要实现学习型遥控器的软件设计,最关键的两个部分是学习功能和数据压缩。尽管通信协议中有不同的帧格式,如帧头、系统码、操作码、同步码、帧间隔码、帧尾等,根据记录下降

50、沿间的间隔时间来测量红外遥控信号的高低电平的脉宽值的原理,用户甚至不需要了解通信协议的具体内容,只需知道低电平(有红外发送载波)信号时长和高电平(无红外发送载波)信号时长就可以实现遥控命令的学习和存储。4.2.1学习功能在设计中采用内部定时器对信号高低电平计时的方法来采集数据并保存。由于红外接收信号直接接单片机的外部中断0端口,当输入信号产生低电平跳变时,系统启动内部定时器1,依次对输入高低电平脉冲宽度值计时。如果采集到编码信号位数大于设定值(程序中设定值)或者高电平信号时长大于一定值,即认为编码采集已经结束,学习子程序结束。在设计中选择24 mhz晶振,一个机器周期是0.5us,计数器采用1

51、6 位计数器,可以记录的最大时间间隔为32.767ms;每次学习结束后,都将学习到的存储在单片机内部存储区的遥控命令数据压缩,并根据按键和lcd显示屏的显示数据统一编码再存入eeprom。当在正常情况下时,则根据按键需要的遥控命令,从eeprom中寻找到相关的遥控命令,对此命令进行解压后,再用软件模仿38 khz载波信号发送编码信息。学习功能部分程序设计:/*外部中断0*/void inter0 (void) interrupt 0 using 1/下降沿一到,即进入中断服务程序ex0=0;/外部中断1关闭th1 = 0;/清零tl1 = 0;/步骤一:定时器1对起始帧的负脉宽测量。tr1=1; /定时器1开始计数pw_pt = 4;/数组指针timeout = 0;length=0;rx_flag = 1;head_flag = 0;end_flag=0;whi

温馨提示

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

评论

0/150

提交评论