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

📄 hong2.c

📁 51单片机遥控程序
💻 C
字号:
#include <reg52.h>
#define c(x) (x*110592/120000)
sbit Ir_Pin=P3^2;
unsigned char code Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳极数码显示码0-F.
unsigned char code Led_Sel[]={0xfe,0xfd,0xfb,0xf7};

unsigned char Led_Buf[4]; //显示缓冲区

char Led_Index; //位选

unsigned char Ir_Buf[4]; //用于保存解码结果


//==============================================================

//数码管扫描

timer0() interrupt 1 using 1

{

	TL0=65536-1000;
	TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
	P2=0;
	P0=Led_Tab[Led_Buf[0]]; //段选
	//P2=Led_Tab[Led_Buf[Led_Index]]; //段选
	if(++Led_Index>3) Led_Index=0; //四个扫描完了,到第一个数码管

}

//==============================================================

unsigned int Ir_Get_Low()

{

	TL1=0;	
	TH1=0;	
	TR1=1;	
	while(!Ir_Pin && (TH1&0x80)==0);	
	TR1=0;	
	return TH1*256+TL1;

}

//=============================================================

unsigned int Ir_Get_High()

{

	TL1=0;	
	TH1=0;	
	TR1=1;	
	while(Ir_Pin && (TH1&0x80)==0);	
	TR1=0;	
	return TH1*256+TL1;

}

//==============================================================

main()

{

	unsigned int temp;
	char i,j;
	Led_Index=1;
	TMOD=0x11;
	TL0=65536-1000;
	TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
	EA=1;
	ET0=1;
	TR0=1;
	Led_Buf[0]=0;
	Led_Buf[1]=0;
	Led_Buf[2]=0;
	Led_Buf[3]=0; //显示区设成0

	do{

restart:

		while(Ir_Pin);
		temp=Ir_Get_Low();
		if(temp<c(8500) || temp>c(9500)) continue;//引导脉冲低电平9000
		temp=Ir_Get_High();
		if(temp<c(4000) || temp>c(5000)) continue;//引导脉冲高电平4500
		for(i=0;i<4;i++) //4个字节
		for(j=0;j<8;j++) //每个字节8位

		{
		
				temp=Ir_Get_Low();				
				if(temp<c(200) || temp>c(800)) goto restart;			
				temp=Ir_Get_High();				
		  		if(temp<c(200) || temp>c(2000)) goto restart;			
				Ir_Buf[i]>>=1;			
				if(temp>c(1120)) Ir_Buf[i]|=0x80;
		
		}

	Led_Buf[0]=Ir_Buf[2]&0xf;
//	Led_Buf[1]=(Ir_Buf[2]/16)&0xf;
//	Led_Buf[2]=Ir_Buf[3]&0xf;
//	Led_Buf[3]=(Ir_Buf[3]/16)&0xf; //显示结果
    }
      while(1);
	 
	 
}

⌨️ 快捷键说明

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