红外解码程序主要工作为等待红外线信号出现,并跳过引导信号,开始收集连续32位的表面数据,存入内存的连续空间。位信号解码的原则是:以判断各个位的波宽信号来决定高低信号。位解码原理如下:
解码为0:低电平的宽度0.56ms+高电平的宽度0.56ms。
解码为1:低电平的宽度1.68ms+高电平的宽度0.56ms。
程序中必须设计一精确的0.1ms延时时间作为基础时间,以计数实际的波形宽度,若读值为5表示波形宽度为0.5ms,若读值为16表示波形宽度为1.6ms,以此类推。高电平的宽度1.12ms为固定,因此可以直接判断低电平的宽度的计数值5或时16,来确定编码为0或是1。程序中可以减法指令SUBB来完成判断,指令“SUBB A,R2”中若R2为计数值,A寄存器设为8,就可如下:
当“8-R2”有产生借位,借位标志C=1,表示编码为1。
当“8-R2”无产生借位,借位标志C=0,表示编码为0。
将借位标志C经过右移指令“rrc A”转入A寄存器中,再经由R0寄存器间接寻址存入内存中。
标签:
红外解码
程序
信号
等待
上传时间:
2016-11-09
上传用户:miaochun888