100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 红外接收器c语言软件 红外线遥控解码接收程序_C语言.doc

红外接收器c语言软件 红外线遥控解码接收程序_C语言.doc

时间:2021-07-04 20:50:28

相关推荐

红外接收器c语言软件 红外线遥控解码接收程序_C语言.doc

红外线遥控解码接收程序_C语言.doc

(9页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.9 积分

红外线遥控解码接收程序-C语言.txt铁饭碗的真实含义不是在一个地方吃一辈子饭,而是一辈子到哪儿都有饭吃。就算是一坨屎,也有遇见屎壳郎的那天。所以你大可不必为今天的自己有太多担忧。红外线遥控解码接收程序-C语言#include #define uchar unsigned char#define uint unsigned int#define IR_RE P3_2bit k=0; //红外解码判断标志位,为0则为有效信号,为1则为无效uchar date[4]={0,0,0,0}; //date数组为存放地址原码,反码,数据原码,反码/*--------------------------延时1ms程子程序-----------------------*/delay1000() {uchar i,j;i=5;do{j=95; do{j--;} while(j); i--; }while(i);}/*---------------------------延时882us子程序-----------------------*/delay882(){uchar i,j;i=6;do{j=71; do{j--;} while(j); i--; }while(i);}/*--------------------------延时2400us程子程序-----------------------*/delay2400() {uchar i,j;i=5;do{j=237; do{j--;} while(j); i--; }while(i);}//**************************************************************//**************************************************************/*----------------------------------------------------------*//*-----------------------红外解码程序(核心)-----------------*//*----------------------------------------------------------*/void IR_decode(){ uchar i,j; while(IR_RE==0); delay2400(); if(IR_RE==1) //延时2.4ms后如果是高电平则是新码 { delay1000(); delay1000(); for(i=0;i<4;i++) { for(j=0;j>=1; date[i]=date[i]|0x00; } else if(IR_RE==1) { delay1000(); date[i]>>=1; date[i]=date[i]|0x80; } } //1位数据接收结束 } //32位二进制码接收结束 } }//*****************************************************************//********************************************************************/*------------------------外部中断0程序-------------------------*//*------------------主要用于处理红外遥控键值--------------------*/void int0() interrupt 0{ uchar i; k=0; EX0=0; //检测到有效信号关中断,防止干扰 for(i=0;i<4;i++) { delay1000(); if(IR_RE==1){k=1;} //刚开始为9ms的引导码. } if(k==0) { // EX0=0; 。省略部分。/红外解码判断标志位,为0则为有效信号,为1则为无效uchar date[4]={0,0,0,0}; //date数组为存放地址原码,反码,数据原码,反码/*--------------------------延时1ms程子程序-----------------------*/delay1000() {uchar i,j;i=5;do{j=95; do{j--;} while(j); i--; }while(i);}/*---------------------------延时882us子程序-----------------------*/delay882(){uchar i,j;i=6;do{j=71; do{j--;} while(j); i--; }while(i);}/*--------------------------延时2400us程子程序-----------------------*/delay2400() {uchar i,j;i=5;do{j=237; do{j--;} while(j); i--; }while(i);}//**************************************************************//**************************************************************/*----------------------------------------------------------*//*-----------------------红外解码程序(核心)-----------------*//*----------------------------------------------------------*/void IR_decode(){ uchar i,j; while(IR_RE==0); delay2400(); if(IR_RE==1) //延时2.4ms后如果是高电平则是新码 { delay1000(); delay1000(); for(i=0;i<4;i++) { for(j=0;j>=1; date[i]=date[i]|0x00; } else if(IR_RE==1) { delay1000(); date[i]>>=1; date[i]=date[i]|0x80; } } //1位数据接收结束 } //32位二进制码接收结束 } }//*****************************************************************//********************************************************************/*------------------主要用于处理红外遥控键值--------------------*/void jiema(){ uchar i; k=0; for(i=0;i<8;i++) { delay1000(); if(IR_RE==1) //刚开始为9ms的引导码. { k=1; break; } } if(k==0) { IR_decode(); //如果接收到的是有效信号,则调用解码程序 P0=date[3]; delay2400(); delay2400(); delay2400(); }}//*********************************************************************//********************************void main(){ SP=0x60; //堆栈指针 while(1) { while(IR_RE==0) jiema(); }}//********************************************. . . 关键词: 遥控 c语言 程序 红外线 接收 解码

天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。