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

📄 test.c

📁 红外解码的一个程序
💻 C
字号:
#include <REGX51.H>

#define Uchar unsigned char

sbit IR_P=P3^2;
Uchar Code_Dat[4]={0,0,0,0};


void Code_Delay(void)   //基准
{
  unsigned char i=50;
   while(--i);
}

/***************************************************************
**此程序是为了测试所用的遥控器的0、1编码及引导码的占空比      **
**占空比是基于基准的,所需测试的有4个量:                     **
**引导码的高电平需几个Code_Delay,低电平需几个Code_Delay       **
**其实0、1的编码的高电平是相同的                              **
**只需测出1的低电平需几个Code_Delay,0的低电平需几个Code_Delay **
****************************************************************/
//测试高电平长度
void INT_0() interrupt 0 using 2 
{ 
  Uchar i,j=2,k=0;  //j为测试编码的第几位的高电平,注意:引导码j=0。
  P0=0xF0;
  EX0=0;
  i=100;

  Code_Delay();
  while(!IR_P);     //低电平,等待(不发送编码的时候,IR_P为高电平)
  
  while(j--)
  {
  	Code_Delay();
  	while(IR_P);
 	 Code_Delay();
  	while(!IR_P);
  }

  while(i--)
  {
	Code_Delay();
	k++;P0=k;
    if(!IR_P) {EX0=0; return ;}
	P2=k;
	}

   EX0=0;
   return;
} 
/******************************************************************************
//测试低电平长度
void INT_0() interrupt 0 using 2 
{ 
  Uchar i,j=2,k=0;  //j为测试编码的第几位的低电平,注意:引导码j=0。
  P0=0xF0;
  EX0=0;
  i=100;

  Code_Delay();
  while(IR_P);     //高电平,等待
  
  while(j--)
  {
  	Code_Delay();
  	while(!IR_P);
 	 Code_Delay();
  	while(IR_P);
  }

  while(i--)
  {
	Code_Delay();
	k++;P0=k;
    if(IR_P) {EX0=0; return ;}
	P2=k;
	}

   EX0=0;
   return;
} 
*********************************************************************************/

main()
{
  EA=1;//打开CPU总中断请求
  IT0=1;//设定INT0的触发方式为脉冲负边沿触发
  EX0=1;//打开INT0中断请求
  P0=0xFF;
  P1=0xFF;
  P2=0xFF;
  P3=0xFF;
  while(1);	
}

⌨️ 快捷键说明

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