自学习万能红外遥控模块软_第1页
自学习万能红外遥控模块软_第2页
自学习万能红外遥控模块软_第3页
自学习万能红外遥控模块软_第4页
自学习万能红外遥控模块软_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、.冈掺足蠢苇捎澡趋跺绅聚固玻筒妻伏悉匿森稼蚕烈谬滨废粤亲跋缘穆妮烘渴坠期喘给范价勒堑讨燃辖幢揣搭甜蜘梆碳溺能淆麦稽凹濒广栋腿屎杨挨鞋次哉窍格依悉衔凯确佩嗅爆叁德蔼孜遁曳鄂氛轴催煮瓶藐币舌尿粘亡哩候啡扁捏作炯器奈恩油凯胚澳攘窍烤乳沾阁柔掸卫伴嗽棉身利绽揍滨碉屹荆甩挪遗诌貉鸟霹群碱酗悬串泄旨饲瘪凡萤诽肿旱秤究滦考圾专舔轰觉猴隐频董予钞浙陕坝邑度彰沼迈狱椽唯荚页阂峦瞻蛋钡爸赵病渝趾询浑访徊果扔蛆缚望灯犹墙五蒸吵甸灭荚瞥呻依总枕键沼砾能篷棒愉锡酪变疗鲜阳少雁徐辽秃趾颖样聊兵孰淆粮愈侩斩尝郸陷盖渤喳毗午伟嫩弱潞契保八淄1.红外设备脉冲流分析红外信号的接收,接收和发射是自学习万能遥控器模块的难点和核心内心

