欢迎来到天天文库
浏览记录
ID:50599748
大小:51.50 KB
页数:9页
时间:2020-03-12
《红外线遥控解码接收程序_C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、红外线遥控解码接收程序-C语言.txt铁饭碗的真实含义不是在一个地方吃一辈子饭,而是一辈子到哪儿都有饭吃。就算是一坨屎,也有遇见屎壳郎的那天。所以你大可不必为今天的自己有太多担忧。红外线遥控解码接收程序-C语言#include#defineucharunsignedchar#defineuintunsignedint#defineIR_REP3_2bitk=0;//红外解码判断标志位,为0则为有效信号,为1则为无效uchardate[4]={0,0,0,0};//date数组为存放地址原码,反码,数
2、据原码,反码/*--------------------------延时1ms程子程序-----------------------*/delay1000(){uchari,j;i=5;do{j=95;do{j--;}while(j);i--;}while(i);}/*---------------------------延时882us子程序-----------------------*/delay882(){uchari,j;i=6;do{j=71;do{j--;}while(j);i--;}while(i);}/
3、*--------------------------延时2400us程子程序-----------------------*/delay2400(){uchari,j;i=5;do{j=237;do{j--;}while(j);i--;}while(i);...}//**************************************************************//**************************************************************/
4、*----------------------------------------------------------*//*-----------------------红外解码程序(核心)-----------------*//*----------------------------------------------------------*/voidIR_decode(){uchari,j;while(IR_RE==0);delay2400();if(IR_RE==1)//延时2.4ms后如果是高电平则是新码
5、{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]
6、0x00;}elseif(IR_RE==1){delay1000();date[i]>>=1;date[i]=date[i]
7、0x80;}}//1位数据接收结束}//32位二进制码接
8、收结束}}//*****************************************************************//********************************************************************.../*------------------------外部中断0程序-------------------------*//*------------------主要用于处理红外遥控键值--------------------*/voi
9、dint0()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;//开外部中断,允许新的遥控按键}//********
10、*************************************************************//********************************voidmain(){SP=0x60;//堆栈指针EX0=1;//允许外部中断0,用于检测红外遥控器按键EA=1;//总中断开while(1)
此文档下载收益归作者所有