欢迎来到天天文库
浏览记录
ID:14925051
大小:45.50 KB
页数:14页
时间:2018-07-31
《红外线遥控解码接收程序-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单片机里.下面的程序可以应用
此文档下载收益归作者所有