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

📄 abcctv.c

📁 keil c open
💻 C
字号:
#include "extern.h"

 void os_abcctv_recieve()
{
	uchar	xdata    i;
	for(i=1;i<10;i++)
	{
		t[i-1]=t[i];
	}
	t[9]=S0BUF;
	RI=0;
	if((t[9]==0x55)&&(t[0]==0xa0))
    {
		OS_Abcctv_Anlays();		
    }
    else
    {
        return;
    }
}

void OS_Abcctv_Anlays()
{
	uchar	xdata	i=0;
	i=OS_Address_Analys();	
	if(i==0)
	{
		sendtwo=0;	
		return;
	}
	if(t[1]==0)
	{
		return;
	}
	if((t[1]&0xf0)==0xf0)
	{
		return;
	}
	i=t[2];
	i=t[2]&0x04;
	if(i==0x04)
	{
		OS_AB_Left_Right_Analays();
	}
	else
	{
		if((t[3]==0)&&(t[4]==0))
		{
			switch(t[1]&0xfe)
			{
				case 	0x82:pe[4]=0x0c;break;//open
				case 	0x88:pe[4]=0x0b;break;//close
				case 	0x8a:pe[4]=0x0a;break;//near
				case 	0x84:pe[4]=0x09;break;//far
				case 	0x8c:pe[4]=0x0e;break;//wide
				case	0x86:pe[4]=0x0d;break;//tele
				case 	0x92:pe[4]=0x02;pe[5]=0X80;break; //right
				case 	0x8e:pe[4]=0x01;pe[5]=0X80;break; //left
				case	0x80:pe[4]=0x03;pe[5]=0x60;break;
				case	0x90:pe[4]=0x04;pe[5]=0x60;break;//up
				case	0x9a:	pe[4]=0x37;pe[5]=99;break;  //2+on	goto menu
				case	0x9e:	pe[4]=0x37;pe[5]=98;break;// 3+on  end  menu;
				default:
					switch(t[1]&0xf0)
					{
					//	case 0x80:	pe[4]=0x03;pe[5]=(t[1]&0x07)*8+10;break; //down
					//	case 0x90:	pe[4]=0x04;pe[5]=(t[1]&0x07)*8+10;break; //up			
						case 0xb0:	pe[4]=0x37;pe[5]=t[1]&0x0f;pe[5]=pe[5]/2+1;break;   //set  on
						case 0xa0:	pe[4]=0x39;pe[5]=t[1]&0x0f;pe[5]=pe[5]/2+1;break;   //set  ent
						default	:break;
					}
			}
		}
		else
		{
		    OS_A_Need_ack();//
           //用来做大于10的设置预制点。调用预置点
           //2003-12-5 13:53   其实需要再次确认.
		}
	}
		os_anlay_data_all();
}

uchar   OS_Address_Analys()
{
	uint    xdata    x=0;
	uchar   xdata   a=0,b=0,c=0;
	a=t[1];
	b=t[2];
	a=a&0x01;
	b=b/8;
	b=b+1;
	c=a*32+b;
	x=(uint)c;
	if(hard_address!=1023)
	if(x!=hard_address)
	if(x!=64)
	{
		sendtwo=0;
		pe[4]=0;
		return  0;
	}
	else
		return  1;
}

void OS_AB_Left_Right_Analays()
{
    uchar  xdata	 temp;
    temp=t[1];
    temp=temp&0x0f;
    temp=temp*7+1;
	pe[5]=temp;
	switch(t[1]&0xf0)
   {
		case 0xa0:pe[4]=0x01;break;
		case 0xb0:pe[4]=0x02;break;
		case 0x8e:	if(t[5]==0x4f)   {pe[4]=0x39,pe[5]=t[6]/4+9;}break;
		case 0x00:pe[4]=0x00;break;
		default:break;
	}
	if(t[1]==0x8e)
	if(t[5]==0x4f)   
	{
		switch(t[6])
		{
			case	0xe2:pe[4]=0x37,pe[5]=80;break;//65+shot
			case	0xe6:pe[4]=0x37,pe[5]=79;break;//66+shot
			case	0xea:pe[4]=0x37,pe[5]=78;break;//67+shot
			case	0xee:pe[4]=0x37,pe[5]=77;break;//68+shot
			case	0xf2:pe[4]=0x37,pe[5]=65;break;//69+shot
			case	0xf6:pe[4]=0x37,pe[5]=66;break;//70+shot
			case	0xfa:pe[4]=0x37,pe[5]=67;break;//71+shot
			case	0xfe:pe[4]=0x37,pe[5]=68;break;//72+shot
			default: pe[4]=0x39,pe[5]=t[6]/4+9;break;
		}
	}
	
}

void OS_A_Need_ack()
{

}

⌨️ 快捷键说明

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