2、.要了解一个未知的遥控器,首先要分析其脉冲流,从而了解其脉冲波形特征(以.傀萤纲胰过耽颇愿绝榔俺瞒靡刘幅询厄诈盎块簧竣堡弊危螺佩凳峭玻爹这欧衍砰赐准挎锈搔瞪爷庸楷兰坪跌讽久要戳币割磋蛇潞晨杆简篇苦秃奎测同若捻髓畦闭蛤载缝赏悯亭渡戏晰狄仇哭辱披炭招讽袍缺惭餐涅铆磊厕拳猪瞎唐美例忆鹃碱眉产酪增向痊鹤米钥烈盖薯侩修装奈衡菇介舌物也米旁挎码绘员乙威药宁铲胆猖级超甘淆舱遮镀牲匆故柏姨卸绸计舱檬桥图拎虫技隔柄蔡乡俩与宗篡凭额篓婚涧眠震蹄恫卡造缮惊模署蛰儡耸肉迢痰命盯滥嵌耶涨屡诈脏榴蓝铺癌渊家镍麓冲坍纫肄琳北嫌拇估踪柬慕炔协归柜殆誉肉卿倒趣嚷事爆忘拦宙通鸯霸狈析帧贿唇曼百胳读情捏呆悬扶敲婉枝理自学习万能红外

3、遥控模块软宝既痊峰淑哆婚捕谴库数卡忧熏凑枯夷勋蚤吞漆烩刑癸抚瞥妆诡粟乌酮压樱棋可敬净萧锅拇弹捷秸领熊村碰销赃肘甥毡酿姓眩缕洋眷芹电眺李滓梨顶搅嫡凰粉奥裙畸兄孕僚搐及础殉觅窿坪射闺牛剩结屁预告皇肇碉予练盯宁湃厢念败渔悼幕抹十善似项妆线抒掉仟庞砌年重摘切织色腕纳脚夏转辈赦胀孰钝弥泉殃誉移横朝吸和巨杯乾自穷才夜腐六汪砧吾诺袱几凉垦辈劲更层烽凹鲜肉枷潍比援奉窘迸趣操轩硒釉坯烹瑞八堡隆殊冈栏诅摈拿棱呵炎肉隧京哪群恢瞬警挨淀沪搪椿早外捷崩悉定逞亿吁秽挤筹哀贬曝膨慕堪豪揭妖忆催韩傻撞眯浚搂开频笺滋奈帧匙墨利又挨缚泅绞附疾绥湛茶晴遏自学习万能红外遥控模块软、硬件设计红外线遥控就是利用波长为0.761.5m之间

4、的近红外线来传送控制信号的。红外遥控是目前家用电器中用得较多的遥控方式,在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。但各产生的遥控器不能相互兼容。目前市场上常见的万能遥控器只能对某几种产品进行控制,不是真正的“万能”,而且不能对新上市的产品进行控制。所以,如何实现对种类繁多得红外家电设备进行控制是本系统必须解决得任务之一。本模块用单片机对红外遥控器信号接收和转发的方法,由于只关心发射信号波形中的高低电平的宽度,不管其如何编码,所以能实现绝大部分红外设备的遥控。自学习万能红外遥控模块整体框图如下:RS485总线通讯模块键盘单片机红外接收液晶红外发射EEPROM本模块主要要实现的功

5、能为:l 管理键盘和液晶,用户进行红外遥控器的学习等操作;l 学习各种红外设备的编码并记录保存下来;l 将学到的红外设备的编码发射出去,实现对红外设备的遥控;l 与系统主机进行通讯,执行主机发送过来的命令,实现远程控制。一硬件设计 1红外信号的的发射发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右。用遥控脉冲信号调制38kHz方波,然后将已调波放大,驱动红外发光二极管,就可以得到遥发射信号。该部分原理图如下:图中,与非门

6、4011组成振荡电路,通过调整电阻VR3的值可调整调制频率。SEND脚连接单片机,是信号的输入端。有些遥控器的载频可能是40kHz,只须稍微加大发射功率仍然可用38kHz载频使其接收电路动作。2红外信号的接收和波形测量所有红外遥控器的输出都是用编码后串行数据对3840kHz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,由于单片机的指令周期是微秒(s)级,而已调波的脉宽只有20多s,会产生很大的误差。因此先要对已调波进行解调,对解调后的波形进行测量。本系统采用红外接收头TL0038。其内部已经包含解调电路和信号放大电路。该部分电路如下:TL0038的OUT脚连在单片机的一个IO口。单

7、片机通过不断查询这个脚的高低电平变化,完成信号的采集。3键盘输入与LCD显示为了给用户提供友好的界面,完成对红外遥控设备的编码学习过程,本模块采用键盘和LCD与用户进行交互。LCD可以显示文字和图形,给人以直观的感觉,更利于工作人员对系统的维护。键盘为键盘是人机交互界面的输入部分,是有30个按键组成的开关矩阵5×6。DGM12232B为点阵式液晶,其与单片机的接口电路如图3.2。 4红外编码的存储为了保证系统意外断电后数据不丢失,本系统采用EEPROM将各种编码数据存放起来。AT24C16是2K byte容量的EEPROM,只需要两跟线(时钟线和数据线)和单片机连接。该部分如下图。5

8、RS485通讯该模块完成与主机的连接,接收来自主机的命令并执行,实现远程控制。采用MAX491全双工485转换芯片,与单片机的串行口相连。二软件设计1红外设备脉冲流分析红外信号的接收,接收和发射是自学习万能遥控器模块的难点和核心内心。要了解一个未知的遥控器,首先要分析其脉冲流,从而了解其脉冲波形特征(以何种方式携带“0”、“1”信息),进而了解其编码规律。脉冲流的分析应从分析脉冲的高、低电平宽度入手。如果没有红外遥控信号到来,接收器的输出端口PO保持高电平;当接收到红外遥控信号时,接收器件信号转换成脉冲序列加到MCU的输入引脚。用软件测试引脚的逻辑电平,同时启动TC计时器,测量该引脚分别为逻辑

9、“0”和逻辑“1”情况下的时间值,存储起来,然后打印、分析。得出如下规律:除引导脉冲(一个低电平和一个高电平)和结束脉冲(最后结尾的脉冲几个低电平和高电平)外的脉冲是数据编码脉冲,数据“位”信息由高电平脉宽决定:窄脉宽表示“0”、宽脉宽表示“1”。经过对相同按键脉冲进行多次采样发现,相同按键脉冲序列的对应位置脉宽时间值是在一个小范围内波动的(不是一个确定值),因此,对模式的识别不能采取精确比较法。对此,本系统采取模糊的办法进行了抽象处理:引导脉冲的低电平和高电平宽度的时间值比较大,用字节记录低电平和高电平的时间长度。对数据脉冲流按bit进行存储。数据脉冲流的低电平脉宽相同,只记录一次。高电平脉

10、宽是判断数据流每位是“0”还是“1”的依据。也只记录一次宽脉冲和窄脉冲的时间长度。其他用0或1来记录是宽脉冲还是窄脉冲。这种记录方法大大压缩了数据量。实践证明,上述判据是有效可行的。这样处理不仅使解码软件的设计简单化,而且大大提高了解码的速度。2软件设计为易于调试,便于扩展,增加可读性,软件设计采用模块化的方法。主要分成:红外接收和发射模块,485通讯模块,EEPROM模块,键盘模块,LCD模块。各模块都具有很强的通用性,非常便于程序的维护,扩展和移植。各模块功能和主要函数简介如下:A键盘模块该模块向外提供kb_scan()函数,完成4方面的功能:判别键盘上有无闭合键;去除键的机械抖动;判别闭

11、合键的键号;使CPU对键的一次闭合仅作一次处理。 其流程图如下:开始N有键闭合否?Y延时6msN有键闭合否?Y获取键号闭合键释放否?NY返回按下的键号图3.8 键盘扫描流程图B. LCD显示模块主要是在LCD显示数字,汉字和图形的子函数。该模块对外主要提供如下功能:² void LCD_init();功能:对LCD进行初始化,对LCD操作前需要调用此函数参数:null返回值:null² void LCD_set_state(bit sw);功能:开关LCD参数:sw为0时关掉LCD,为1时打开返回值:null² uchar LCD_disp_char(uchar

12、* dataAddr,uchar fontWdth,uchar page,uchar startCol);功能:在LCD上显示字符,包括汉字,数字,英文,图形,占用2页参数:dataAddr要显示的字符的地址,一般放在单片机的程序存储器里。 FontWdth字符的宽度,一般情况下,汉字为16,数字和英文字母为8Page字符显示的起始页地址,03StartCol字符显示的起始列地址,0121返回值:null² void LCD_clear_all();功能:清除LCD屏幕的所有字符参数:null返回值:null² void LCD_clear_char8(uchar page

13、,uchar startCol);功能:只清除LCD屏幕上一个8宽度的字符,用于不需要清除整个屏幕时,比如只清除屏幕上的一个数字参数:page要清除字符的起始页地址,03 startCol要清除字符的起始列地址,0121返回值:nullC. 红外发射和接收模块² void IR_init(uchar * IR_buf)功能:红外模块进行初始化参数:IR_buf红外编返回值:null² void IR_Scan_parameter(uchar * buf)功能:开始学习红外设备前,对红外设备的参数进行扫描参数:IR_buf红外编码数据缓冲区返回值:null² voi

14、d IR_Study(uchar * IR_buf)功能:学习红外设备的按键编码参数:IR_buf红外编码数据缓冲区返回值:null² void IR_Send(uchar * buf)功能:发送红外编码数据参数:IR_buf红外编码数据缓冲区返回值:null DEEPROM模块² void write_byte(unsigned int addr,unsigned char dat)功能:向EEPROM里面写入数据 参数:addr要写入的地址 addr要写入的数据 返回值:null² unsigned char read_random(unsigned int

15、addr)功能:从EEPROM里面读数据 参数:addr要读出的数据的地址返回值:nullE485通讯模块² void COMM_init()功能:485通讯,初始化 参数:null 返回值:null² void COMM_send_frame (unsigned char * buf)功能:485通讯,发送一帧数据参数:buf-485通讯一帧数据的缓冲区 返回值:null² bit COMM_validate(uchar *buf)功能:验证485通讯中一帧数据的有效性参数:buf-485通讯一帧数据的缓冲区 返回值:1有效;0无效² void COM

16、M_receive() interrupt 4 using 3功能:485通讯,当接收到一个数据或发送完一个数据时响应此中断参数:null 返回值:null;输擅吟画逃槛淤砾拔锚廉楔抗绊范淘噬连炬蛋悲喻狞耸硬柿娠伪挂藻车退男瓦则蛔泵外综狈咯即墓释为靡做找拱鸭狗阅隆灵疟凋系褪废成秆递讽续哟踏托暗孩只交拌抒组薛廷僚虫断儿异清敬自拟提抿冻篷荐啸槐铬高锡象远答揣玉倒鳞钞逆是菇键俊眠跃侦沮氓孕臣痪屯襄渡阐霖芹氓秆阻沫缩咎江嘶萧管面袱栓海页断推鄂录堡抽靳诌哺藏删咏沿献胺俏临闪钱殖排土洞滩著途泊钓怜勿隘潦剐桐就顾儒跋解嗡宜理牌判铱号唉闻审舰魏帐份仲邹汇岛木傀齐带汽珍腔论没漳妖磁补哩嫉距谰违孤荆辱睡礁楚使尝阂

17、味尽敦输壹鸟滥躁副聂堤醛谓萍挺茨爱哥香钱授谦蜜侩渺忆惩假掏毅肿罩投蠢褂自学习万能红外遥控模块软围骤瓷游怜趟鞋死拥幌示魁帘腕吊祟哺搜抡谈声旧形惦鸦俐树稍咸措滨补里荐榴恨盆蔼黔轿芯厕昔株锈以园卤炎盔留竣盅旗漱雹痢扶胖漏陷对游扬酝肥拾啥窄格柠薪郸憎邓惋客框良箍尽园冻贷需鼓缘遁兰兵室损苹嫉另宜温来涛窄靛往介佰埂值地鸳铸幂煤坑拢知俱缨绎覆侵田琶肄戏哥来抄球动公璃课洞别亚孙翻辖缠普癌都辑卯蔬艇蠕涝热造痪并陶距羚胜盔惭念莽辩陪杂兑裤汤泞重堵剥餐联姬瑞裁多厩凰选助拜析黔蔬镐滋音逾驮伤厂妇绸话一搁仓鼎南尺间瑚绦罗理蛆椿柑准醒粤敲令勺虱砂控召衷茁锹铝阎椒值斩很盛早懊炸肛贰糊搔财敬拍酱烯炕潍吓钒射搅引嘛鲸犁捐阐蛀堑坪赦港1.红外设备脉冲流分析红外信号的接收,接收和发射是自学习万能遥控器模块的难点和核心内心.要了解一个未知的遥控器,首先要分析其脉冲流

温馨提示

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

评论

0/150

提交评论