irm.c

来自「基于Mini51板的数字示波器设计」· C语言 代码 · 共 40 行

C
40
字号
#include "irm.h"

unsigned char irm_code;//红外解码键值返回全局变量

void int2_init(void)
{
	EA = 1;
	IT2 = 1;	//下降沿中断
	EX2 = 1;
}

void irm_int(void) interrupt 6
{
	unsigned char i,flag;
	unsigned int da;
	unsigned int temp=0;
	EA=0;
	temp=0;
	da=0;
	flag=0;	
	for(i=0;i<14;i++) {																	 
		da=0;
		while(!M51_IRM_DQ) {if(++da>300) break;}
		if((da>10)&&(da<500)) {
			if(da>200) temp++;
			else flag ^= 0xff;
			if(flag==0) temp<<=1; 
		}
		da=0;
		while(M51_IRM_DQ) {if(++da>300) break;}
		if((da>10)&&(da<500)) {
			if(da>200) temp++;
			else flag ^= 0xff;
			if(flag==0) temp<<=1; 
		}
	}
	irm_code=(unsigned char)(temp&0x00ff);
	IE2 = 0;
	EA = 1;		
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?