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

📄 red_operate.c

📁 红外调试程序
💻 C
字号:
/****************************************************************************************************/
//****说明:本函数用于红外设防/撤防中的接受红外部分
//创建日期:2007.3.28
//创建人  :STONE
/****************************************************************************************************/
#include <REGX51.H>
#include <ini_51.h>               //51单片机状态初始化
/****************************************************************************************************/
#define   led_p P0
sbit led=P2^6;
/****************************************************************************************************/
//全局变量的定义
unsigned char personal_ID[4]={0x00};  //存放接收到的红外码
unsigned char personal_ID_buf[6]={0x00};  //个人ID的缓存,用来装待验证的个人ID
/****************************************************************************************************/
//端口定义
sbit warnning=P0^1;
/****************************************************************************************************/
//函数名称:red_data_rec
//函数功能:操纵串口接收数据
//入口参数:无
//出口参数:无
//****备注:规定一组红外码共有4个字节组成,在本函数中就是要接收到这四个字节。
void red_data_rec(void)
{
  unsigned char red_rec_num;   //定义红外接收字节的个数
  unsigned char start_byte=0x00;  //数据包同步字节
  unsigned char   end_byte=0x00;  //数据包结束字节
  unsigned char i=0;
  EA=0;
  for(red_rec_num=0;red_rec_num<6;red_rec_num++)   //一组身份ID由4个字节组成
    {
      while(RI==0)      //当接收中断标志位没有置位,等待
	    {;}
	  RI=0;              //接收中断标志位置位时清零
	  personal_ID_buf[red_rec_num]=SBUF;  //接收数据 
      personal_ID_buf[red_rec_num]=!personal_ID_buf[red_rec_num];
     }
	  led=0;
	  led_p=personal_ID_buf[3];
  if(personal_ID_buf[0]==0x05)
   {
     if(personal_ID_buf[5]==0x50)
	  {
	    for(i=0;i<4;i++)
		  {
		     personal_ID[i]=personal_ID_buf[i+1];   //接收到的数据包结束字相同,则接收数据
		  }
	   }
	}
  EA=1;
}
/****************************************************************************************************/

⌨️ 快捷键说明

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