欢迎来到天天文库
浏览记录
ID:14925032
大小:44.50 KB
页数:14页
时间:2018-07-31
《红外线遥控解码接收程序-c语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、红外线遥控解码接收程序-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--;}while(j);i--;}
2、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_decode()
4、{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程序-------------------------*//*------------------主要用于处理红外遥控键值--------------------*/vo
8、idint0()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单片机里.下面的程序可以应用在STC12C5410/STC12C20
此文档下载收益归作者所有