#include<> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit IR=P3^2; //红外接口标志
sbit dianji=P1^7;
sbit p1_0=P1^0;
s;//定时器0工作方式2,TH0是重装值,TL0是初值
TH0=0x00; //重载值
TL0=0x00; //初始化值
ET0=1; //开中断
TR0=1;
}
/*------------------------------------------------
外部中断0初始化
------------------------------------------------*/
void EX0init(void)
{
IT0 = 1; //指定外部中断0下降沿触发,INT0 ()
EX0 = 1; //使能外部中断
EA = 1; //开总中断
}
/*------------------------------------------------
键值处理
------------------------------------------------*/
void Ir_work(void)//红外键值散转程序
{
switch(IRcord[2])//判断第三个数码值
{
case 0x0c:gao_num=1;di_num=3;break;//1
case 0x18:gao_num=2;di_num=2;break;//2
case 0x5e:gao_num=3;di_num=1;break;//3
case 0x08:gao_num=4;di_num=0;break;//4
case 0x15:num++;if(num==4) num=3;break;//+号,步进电机加速
case 0x07:if(num!=0) num--;else num=0;break;//-号,步进电机减速
case 0x09:flag=~flag;break;//8 EQ键控制步进电机正反转
case 0x43:if(flag1==0) flag1=1;else flag1=0;break;//预留
default:break;
}
irpro_ok=0;//处理完成标志
}
/*------------------------------------------------
红外码值处理
------------------------------------------------*/
void Ircordpro(void)//红外码值处理函数
{
unsigned char i, j, k;
unsigned char cord,value;
k=1;
for(i=0;i<4;i++)
红外遥控实例 来自淘豆网m.daumloan.com转载请标明出处.