51单片机的寄存器设置

  • 格式:doc
  • 大小:31.50 KB
  • 文档页数:13

void INT_0(void) interrupt 0

{

if(inf_mode_en == 1) //如果红外线接收总控制开,那么才可以判断下面的所有{

if(inf_shunxu == 0)

{

TH1 = 0x1F; //定时器高位

TL1 = 0xFF; //定时器低位

TR1 = 1; //定时器1开始计数,由于晶振是24M

inf_shunxu++; //顺序加一

ET1 = 1; //开定时器1的溢出中断使能

}

else if(inf_shunxu == 1)

{ inf_gonggong(); //红外线接收公共程序

if(inf_zanshi>kaishizhi_l)

{

inf_dizhi_buf=0;

inf_dizhichou_buf=0;

inf_shuju_buf=0;

inf_shujuf_buf=0;

}

else inf_gongcuowu(); //公共错误处理错误位置1,接收顺序清0

}

else

{

switch(inf_shunxu)

{

case 2: inf_gonggong(); //红外线接收公共程序

if(inf_zanshi

{inf_dizhi_buf&=0xFE;} //清除最低位

else if(inf_zanshi

{inf_dizhi_buf|=0x01;} //置最低位

else{inf_gongcuowu();} //公共错误处理

break;

case 3: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xFD;}

else if(inf_zanshi

{inf_dizhi_buf|=0x02;}

else{inf_gongcuowu();} //公共错误处理

break;

case 4: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xFB;}

else if(inf_zanshi

{inf_dizhi_buf|=0x04;}

else{inf_gongcuowu();} //公共错误处理

break;

case 5: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xF7;}

else if(inf_zanshi

{inf_dizhi_buf|=0x08;}

else{inf_gongcuowu();} //公共错误处理

break;

case 6: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xEF;}

else if(inf_zanshi

{inf_dizhi_buf|=0x10;}

else{inf_gongcuowu();} //公共错误处理

break;

case 7: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xDF;}

else if(inf_zanshi

{inf_dizhi_buf|=0x20;}

else{inf_gongcuowu();} //公共错误处理

break;

case 8: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0xBF;}

else if(inf_zanshi

{inf_dizhi_buf|=0x40;}

else{inf_gongcuowu();} //公共错误处理

break;

case 9: inf_gonggong();

if(inf_zanshi

{inf_dizhi_buf&=0x7F;}

else if(inf_zanshi

{inf_dizhi_buf|=0x80;}

else{inf_gongcuowu();} //公共错误处理

break;

case 10: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xFE;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x01;}

else{inf_gongcuowu();} //公共错误处理

break;

case 11: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xFD;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x02;}

else{inf_gongcuowu();} //公共错误处理

break;

case 12: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xFB;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x04;}

else{inf_gongcuowu();} //公共错误处理

break;

case 13: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xF7;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x08;}

else{inf_gongcuowu();} //公共错误处理

break;

case 14: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xEF;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x10;}

else{inf_gongcuowu();} //公共错误处理

break;

case 15: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xDF;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x20;}

else{inf_gongcuowu();} //公共错误处理

break;

case 16: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0xBF;}

else if(inf_zanshi

{inf_dizhichou_buf|=0x40;}

else{inf_gongcuowu();} //公共错误处理

break;

case 17: inf_gonggong();

if(inf_zanshi

{inf_dizhichou_buf&=0x7F;}

else if(inf_zanshi