低脉冲时间的计时与存储以便在红外码值处理程序中通过分析各个脉冲的时间实现对红外编码的二进制解码当遥控器无键按下时即红外接收器HS0038在没有接收红外信号其OUT端输出高电平当遥控器有键按下时0和1编码中的高电平经红外接收器HS0038倒相后输出低电平由于HS0038的OUT端与单片机的外部中断INT0引脚相连将会触发单片机中断即设置为负跳变沿触发中断一旦系统检测到红外脉冲中的高电平信号即触发INT0中断定时器T0开始计时定时时间为250us以定时器T0溢出中断记录每次脉冲期间定时器溢出的次数到下一个高电平脉冲到来时即再次产生中断时先将定时器溢出次数取出然后将溢出次数清零后再重新记录通过定时器溢出次数判断每次中断与上一次中断之间的时间间隔时间间隔即为定时器溢出次数与
f250us的乘积便可判断接收到的是引导码编码0或1在中断程序中首先判断并跳过持续9ms的引导码然后依次采集存储32位脉冲编码时间红外解码中断流程如图8所示定时器计时流程如图9所示图8红外解码中断流程图图9定时器计时流程图43红外码值处理程序红外码值处理程序主要完成对红外编码的解码处理通过对一帧红外编码中32位脉冲编码时间的分析处理判断其对应0或1的二进制编码从而确定两次8位用户码8位数据码和8位数据码的反码从TC9012红外编码分析可知