红外线遥控解码接收程序-c语言86850

红外线遥控解码接收程序-c语言86850

ID:14925051

大小:45.50 KB

页数:14页

时间:2018-07-31

红外线遥控解码接收程序-c语言86850_第1页
红外线遥控解码接收程序-c语言86850_第2页
红外线遥控解码接收程序-c语言86850_第3页
红外线遥控解码接收程序-c语言86850_第4页
红外线遥控解码接收程序-c语言86850_第5页
资源描述:

《红外线遥控解码接收程序-c语言86850》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、红外线遥控解码接收程序-C语言86850红外线遥控解码接收程序-C语言#include#defineucharunsignedchar#defineuintunsignedint#defineIR_REP3_2bitk=0;//红外解码判断标志位,为0则为有效信号,为1则为无效uchardate[4]={0,0,0,0};//date数组为存放地址原码,反码,数据原码,反码/*--------------------------延时1ms程子程序-----------------------*/delay1000(){uchari,j;i=5;do{j=95;do{j--;

2、}while(j);i--;}while(i);}/*---------------------------延时882us子程序-----------------------*/delay882(){uchari,j;i=6;do{j=71;do{j--;}while(j);i--;}while(i);}/*--------------------------延时2400us程子程序-----------------------*/delay2400(){uchari,j;i=5;do{j=237;do{j--;}while(j);i--;}while(i);}//**************

3、************************************************//**************************************************************/*----------------------------------------------------------*//*-----------------------红外解码程序(核心)-----------------*//*----------------------------------------------------------*/voidIR_dec

4、ode(){uchari,j;while(IR_RE==0);delay2400();if(IR_RE==1)//延时2.4ms后如果是高电平则是新码{delay1000();delay1000();for(i=0;i<4;i++){for(j=0;j<8;j++){while(IR_RE==0);//等待地址码第1位高电平到来delay882();//延时882us判断此时引脚电平///CY=IR_RE;if(IR_RE==0){date[i]>>=1;date[i]=date[i]

5、0x00;}elseif(IR_RE==1){delay1000();date[i]>>=1;date[i]

6、=date[i]

7、0x80;}}//1位数据接收结束}//32位二进制码接收结束}}//*****************************************************************//********************************************************************/*------------------------外部中断0程序-------------------------*//*------------------主要用于处理红外遥控键值--------------------*/voidint

8、0()interrupt0{uchari;k=0;EX0=0;//检测到有效信号关中断,防止干扰for(i=0;i<4;i++){delay1000();if(IR_RE==1){k=1;}//刚开始为9ms的引导码.}if(k==0){//EX0=0;//检测到有效信号关中断,防止干扰IR_decode();//如果接收到的是有效信号,则调用解码程序P0=date[1];delay2400();delay2400();delay2400();}EX0=1;//开外部中断,允许新的遥控按键}//**************************************************

9、*******************//********************************voidmain(){SP=0x60;//堆栈指针EX0=1;//允许外部中断0,用于检测红外遥控器按键EA=1;//总中断开while(1);}总结:关于本段程序的精确延时在<>里的评论有很好的诠释.以上程序段可以应用在51/52单片机里.下面的程序可以应用

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

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

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