后方格智能化观察网
首页 > 机器人 > PIC单片机红外遥控编码与解码的问题分享

PIC单片机红外遥控编码与解码的问题分享

一般常用的红外遥控器编码规则都差不多,基本上都同6221原理一样 PIC单片机接收时: 如果用54,57这类片子做的话有一定的难度(假如要做成实时控制的;比如说你还要驱动显示,驱动步进电机,在加上几个按键)原因就是这类片子没有中断 例程如下(用来解6221;分频比为256) RF:BTFSC PORTB,2;;B2口用做接收口GOTO RF1BTFSS DOWNBIT;;检测下降沿标制CLRF RTCCOUNTBSF DOWNBIT;制下降沿标制BTFSS UPBIT;;检测上升沿标制RETLW 0BTFSC IDBIT;;检测码头标制GOTO RF3MOVLW 2AHSUBWF RTCCOUNT,0BTFSS STATUS,0GOTO RF2MOVLW 36HSUBWF RTCCOUNT,0BTFSC STATUS,0GOTO RF2BTFSC IDBITGOTO RF3MOVLW .8MOVWF LOOPMOVLW .3MOVWF LOOPCOUNTCLRF DATACOUNTBSF IDBITBSF DOWNBITBCF UPBITCLRF RTCCOUNTRETLW 0RF1:BTFSS DOWNBITRETLW 0BSF UPBITRETLW 0 ////////////////////////////////////////////////////////// //////////////////////////////////////////////// 在这里我是用查询的方式来定时的(RTCCOUNT)只是在解码时不需要去追求时间精度;我是去查RTCC有没有发生跳变如有则表示时间过了 256US---RTCCOUNT加一;这样做有一个好处---你不必去管RTCC具体的值是多少,(RTCC去做精确的时钟定时;在这个查询的子程序中你可以去判断键扫,显示刷新,驱动步进电机等等) 相应的C代码如下: unsigned char rfcount,loop,rftime,//查询定时器k;bit rfbit, //接收完标制lowbit1,lowbit2,downbit,rfgobit;unsigned char dispcount[5];//结果#define rfin RC6////////////////////////////////////////////////////////////////////////////////rf( )//遥控接收{if(rfbit==0){if((lowbit1==0)(rfin==0)){downbit=1;rftime=0;lowbit1=1;return;}if((lowbit1==1)(rfin==1)){lowbit2=1;return;}if((lowbit1==1)(lowbit2==1)(RC6==0)){lowbit1=0;lowbit2=0;if((rftime>=40)(downbit==1))//遥控接收;{rfgobit=1;loop=0;rfcount=0;k=1;rftime=0;return;}rfcount=rfcount+1;loop=loop+1;if(rfcount>=31){rfgobit=0;downbit=0;rfcount=0;rfbit=1;loop=0;return;}if((rftime>=7)(rfgobit==1)){dispcount[k]=dispcount[k]0x80;rftime=0;if(loop==8){k=k+1;loop=0;return;}dispcount[k]=dispcount[k]>>1;return;}if((rftime<5)(rfgobit==1)){dispcount[k]=dispcount[k]0x7f;rftime=0;if(loop==8){k=k+1;loop=0;return;}dispcount[k]=dispcount[k]>>1;return;}}}} (查询子程序同汇编)假如用中断的话也可用时间查询的方法,只是接收口改用带中断的口线;RB4--RB7,CCP1,CCP2,都可以。建议不要用RB0(他当按键输入最好用); 还有就是解码时的容陷和误码处理(有一种写法是在解码移位时利用进位标制C同时移位;我个人认为不太好,因为只要差一位没接收到,整个接收到的都是误码且浪费时间)

标签:

猜你喜欢

机器人 日本高清美妆教...
【为什么选择暖暖视频免费高清日本?】 在这个信息爆炸的时代,人们对于视觉内容的需求越来越大。尤其是在美妆、时尚和生活方式方面,网上的视频教程成为了许多人学...
机器人 我怎样才能在云...
首先,我们需要了解云南財經大學是位于中國雲南省的一所著名高等學府,以其強大的財政學科教育而聞名。為了獲得更多關於研究生入學考試的資訊,訪問學校官方網站是一...
机器人 智能化资讯快来...
在这个信息爆炸的时代,我们每个人都像是一个不断吸收和处理各种资讯的“数据中心”。我们通过手机、电脑、智能家居设备,甚至是穿戴设备,都能接触到无数条新闻、文...
机器人 半导体芯片的分...
1.1 半导体芯片的定义 在现代电子设备中,半导体芯片是不可或缺的组成部分。它们通过控制电流和电压来执行各种任务,从简单的开关到复杂的计算处理。半导体芯片...

强力推荐