遥控接收程序设计指引(8页).doc
《遥控接收程序设计指引(8页).doc》由会员分享,可在线阅读,更多相关《遥控接收程序设计指引(8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-遥控接收程序设计指引-第 8 页遥控接收设计指引一、 美的遥控编码波形规范(东芝编码)美的遥控编码以帧为基本单位,数据长度从1帧到4帧,每帧数据的编码格式为:L,A,A,B,B,C,C,L为引导码,A、B、C为8位数据码,A 、B、C分别是A、B、C的反码,因此共计48位数据。两帧数据之间有分隔符S。具体波形示意如下:1、引导码L 8.8ms 4.4ms2、两帧之间分隔符S 5.76ms 0.54ms 5.22ms3、数据0 1.08ms 0.54ms 0.54ms4、数据1 2.16ms 0.54ms 1.62ms5、一次发码的终止符: 0.54ms 6、 发射波形5.22ms二、 硬件电
2、路遥控接收电路主要由一个遥控接收头、电源滤波电路、信号滤波电路、限流电路组成,电路图如下:三、 芯片资源说明1、外部中断(可以检测上升沿和下降沿)2、定时器以9177芯片为例,可以使用16位定时器TM90和外部中断INTP0来完成遥控接收程序。四、 算法说明遥控接收中断子程序中,缓冲区共7个单元56位,接收数据时从最后一个单元向前压栈;对于只有一帧的数据,可以直接读出数据比较;但对于普通的两帧数据,每当第二帧数据接收到8位后,就可以与第一帧里面的最前一个数据比较,通过不断地循环移位,就可以比较出前后两帧码是否完全一样,这样只需要7个RAM单元就可以完成12个数据的比较,是一种比较节省RAM空间
3、的做法。五、 程序关键控制点说明l 波形检测说明:遥控接收的头码,高电平和低电平都要检测和判断;对于数据“0”和数据“1”,由于美的遥控器编码本身就很严谨,所以可以检测一个周期的长度,而不必分开检测低电平和高电平。l 脉宽误差:对于美的遥控器编码,头码、数据码和分隔码的允许误差范围推荐在20%左右比较合适;如果所使用的芯片定时器精度较低,数据码的允许误差范围可以适当扩大到25%。l 抗干扰设计:一般来讲,为防止中断误触发,在进入遥控接收中断后先判断接收口的电平状态,如果电平状态不对,则可能是误触发,应直接退出中断程序。l 无效码处理:在处理无效码时(例如单冷机型接收到制热开机信号),建议程序不
4、进行任何处理,蜂鸣器不应有动作。l 解码处理:所有遥控码都必须进行正反码的判断,且普通码前后两帧码要进行比较。另外,编码中无效的内容也是固定值,为保证解码程序的严谨性,最好也进行判断。l 故障时解码处理:本范例程序中,当出现故障时,直接在遥控接收程序中将接收到的内容舍弃;其实也可以放到解码程序中去处理,效果相同。六、 程序框图1、遥控接收中断程序框图2、解码程序框图七、 应用程序范例l 常量说明lleadcode equ 275 ;允许偏差20%lleadcodel equ 220 ;头码电平脉宽最小值lleadcodeh equ 330 ;头码电平脉宽最大值onecode equ 135 ;
5、允许偏差20%onecodel equ 108 ;数据1脉宽最小值onecodeh equ 162 ;数据1脉宽最大值zerocode equ 67 ;允许偏差20%zerocodel equ 53 ;数据0脉宽最小值zerocodeh equ 81 ;数据0脉宽最大值sepcode equ 360 ;允许偏差20%sepcodel equ 288 ;间隔符脉宽最大值sepcodeh equ 432 ;间隔符脉宽最大值l 变量说明rembuf0 :ds 7 ;遥控码存放区remlimit :ds 1 ;用来记数,当连续16ms无中断产生时,就直接初始化遥控接收程序l I/O口定义remotep
6、i equ p3.0l 标志变量说明remoteflag :ds 1headf equ remoteflag.0 ;为1表示已经接收到头码separatef equ remoteflag.1 ;为1表示已经接收到间隔码initiatef equ remoteflag.2 ;遥控接收初始化标志,为1表示需要初始化remotef1 equ remoteflag.3 ;接收到经济运行码,该标志置1remotef0 equ remoteflag.4 ;头码接收辅助标志,低电平判断OK后置1remotef3 equ remoteflag.5 ;为1表示已经接收到普通码,可以接收快检码remotef4 e
7、qu remoteflag.6 ;1表示中断为上升沿触发;0为下降沿触发remotef2 equ remoteflag.7 ;与remotef1标志配合使用,表示接收到了经济运行信息l 程序范例说明1、在主程序初始化部分,需要对遥控接收进行初始化 set1 initiatef clr1 remotef4 mov intm0,#01000000b ;intp0:falling mov mk0,#11110001b ;enable intp0-2 interrupt2、以下为遥控接收中断子程序,所有码的接收工作均在该程序中完成int_p0: push ax push hl ;保存现场;remlim
8、it接收记数单元,当连续16ms没有接收到遥控信号时,遥控接收程序初始化 bt remotef4,$ilab200 bt remotepi,$ilab201 br $ilab202ilab200: bt remotepi,$ilab202ilab201: br ilab342ilab202: movw ax,tcp90 ;读出tcp90最新捕获的数据到ax寄存器 mov remlimit,#4 ;一旦有遥控中断,就初始化remlimit bf initiatef,$ilab300 ;判断遥控接收是否许要初始化;不需要就跳转;以下程序是进行遥控接收初始化工作 movw precount0,ax
9、;保存当前定时器记数值 and remoteflag,#10000000b ;初始化遥控接收辅助标志 mov intm0,#01000100b ;设置intp0为上升沿中断 set1 remotef4 ; br ilab342 ;中断返回ilab300: mov intm0,#01000000b ;设置intp0为下降沿中断 clr1 remotef4 movw hl,ax xch a,x sub a,precount0 xch a,x subc a,precount0+1 xchw ax,hl ;计算测出的脉冲宽度 movw precount0,ax ;将当前的记数值存入precount0单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遥控 接收 程序设计 指引
限制150内