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

📄 tc9012.c

📁 基于51的TC9012遥控程序
💻 C
字号:
// 波特率发生器的初值(115200波特率)XTAL 11.0592M

#include"TC9012.h"

unsigned char Value_h,Tcount;
unsigned char RemoteData;
bit OKFlag;

void Decoder( void );
/*********************************************************** 
函数名称:外部中断1 处理函数 
函数功能:读取代码 
入口参数: 
出口参数: 
备 注: 10Mhz晶振的时间置数,作别的晶振要注意改变
***********************************************************/
void int1(void) interrupt 2
{
    if ( TH0==0 && TL0==0 )  //判断是否是第一次接收到红外数据
    {  
	TR0 = 1; 
    }
	else
	{
    TR0 = 0;  
	Value_h=TH0;
	TH0 = TL0 =0;
	TR0 = 1;

    if( Tcount>=16&&Tcount<24)//取有效数据码,舍弃其他码
		{       
		if(Value_h>=0&&Value_h<=3)
			RemoteData &= 0x7f;

       	else if(Value_h>=4&&Value_h<=13)
			RemoteData |= 0x80;
				
		RemoteData >>= 1;
   		}
	
	Tcount++;
	 
    if(Tcount>=33)////一共取33位有效数据(包括引导头数据)
		{
		TR0=0;
		TH0=TL0=0;
		Tcount=0;
		OKFlag=1;
		}
    }
	
}
/*********************************************************** 
函数名称:T0中断
函数功能: 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void Timer0(void) interrupt 1
{					 
	TR0 = 0;TH0 = TL0 = 0;Tcount = 0;
}
/*********************************************************** 
函数名称: 
函数功能: 
入口参数: 
出口参数: 
备 注: 
***********************************************************/
void Decoder( void )
{
	if(OKFlag)
	{	
		Dis4bitNumber(0,3,RemoteData);
		OKFlag = 0;
	}
}

⌨️ 快捷键说明

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