基于51单片机的自学习型遥控器设计与实现.docx
- 文档编号:4669751
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:35
- 大小:283.68KB
基于51单片机的自学习型遥控器设计与实现.docx
《基于51单片机的自学习型遥控器设计与实现.docx》由会员分享,可在线阅读,更多相关《基于51单片机的自学习型遥控器设计与实现.docx(35页珍藏版)》请在冰豆网上搜索。
基于51单片机的自学习型遥控器设计与实现
基于51单片机的自学习型遥控器设计与实现
摘要
红外线遥控是目前最广泛使用的一种遥控和通信遥控方式,并且其具有体积小、结构简单、功能强、功耗低、成本低等优点,因此大规模应用于空调机、彩电、录像机、CD设备,并且在工业控制中也广泛使用。
在人们生活中对家电的需要日益增加的时候,促使使用红外遥控器的机会也越来越多。
但是因为红外遥控器不同产品编码格式的不同,不能用同一个遥控器控制,给人们生活带来诸多不便,在这我就是设计了一款自学习型的遥控器。
目前在国内大多数学习型遥控器为了达到学习目的都是采用拷贝遥控器红外波形,其实现起来方便,方法也较简单,。
缺点是采用专用遥控集成的芯片,造成成本高,设计复杂的缺陷,为了使其集成度高遥控器的红外信号采用的是红外线遥控发射芯片,以致价格昂贵。
本毕业设计是以AT89C51单片机为核心的学习型遥控器,其原理是红外一体化接收头输出信号,通过测量并原样地记录其输出码形,其次将其码型保存在EEPROM中,最后利用单片机的定时器中断产生38千赫兹的载波信号,使软件代替硬件,节约了许多资源。
目前在市场上遥控器大部分的编码方式都是NEC,所以该学习型红外遥控器能成功地学习各种红外遥控设备的NEC编码方式,并通过38千赫兹载波发送学习到的码型信号。
实现了对该类编码方式的红外遥控的学习,从而可以学习各种遥控器NEC的编码方式。
其优点硬件电路简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。
关键词:
AT89C51;学习型遥控器;红外遥控器;编码方式
Abstract
Infraredremotecontroliscurrentlythemostwidelyusedaremotecontrolandcommunicationcontrolmethod,andithassmallvolume,simplestructure,strongfunction,lowpowerconsumption,lowcostadvantages,solarge-scaleapplicationinairconditioningequipment,TV,VCR,CD,andarewidelyusedinindustrialcontrol.Anincreasingneedforhomeapplianceofinpeople'slife,promptedtheuseofinfraredremotecontrolisalsomoreandmoreopportunity.Butbecausetheinfraredremotecontrolencodingformatofthedifferentproductsisdifferent,can'tusethesameremotecontrol,givepeople'slifebringinconvenience,inthisIwasdesignedalearningremotecontrol.
Atpresentathomemostofthelearningremotecontrolcopyinordertoachievelearninggoalsareusingremotecontrolinfraredwave,itsimplementationuser-friendly,themethodissimple,.Defectisusingspecialremotecontrolintegratedchip,resultinginhighcostandcomplexdesigndefects,inordertomakeitshighlevelofintegrationoftheremotecontrolinfraredsignalwhichisinfraredremotecontroltransmittingchip,sothatthepriceexpensive.
ThisgraduationdesignisbasedonAT89C51single-chipmicrocomputerasthecoreofthelearningremotecontrol,itsprincipleistheintegrationofinfraredsensoroutputsignal,throughthemeasurementandthesameformtorecordtheoutputcode,followedbytheblocktypestoredintheEEPROM,theuseofsingle-chiptimerinterrupttoproduce38000hzcarriersignal,thesoftwareinsteadofhardware,savealotofresources.CurrentlyonthemarketmostoftheencodingNECremotecontrol,sothelearninginfraredremotecontrollercansuccessfullystudyallkindsofinfraredremotecontrolequipmentofNECencoding,andthroughthe38000hzcarriersendthestudytothetypeofsignal.Implementsthelearningofthiskindofcodingmethodofinfraredremotecontrol,whichcanlearnallkindsofremotecontrolNECencoding.
Itsadvantagehardwarecircuitissimple,softwarefunctionisperfect,highcostperformancecharacteristics,hascertainuseandreferencevalue.
Keywords:
AT89C51,alearningremotecontrol,infraredremotecontrol,theencodingstyle
1绪论
1.1学习型遥控器的介绍
无线工控类产品学习型遥控器、拷贝型遥控器,学习型遥控器具有学习功能,可以与学习型控制器自动对码,直接使用,不需要编码。
省去了配制遥控器的麻烦,买回去自动对码后就可以直接使用。
学习型遥控器也具有拷贝功能,可以拷贝任意一款固定码遥控器,学习型遥控器就相当于钥匙坯子,可以刻出任意形状的钥匙。
只要将学习型遥控器出厂码清除,然后拷贝原遥控器。
新配的遥控器就具有原遥控器的所有功能。
学习型红外遥控,可以分为两类:
以固定码格式学习的遥控器和波形拷贝方式学习的遥控器。
前者,需要收集不同种类的各种遥控器信号,然后进行识别比较,最后再记录。
但是,要实现几乎所有的红外线遥控器的成功复制就太难了。
因为,红外线遥控器的红外编码格式变化太多。
不过这种学习型遥控器它对硬件的要求相对来说比较简单,处理器工作时的频率可以不高,存储容量也较小,它的缺点就是对其他不同编码的遥控器无效。
这种遥控器主要是把发出的信号全部进行复制,而不管遥控器的NEC编码格式是什么,存储在EEPROM等存储器中。
当发射时,仅需将EEPROM储存器中记录的波形长度还原成原始信号(即最初发出的信号)即可。
这种学习型的遥控器对微处理器的主频要求较高,并且对RAM的要求有点大,但是优点是其对不同种类的红外遥控器都可以进行学习。
常用的红外遥控系统分发射和接收两个部分。
发射部分的主要元件为红外发光二极管。
因为其内部材料不同于普通发光二极管,所以在其两端施加一定电压时,它就会发出红外线。
目前使用最多的的红外发光二极管其发出940nm左右的红外线波长,除了颜色不同外其外形与普通发光二极管相同,。
接收部分的主要元件为红外接收二极管,一般有方形和圆形两种。
在实际应用中要给该二极管加反向偏压,它才能正常工作。
同时为了让灵敏度比较高,在电路中应用时是反向运用。
对于发射功率来说通常都较小(100mW左右),因此必须要添加高增益的放大电路才能解决红外线接收二极管接收到的信号比较微弱这一问题,最近几年都大多应用成品的红外线接收头。
1.2红外通信技术概述
1.2.1红外概述
从光学的角度而言,红外是频率低于红色光的不可见光,的无线光谱的整个频率中占有很小一个频率段,波长为0.75—100微秒之间,其中0.75—3微秒之间的红外光称为近红外,3—30微秒之间的红外光称为中红外,30—100微秒之间的称为远红外。
红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。
当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性。
1.2.2选择红外遥控的原因
无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。
由于无线电式容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。
超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以及声控式识别正确率低,难度大而未能大量采用。
红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。
所以现在很多无线遥控方式都采用红外遥控方式。
1.2.3红外的简单发射接收原理
在发射端,输入信号经放大后送入红外发射管发射,在接收端,接收管收到红外信号后,由放大器放大处理后还原成信号,这就是红外的简单发射接收原理。
2学习型遥控器的工作原理
自学习型遥控器的功能主要分为学习和发送两个部分。
在学习的过程中,自学习型遥控器接收电路接收到用户想学习的遥控器所发送过来的红外遥控信号。
红外遥控信号被接收电路接收到以后,经过先放大,后解调。
最后让微处理进行处理TTL电平信号,处理以后,使其存储到外部存储器里去。
当红外信号要发射时,根据键盘值(扫描矩阵式键盘电路来获取),从外部存储器还原出与按键值相对应的红外线遥控编码,并调制到38KHz的载波信号。
红外遥控载波频率常用的为38kHz,决定于发射端编码芯片所使用的455kHz晶振。
对晶振进行整数分频要在发射端进行,其分频的系数一般是12,所以455KHz÷12≈37.9KHz≈38KHz。
其他的一些遥控系统也有采用36KHz、40KHz、56KHz等。
当红外遥控器的某个按键按下时,发射出一组串行二进制遥控编码脉冲,该脉冲调制在38KHZ的载波上,此时,红外接收头对其上波形进行解码,当有38KHZ的载波时,接收头将其解码为低电平,没有38KHZ的载波时,将其解码为高电平,如图1所示。
图1红外遥控器发出的调制解调信号
在遥控编码中,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示:
图2“0”“1”编码方式
解码后的波形脉冲如图3所示,该脉冲由引导码、系统系统识别码、功能码、功能反码以及与起始码完全相同的结束码组成,另外,在功能反码之后是一段23ms的高电平。
图3NEC遥控器的码型
上述图3中“0”和“1”组成的42位二进制码经38KHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射。
通过区分这些码长以及编码便可设置不同的红外遥控器。
红外接收器负责红外信号的放大和接收并解调出TTL电信号送至微处理器进行处理,微处理器通过识别和比较接收来的红外遥控NEC编码的不同便可执行不同的遥控器功能。
3系统硬件电路设计
在该电路中,硬件设计比较简单,主要有一下几个部分:
键盘电路,红外接收电路,发射电路,存储电路,学习与发射之间的切换电路,其总体框图如图4所示:
图4设计总体框图
3.1键盘电路的设计
本设计中,利用单片机的P1口扩展外接一个4*4矩阵式的键盘电路。
1)为了减少I/O口的占用,一般将按键按矩阵形式排列,如图5示:
图5按键电路图
这种键盘,其垂直线和水平线在交叉处每条线都不直接连通,而是通过一个按键使原本断路的地方加以连接。
因此,P1口就可以构成4*4=16个按键,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,由此可见,这也是用矩阵法来做键盘最合理的地方。
2)识别矩阵式键盘有无按键的方法:
检测键盘上哪个键被按下,在这里介绍一种方法叫“行扫描法”。
行扫描法又被称之为逐列(或行)查询扫描法,是一种最通用的识别按键的方法。
第一步要检查键盘中是否有键按闭合,将行线Y0-Y3全部置低电平,第二步就是检测列线,依据其电平状态只要其中有一列的电平是低电平,则说明该矩阵式键盘中有键被闭合,而且按下的那个键,在4根行线与低电平线相交叉的4个按键之中。
如果所有的列线若都是高电平,那么键盘中没有按键闭合;第三步再判断按键所闭合的地方,在有键按下确认后,就可以进行具体的按键确定闭合的步骤。
其步骤是:
轮流使行线调为低电平状态,也就是说在调某根行线是低电平状态时,其它的列线必须是高电平状态。
在确认某根行向线,如果是低电平状态后,再轮流检测各列向线,观察它的电平信号。
如果有一列向线为低电平状态,那么调成低电平的行线与该列向线交叉处所在的地方有按键闭合。
3.2红外接收电路
红外接收电路的主体是红外接收芯片,我们选择的是TSOP1238,一体化红外接收头TSOP1238作为输入接至单片机的P3.2口,由于TSOP1238反相作用,在无红外信号时为高电平,一旦检测到有红外信号,起始输入变成低电平。
根据相应程序将编码存于单片机RAM中。
其红外接收电路如图6所示:
图6红外接收电路
3.3红外发射电路
红外发射电路中,可以直接用三极管控制红外发射管,如图7所示:
图7红外发射电路
当系统进入发射功能时,AT89C51首先扫描矩阵键盘以识别相应的按键,然后从EEPROM中取出相应键值的编码,经P2.5口输出,通过9013三极管驱动红外发射管发出红外信号,完成相应的控制。
3.4存储电路
存储电路采用的芯片是AT24C04,它支持I2C总线编程。
在学习是,首先扫描键盘电路,根据不同的按键将暂存在单片机RAM中的数据送入到EEPROM的相应地址单元进行存储;同样在发射时,根据不同的按键值将相应地址单元的数据取出,在继续编码发射,完成控制功能。
其电路如图8所示:
图8存储电路
3.5学习与发射之间的切换电路
在本设计中,特别加了一个学习与发射之间的切换电路,便于在实际使用中更加方便,当按下P2.7时进入学习状态,当按下P2.6时进入发射状态,其电路如图9所示:
图9学习与发射间的切换电路
4系统软件设计
软件设计
对应于电路的硬件,该设计的软件程序主要包括以下几个部分:
键盘程序,红外解码程序,AT24C02存储程序,红外编码程序,以及学习与发射的切换程序。
4.1键盘扫描程序
根据键盘扫描电路原理及硬件原理图,我们可以写出键盘扫描的程序,其程序流程图如图10所示。
4.2红外解码程序
当遥控器上任何一个键按下时间超过36ms时,都会发射一个信号,只是这个信号有可能是高电平或者是低电平信号,程序就是在这个信号后开始解码。
红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。
于是解码的程序流程图如图11所示。
图10流程图(键盘扫描程序)
图11流程图(解码程序)
4.3AT2402存储程序
当将单片机RAM单元内容存储到EEPROMAT24C02中,运用到一种总线技术,即I2C总线技术,利用该技术,可以十分方便的进行数据的存储和读取,提高单片机的工作效率。
下面简单介绍I2C总线技术以及相关特点。
4.3.1I2C总线技术原理及其工作特点
I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于在80年代,最初为视频和音频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
下面对其特点及应用作相关介绍。
1)I2C总线特点
I2C总线最主要的优点是其简单性和有效性。
由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
2)I2C总线的基本工作原理
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:
开始信号、结束信号和应答信号。
开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:
接收数据的IC在接收到8bit数据后,向发送数据的IC发出低电平信号,说明已经收到信号。
受控单元接受到CPU发出的信号,会发出应答的信号给CPU。
3)总线的操作
I2C有主/从两个方向的通讯功能。
接收器接收发出的数据,发送器发送数据使其发送到到总线上,。
从器件和主器件都可以工作于发送和接收状态。
总线必须让主器件控制,总线的传输方向由主器件产生串行时钟(SCL)控制,并产生停止或起始的条件。
当SCL若是高电平状态的时候,停止和起始条件是用SDA的状态改变来表示,只有在SCL是低电平状态的时候才能改变SDA的信号状态。
参见图12。
图12数据传送顺序(串行总线上的)
3.1)控制字节
控制字节的器件必须是在条件起始之后,其中的高四位作为识别符之类的东西(不同类型的芯片有着不一样的含义,但是存储单元一般都应该是1010),接着的低三位是片选,最后一低位是读写位,如果是0时是写操作,反之为1时为读操作。
如图13所示。
图13控制字节配置
3.2)写操作
写操作分为页面写和字节写两种操作。
对于页面写,如果芯片的一次装载的字节不同,那么会有所不同。
关于字节写的地址、数据传送的时序和应答传送的时序参见图14。
图14字节写
3.3)读操作
读操作有三种基本操作:
顺序读、当前地址读和随机读。
图15仅给出的是当前地址读的时序图。
应当关注的地方是:
读操作在第9个时钟周期时,不是“不关心”。
为了结束读操作,主机必须在第9个时钟周期内保持SDA为高电平状态、然后发出停止条件或者在第9个周期间发出停止条件。
图15当前地址读
4.3.2AT24CO2存储程序
通过以上的介绍,我们就可以写出相应存储电路的程序,程序主要流程图如图16所示:
图16存储程序流程图
在此,附加上数据传送单字节的程序,如下所示:
//发送单字节子程序
BITS:
MOVR0,#08H
LOOP:
CLRSCL
RLCA
MOVSDA,C
NOP
SETBSCL
CALLDELAYI2C
DJNZR0,LOOP;循环8次送8个bit
CLRSCL;
CALLDELAYI2C
SETBSCL
REP:
MOVC,SDA
JCREP;判应答到否,未到则等待
CLRSCL
RET
4.4红外编码程序
调用按键扫描程序,根据按下的键盘值从EEPROM中取出所存入的数据,并且将其传送到单片机的RAM中,然后根据RAM中的数据发出高低脉冲,即“0”,“1”的编码方式,还原出解码前的脉冲信号,并利用定时器T0在P2.5口产生38KHZ的方波,加载到编码输出口上,以便于发射。
4.4.1读取EEPROM数据到单片机RAM中
编码首先要将学习时存储的数据读取到单片机片内RAM中,其程序流程图如图17所示:
图17读取EEPROM程序流程图
由此,写出读EEPROM的程序如下:
//读串行E2PROM子程序I2CREAD:
I2CREAD:
MOVR1,RAMADDRESS
SETBSCL
SETBSDA
CLRSDA;发开始信号
MOVA,#MACHINEAD;送器件地址
CALLBITS;调发送单字节子程序
MOVA,I2CADDRESS;送片内字节地址
CALLBITS
SETBSCL
SETBSDA
CLRSDA;再发开始信号
MOVA,#MACHINEAD
SETBACC.0;发读命令
CALLBITS
CALLBITR
MOV@R1,A
CLRSDA
CALLDELAYI2C
SETBSCL
CALLDELAYI2C
SETBSDA;送停止信号
RET
//接受单字节子程序:
BITR:
MOVR0,#08H
LOOP2:
SETBSCL
CALLDELAYI2C
MOVC,SDA
RLCA
CLRSCL
CALLDELAYI2C
DJNZR0,LOOP2
SETOK:
CALLDELAYI2C
SETBSCL
CALLDELAYI2C
CLRSCL
CALLDELAYI2C
SETBSDA;应答毕,SDA置1
RET
4.4.2红外编码发射程序
当EEPROM的数据传入到单片机内的RAM中后,根据RAM中的内容,还原出红外信号脉冲,其程序流程图如图18所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 自学习 遥控器 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)