extern bit irflag;
extern unsigned char ircode[4];
extern void InitInfrared(void);
void ConfigTimer0(unsigned int ms);
void main()
{
EA = 1; //开总中断,开始准备接受红外信号
InitInfrared(); //初始化红外功能
ConfigTimer0(1); //配置T0定时1ms
PT0 = 1; //配置T0中断为高优先级,启用本行可消除接收时的闪烁
while (1)
{
if (irflag) //红外接收标志位,1表示接受完毕,
{
irflag = 0;
/* switch(ircode[2])
{
case 0x0c:num=dofly_DuanMa[1];break;//1 显示相应的按键值
case 0x18:num=dofly_DuanMa[2];break;//2
case 0x5e:num=dofly_DuanMa[3];break;//3
case 0x08:num=dofly_DuanMa[4];break;//4
case 0x1c:num=dofly_DuanMa[5];break;//5
case 0x5a:num=dofly_DuanMa[6];break;//6
case 0x42:num=dofly_DuanMa[7];break;//7
case 0x52:num=dofly_DuanMa[8];break;//8
case 0x4a:num=dofly_DuanMa[9];break;//9
default :break;
} */
jianma1=dofly_DuanMa[ircode[2] >> 4];
jianma2=dofly_DuanMa[ircode[2]&0x0f];
}
}
}
/* 配置并启动T0,ms-T0定时时间 */
void ConfigTimer0(unsigned int ms)
{
unsigned long tmp; //临时变量