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

📄 p_pelcop96_1.c

📁 这是监视器行业常见的键盘与球机通讯协议的C语言源代码
💻 C
字号:
#include "config.h"
/*
unsigned char data1,data3,data4,datax;
unsigned char bdata data2;
sbit ext_fg = data2^0;

void (code *rr)(unsigned char rc);
*/
//bit ptn_stop_fg;
unsigned char data_dir3;
unsigned char data p_data1,p_data2,p_data5,p_data6,p_datax;

unsigned char bdata p_data3;
//sbit sense_fg3          = data3^7;
//sbit swing_fg3          = data3^4;
//sbit power_fg       = data3^3;
sbit iris_close_fg3 	= p_data3^3;
sbit iris_open_fg3 	    = p_data3^2;
sbit focus_near_fg3 	= p_data3^1;
sbit focus_far_fg3      =  p_data3^0;

unsigned char bdata p_data4;
//sbit focus_far_fg1 = data4^7;
sbit zoom_wide_fg3 = p_data4^6;
sbit zoom_tele_fg3 = p_data4^5;
sbit down_fg3      = p_data4^4;
sbit up_fg3        = p_data4^3;
sbit left_fg3      = p_data4^2;
sbit right_fg3     = p_data4^1;
sbit ext_fg3      = p_data4^0;

void (code *ext2)(unsigned char rc);
void p96_word1(unsigned char rc);
void p96_word2(unsigned char rc);
void p96_word3(unsigned char rc);
void p96_word4(unsigned char rc);
void p96_word5(unsigned char rc);
void p96_word6(unsigned char rc);
void p96_word7(unsigned char rc);
void p96_word8_1(unsigned char rc);
void p96_word8_2(unsigned char rc);

extern void p96_word1(unsigned char rc) using 1
{
	if (rc == 0xa0)
	{
		p_datax = rc;
		rr = p96_word2;
	}
	else if (rc == 0xfa)
	{
		rr = alarm_word2;
		rs = p96_word1;
	}	
}

void p96_word2(unsigned char rc) using 1
{
	if (rc != (id - 1)) 
		rr = p96_word1;
	else
	{
		rr = p96_word3;
		p_datax = p_datax^rc;
	}
}

void p96_word3(unsigned char rc) using 1
{
	p_data3 = rc;
	p_datax = p_datax^p_data3;
	rr = p96_word4;
}

void p96_word4(unsigned char rc) using 1
{
	p_data4 = rc;
	p_datax = p_datax^p_data4;
	if (ext_fg3)
	{
		ext2 = p96_word8_2;
	}
	else
	{
		ext2 = p96_word8_1;
	}
	rr = p96_word5;
}

void p96_word5(unsigned char rc) using 1
{
	p_data5 = rc;
	p_datax = p_datax^p_data5;
	rr = p96_word6;
}

void p96_word6(unsigned char rc) using 1
{
	p_data6 = rc;
	p_datax = p_datax^p_data6;
	rr = p96_word7;
}

void p96_word7(unsigned char rc) using 1
{
	if (rc != 0xaf) 
		rr = p96_word1;
	else
	{
		p_datax = p_datax^0xaf;
		rr = ext2;
	}
}

void p96_word8_1(unsigned char rc) using 1      //standard command
{
	rr = p96_word1;
	if (rc == p_datax)
	{
		/*if (sense_fg3)
		{
			run_swing2_fg = 1;
			power_on_fg = 1;
		}
		else
		{
			run_swing2_fg = 0;
			power_off_fg = 1;
		}*/
		if (iris_close_fg3)
			iris_close_fg = 1;
		if (iris_open_fg3)
			iris_open_fg = 1;
		if (focus_near_fg3)
		{
			focu_near_fg = 1;
			focus_need_stop = 1;
		}
		if (focus_far_fg3)
		{
			focu_far_fg = 1;
			focus_need_stop = 1;
		}
 	    if (zoom_wide_fg3)
		{
			zoom_wide_fg = 1;
			zoom_need_stop = 1;
		}
		if (zoom_tele_fg3)
		{
			zoom_tele_fg = 1;
			zoom_need_stop = 1;
		}
		if (down_fg3||up_fg3||left_fg3||right_fg3)
 	    {
			data_dir3 = p_data4 & 0x1f; 
			switch(data_dir3)
			{
				case 0x02:	//pan turn right
				case 0x04:	//pan turn left
				case 0x10:	//titl down
				case 0x08:	//titl up    						
				case 0x0c:	//pan turn left and titl up								
				case 0x14:	//pan turn right and titl down							
				case 0x0a:	//pan turn right and titl up					
				case 0x12:	//pan turn left and titl down
					cont_fg = 1;
					ptn_stop_fg = 1;
					run_swing_fg = 0;
					run_swing2_fg = 0;
					run_seq2_fg = 0;
					seq[12] = data_dir3; 
					seq[13] = p_data5;
					seq[14] = p_data6;
					break;
			}
		}
		if ((!zoom_wide_fg3) && (!zoom_tele_fg3) && (!down_fg3) && (!up_fg3) && (!left_fg3) && (!right_fg3))
		{
			if((zoom_need_stop) && (ptn_stop_fg))
			{
				stop_all_fg = 1;
				zoom_need_stop = 0;
				ptn_stop_fg = 0;
			}
		}
		if ((!focus_near_fg3) && (!focus_far_fg3))
		{
			if(_testbit_(focus_need_stop))
				focu_stop_fg = 1;
		}
		if ((!zoom_wide_fg3) && (!zoom_tele_fg3))
		{
			if(_testbit_(zoom_need_stop))
				zoom_stop_fg = 1;
		}
		if ((!down_fg3) && (!up_fg3) && (!left_fg3) && (!right_fg3))
		{
			if (_testbit_(ptn_stop_fg))
			{
				cont_fg = 1;
				seq[12] = 0;
			}		
		}
		SIGNAL = 0;
	}
}

void p96_word8_2(unsigned char rc) using 1      //extended command
{
	rr = p96_word1;
	if (rc == p_datax)
	{
		run_swing_fg = 0;
		run_swing2_fg = 0;
		run_seq2_fg = 0;
		switch(p_data4)
		{
			case 0x03:
				set_pre_fg = 1;
				seq[15] = p_data6;
				break;
			case 0x07:
				call_pre_fg = 1;
				seq[15] = p_data6;
				break;
			case 0x05:
				del_pre_fg = 1;
				seq[15] = p_data6;
				break;
			case 0x1f:
				set_pre_fg = 1;
				seq[15] = F_SCAN_START;
				break;
			case 0x21:
				set_pre_fg = 1;
				seq[15] = F_SCAN_END;
				break;
			case 0x23:
				run_swing2_fg = 1;
				break;
		}
		SIGNAL = 0;
	}
}

⌨️ 快捷键说明

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