基于c51的红外解码源代码

基于c51的红外解码源代码

ID:41584557

大小:66.25 KB

页数:4页

时间:2019-08-28

基于c51的红外解码源代码_第1页
基于c51的红外解码源代码_第2页
基于c51的红外解码源代码_第3页
基于c51的红外解码源代码_第4页
资源描述:

《基于c51的红外解码源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include〃接收头的数据输出引脚〃蜂鸣器的控制端〃用于接收4个字节的红外数据〃用于保存按键值sbitDQ=P3A2;sbitFM=P2A3;unsignedchardat[4];unsignedchardatacode;sbitLO=P1AO;sbitL1=P1A1;sbitL2=P1A2;sbitL3=P1A3;sbitL4=P1A4;sbitL5=P1A5;sbitL6=P1A6;sbitL7=P1A7;bitkey_on;〃定义一个按键闭合标志位,如果按键被按卜■了,该位置1厂・•毫秒级延时函数,参数为多少则延时多少毫秒・・*/voiddelay_ms(unsi

2、gnedintt)unsignedinta,b;for(a=0;a

3、unsignedchartemp;〃用于暂存接收到的数据unsignedinthigh_time,low_time;〃分别用于保存高低电平的时间值for(i=0;i<4;i++){for(j=8;j>0;j-){temp=temp»l;据TLO=OxOO;THO=OxOO;TRO=1;〃循环4次才能接收完毕4个字节的数据〃循环8次才能接收完毕一个字节的数据〃数据整体右移一位,用于接收一个位数〃定时器0赋初值0〃打开定时器0,对低电平时间进行计数high_time=TH0*256+TL0;if((low_timev370)11(low_time>640))离这个区间)returndat⑵=0x

4、00;if((high_time>420)&&(high_timev620))右(在这个区间即可)temp=temp&0x7f;存数据0elseif((high_time>1300)&&(high_time<1800))右(在这个区间即可)temp=temp

5、0x80;存数据1while(DQ==0){if仃H0>0x03)是0或者1returndat[2]=0x00;本次解码失败}TR0=0;low_time=TH0*256+TL0;TL0=0x00;TH0=0x00;TR0=l;while(DQ.==l){if(TH0>0x08)是0或者1returndat[2]=0xff;本次解码失败

6、}TR0=0;〃如果为低电平就一直while语句小此循环〃如果低电平时间远超过0.56msT,说明不〃跳岀屮断并返冋一个值为0的按键码,表明〃关闭定时器0〃计算低电平时间〃重新装初值0〃开定时器0,对高电平时间进行计数〃如果高电平时间远超过1.69ms了,说明不〃跳出中断并返回一个值为0的按键码,表明〃关定时器0,计算高电平时间〃计算高电平时间〃如果高电平吋间不是0.56ms左右(远〃那么返回0,说明解码失败〃如果高电平时间在0.56ms左〃说明这个位数据为0,保〃如果高电平时间在1.69ms左〃说明这个位数据为保〃如果高电平时间不是l・69ms左右,那么返elsereturndat[2]=

7、0x00;回0,说明解码失败}dat[i]=temp;行保存}if(dat[2]=~dat[3])反后进行比较{FM=O;key_on=1;returndat[2];}elsereturndat[2]=OxOO;败}voidintO」SR()interrupt0〃每解码完成一个字节后,対这个字节进〃解码得到的按键值与按键值的反码取〃如果一致,则说明解码成功〃蜂鸣器发声,播报解码成功〃置1,表明按键被按下〃返回这个解码成功的按键值〃如果不一•致,那么返回0,说明解码失unsignedinthigh_timezlow_time;〃分别用于保存高低电平的时间值EXO=O;TL0=0x00;TH0=

8、0x00;TRO=1;while(DQ==0)f〃关闭屮断〃装初值0〃开定时器0//if(TH0>0x25)f〃如果低电平时间远超过9msT,说明不是引导码EXO=1;return;}}〃开中断0,准备下次中断〃跳出此次中断TRO=O;low_time=TH0*256+TL0;TL0=0x00;TH0=0x00;TRO=1;while(DQ==l)if(TH0>0x20)〃如果高电平时间远超过4.5ms了,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。