📄 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 + -