⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 红外检测.c

📁 此程序是有关红外的程序 mcu用啊他89c52 采用外部中断0接一体化红外接受头038 (就是影碟机上拆得的) P0 P2接数码管 P0数据 P2位选 能显示遥控器的系统码及其反码 数据及
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint  unsigned int

uint RH_CODE;//定义接收码高位
uint RL_CODE;//定义接收码低位
bit   RE_SUS; //定义接收标志位 1 表示接收成功

char code disp[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0x30,0x25,0x67,0x23,0x64,0x74};
//                  0    1    2    3    4    5    6    7    8    9    a    b   c    d    e    f    

//char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x8e,0xff,0x00};
//                  0    1    2    3    4    5    6    7    8    9   -    f    空   显

char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0; //显示缓冲 其中i0为虚拟位 

void initial(void)
{ 
	IT0=1;         //外部中断0采用高到低的跳变有效
  	IE=0x8b;       //开外部中断0 和两个定时器中断

   				}
delay(t)
{ char a;
  while(t--)
  for(a=120;a>0;a--);  }

display(t)
{while(t--)
 {P0=disp[i8];
  P2=0x7f;
  delay(1);
  P2=0xff;
  P0=disp[i7];
  P2=0xbf;
  delay(1);
  P2=0xff;
  P0=disp[i6];
  P2=0xdf;
  delay(1);
  P2=0xff;
  P0=disp[i5];
  P2=0xef;
  delay(1);
  P2=0xff;
  P0=disp[i4];
  P2=0xf7;
  delay(1);
  P2=0xff;
  P0=disp[i3];
  P2=0xfb;
  delay(1);
  P2=0xff;
  P0=disp[i2];
  P2=0xfd;
  delay(1);
  P2=0xff;
  P0=disp[i1];
  P2=0xfe;
  delay(1);
  P2=0xff;}     }


void set(void)
{ RE_SUS=0;
  i8=RH_CODE/4096%16;i7=RH_CODE/256%16;i6=RH_CODE/16%16;i5=RH_CODE%16;
  i4=RL_CODE/4096%16;i3=RL_CODE/256%16;i2=RL_CODE/16%16;i1=RL_CODE%16;
                                                                        }

main()
{ initial();
  while(1)
  { if(RE_SUS) set();
    display(1); }
	             }

void ex_input(void) interrupt 0   //外部中断 
{
   RE_SUS=1;
   RH_CODE++;
   RL_CODE+=2;
						}

⌨️ 快捷键说明

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