亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rm_all.c

?? 用51單片機對Philips的RC5遙控編碼進行解碼,得到遙控器的鍵值
?? C
字號:
/******************************************************************************
#ifdef DOC
File Name	:remocon.c
Description	:Remocon code recieve
Remark		:
Date		:04/03/01
Copyright	:Matsushita Electric Industrial Co.,ltd.
#endif
******************************************************************************/
/************************************
   	include files					
*************************************/
#include "reg52.h"
#include "struct.h"
#include "macrodef.h" 
#include "remocon.h"   

/***********************************
	Macro define					
***********************************/
#define REMO_SYSCODE 0x00			
/***********************************
	variable declaration			
***********************************/ 


unsigned char rem_code;   /* remote code receive */
REMO_FRAME	remodata;

/*Flags		remo_flags;
#define Frem_ok 	remo_flags.b_flag.f0
#define Fremin  	remo_flags.b_flag.f1
#define Fre_lead  	remo_flags.b_flag.f2
*/
bit Frem_ok ;
bit Fremin ;
bit Fre_lead;

//unsigned long int rem_data_tmp; /*			*/
unsigned char re_modc;				/*  		*/
unsigned char re_lead_width;		/*			*/
unsigned char re_with;				/* 			*/
unsigned char re_blnk;				/* 			*/
unsigned char re_loc;				/* 			*/
unsigned char re_data;				/* 			*/
unsigned char re_err;				/* 			*/ 
/*********************************************
	prototype declarations
*********************************************/
void vRMC_remocon(void);
void rm_blk(void);

void irq0(void);
void getrem(void);
extern unsigned char ucIIC_EEP_read(unsigned int addr);
extern void vIIC_EEP_write(unsigned int addr, unsigned char regdata);


//#define USE_PANAX_REMOCON
#ifdef  USE_PANAX_REMOCON
/*------------------------------------------------------------------*/
/*	Remocon KEY Table	 											*/
/*------------------------------------------------------------------*/
const unsigned char re_key[ ][3] = {
/*   Code  Code_,	Name					*/
	{0x30, 0xCF, KEY_POWER		},				/* 1	POWER		*/
	{0x10, 0xEF, KEY_DISPLAY	},			/* 2	DISPLAY		*/
	{0x00, 0xFF, KEY_OPENCLS	},			/* 3	OPEN/CLOSE	*/
	{0xB0, 0x4F, KEY_TVSYSTEM	},			/* 4	PAL/NTSC	*/	
	{0x90, 0x6F, KEY_KEY1 		},			/* 5	1			*/
	{0xA0, 0x5F, KEY_KEY2 		},			/* 6	2			*/
	{0x80, 0x7F, KEY_KEY3 		},			/* 7	3			*/
	{0xD2, 0x2D, KEY_KEY4Y 		},			/* 8	4			*/
	{0xE2, 0x1D, KEY_KEY5 		},			/* 9	5			*/
	{0xC2, 0x3D, KEY_KEY6 		},			/* 10	6			*/
	{0x52, 0xAD, KEY_KEY7 		},			/* 11	7			*/
	{0x62, 0x9D, KEY_KEY8 		},			/* 12	8			*/
	{0x42, 0xBD, KEY_KEY9		},			/* 13	9			*/
	{0x92, 0x6D, KEY_KEY11	 	},			/* 14	10+			*/	
	{0xA2, 0x5D, KEY_KEY00		},			/* 15	0			*/
	{0xF2, 0x0D, KEY_ANGLE 		},			/* 16	ANGLE		*/
	{0x72, 0x8D, KEY_SUBTITLE	},			/* 17	SUBTITLE 	*/	
	{0xB2, 0x4D, KEY_PLAYMODE 	},			/* 18	LANGUAGE	*/
	{0x82, 0x7D, KEY_CLEAR		},			/* 19	CLEAR		*/
	{0x32, 0xCD, KEY_MUTE		},			/* 20	MUTE		*/
	{0x12, 0xED, KEY_3D 		},			/* 21	3D			*/
	{0x22, 0xD4, KEY_SEARCH 	},			/* 22	SEARCH		*/	
	{0x02, 0xFD, KEY_ZOOM	 	},			/* 23	ZOOM		*/
	{0xF0, 0x0F, KEY_MENU		},			/* 24	MENU		*/
	{0xC0, 0x3F, KEY_TOPTITIL 	},			/* 25	TITLE		*/
	{0xE0, 0x1F, KEY_UP 		},			/* 26	UP			*/
	{0xD0, 0x2F, KEY_DOWN 		},			/* 27	DOWN		*/
	{0x70, 0x8F, KEY_LEFT 		},			/* 28	LEFT		*/
	{0x50, 0xAF, KEY_RIGHT		},			/* 29	RIGHT		*/
	{0x60, 0x9F, KEY_ENTER		},			/* 30	OK			*/
	{0xF8, 0x07, KEY_SETUP 		},			/* 31	SETUP		*/
	{0xC8, 0x37, KEY_PCB		},			/* 32	PBC			*/
	{0x3A, 0xC5, KEY_SPEAK 		},			/* 33	TSM			*/
	{0x1A, 0xE5, KEY_INTERLACE	},			/* 34	INTERLACE	*/
	{0x2A, 0xD5, KEY_VOLUMEMNS 	},			/* 35	VOLUME -	*/
	{0x0A, 0xF5, KEY_VOLUMEPLS 	},			/* 36	VOLUME +	*/
	{0xBA, 0x45, KEY_DIGEST 	},			/* 37	DIGEST		*/
	{0x9A, 0x65, KEY_KALAOKE 	},			/* 38	KALAOKE		*/
	{0xAA, 0x55, KEY_AUDIO 		},			/* 39	AUDIO		*/
	{0x8A, 0x75, KEY_RETURN 	},			/* 40	RETURN		*/
	{0x7A, 0x85, KEY_ABREP 		},			/* 41	A-B			*/
	{0x5A, 0xA5, KEY_REPEAT 	},			/* 42	REPEAT		*/
	{0x6A, 0x95, KEY_MARK 		},			/* 43	MARK		*/
	{0x4A, 0xB5, KEY_IMAGE 		},			/* 44	VIDEO ADJUST*/
	{0xFA, 0x05, KEY_BWDSKIP 	},			/* 45	PREVIOUS	*/
	{0xFA, 0x35, KEY_FWDSKIP 	},			/* 46	NEXT		*/
	{0xEA, 0x15, KEY_BWDSEARCH 	},			/* 47	B.WD		*/
	{0xCA, 0x35, KEY_FWDSEARCH 	},			/* 48	F.WD		*/
	{0x38, 0xC7, KEY_STOP 		},			/* 49	STOP		*/
	{0x18, 0xE7, NO_KEY 		},			/* 50	X			*/
	{0x28, 0xD7, KEY_PAUSE 		},			/* 51	PAUSE/STEP	*/
	{0x08, 0xF7, KEY_PLAY 		}			/* 52	PLAY		*/
};

#endif

void dummy(void)
	{}

void vRMC_remocon(void)
{
	/*REM_FRAME  now_remodata=remodata;*/
	unsigned char tmp1,tmp2,tmp3,tmp4;
	if (!Frem_ok) 
		{
			goto ERR;  /* receive not finish ,then return*/
		}
	/*receive 1 frame ok , process and reset the flag*/ 
		Frem_ok = 0;	
		tmp1=remodata.rem_format.verify.low;
		tmp2=remodata.rem_format.verify.high;
		tmp3=remodata.rem_format.data_pos;
		tmp4=~remodata.rem_format.data_neg;
	if((tmp3==tmp4)&&(tmp1==tmp2))		/*	check the recieved data is correct or not */
		{ 
		   {rem_code=remodata.rem_format.data_pos;}  /* get the remocon code in the frame */
		}

ERR:
	/*rm_err();*/
	dummy();
}








void getrem(void)  /*do in every timer0 irq  */
{
	switch(re_modc) 
	{case 0:	
			if (Fremin)  /*  if irq0 occured */
				{                   
					Fremin = 0;                 /*	Clear IRQO Flag */
					if(Fre_lead==0)		/*re_lead_width==0 means is the lead start*/
						{	Fre_lead=1 ; 	 break;} 	
					if(Fre_lead==1)
						{	re_lead_width++;}
									#if 0
										if (re_lead_width <=30 )	/* about	13.4msec=440usec *30 */
												{  /* if lead code width is less then 13.4ms, so the lead is NG*/
													Fre_lead=0 ;
													re_lead_width=0;
													re_loc=0;
													re_with =0;			/* conter for pluse width caculate */
													re_modc=0;
												}
											else 			/* lead code is ok */
												{
													re_loc = 	0;             /*	*/
													re_with = 	0;
													re_lead_width=0;
													Fre_lead=0;
													re_modc = 1;			/* go to bit receive mode */
												}
									#endif			
				                /**/
				}
			else
				{if(Fre_lead==1)
					{
							/*if (re_lead_width <= 32)*/
						 {
						 	re_lead_width++;
						 
						 if(P20&&(re_lead_width>=22)&&re_lead_width<=30) 
						 	{
						 		re_loc = 0;             /**/
								re_with = 0;
								re_lead_width=0;
								/*Fre_lead=0;*/
								re_modc = 1;
							}
						 }
					}
				}	
			break;
		case 1:								/* */
			if (Fremin) 					/* check the IRQ input 				*/
			{								/* The 2th fall edge of the frame	*/
				Fremin 	= 0;				/* clear the IRQ flag				*/
				re_with = 0;				/* conter for pluse width cacular 	*/
				re_loc 	= 0;	 			/* clear bit location */

				re_modc = 2;		/*next active set */
				remodata.remo = 0; 	/*clear the recive memory*/
			}
			break;
		case 2:     
			if (Fremin)
				{Fremin = 0;                 /**/
					if (re_with <= 6 )/*3.5msec=440usec*8*/
					{		
						remodata.remo <<= 1;
						/* re_blnk = re_with;	*/
						if( re_with >= 3) /* 32.15us * 50 = 1.6ms */
							{
								remodata.remo |=  0x01;
							}
						re_loc++;
						re_blnk = RE_BLANK1_CONUNT;	/*?*/
						
						/**/
						if (re_loc >= REMOCON_CODE_BITE)   /**/
						{
							re_loc = 0;         /**/
						/*	rem_data_tmp=remodata.remo;*/
							re_modc = 3;		/**/
						}
					}
					else 			/* re_with>6  not good data ,start again */
						{
						re_loc = 0;             /**/
						re_modc = 0;		/**/
						}
					re_with = 0;                /**/
				}
			else 							/* IRQ O not occur*/
				{if (re_with <= 6)	/**/
					{re_with++;}
				 if (re_with>6)
				    {
				    re_loc = 0;             /**/
					re_modc = 0;
				    }

				}
			break;
	
		case 3:  /* Fremin==Flag remocon in */
			if (Fremin) 
				{			
					/*Fremin = 0;				*/
					re_with = 0;			/**/
					re_modc = 0;			/**/
					remodata.remo = 0;
				}
			else{
					re_modc = 0;
					Frem_ok = 1;	/*1 frame receive 	*/
					
				}
			break;
			
			
		case 4:    	 /*reverse for abnormal mode ,eg   when mcu run in sleep mode */
			if (Fremin) {				/*  		*/
				Fremin = 0;				/**/
				re_with = 0;			/**/
				re_blnk = RE_BLANK1_CONUNT;				
			}
			else {						/**/
				if (re_with < 7){		/**/
					re_with++; 			 /*pluse width conter flash */
				}
				else{	 		       					
					re_loc = 0;        	/*Pluse too wide */
					re_modc = 0;		/**/
				}
			}
			break;	
	
		default:
			re_modc = 0;			/*	*/
			break;
	}
}


/***********************************************************************
#ifdef	DOC
TITLE	:	irq0
TITDOC	:	external irq 0 for RM input
INPUT	:	
OUTPUT	:	
DATE	:	
#endif
***********************************************************************/
void irq0 (void) interrupt 0 using 1
{
	
	if (!REMIN_P)
		{				/* IRQ	REMIN_P:p20in=0	*/
		/*{ if cpu run in slow mode , then exit slow mode }*/
		
		Fremin = 1;
		}
}


void tm1irq (void) interrupt 2 using 2  /*Timer 1 work @ 400us overflow mode*/
{
		getrem();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人一区二区| 日本美女一区二区三区| 91精品国产乱| 欧美精品亚洲一区二区在线播放| 91福利视频久久久久| 色狠狠av一区二区三区| 色综合av在线| 欧美日韩视频在线第一区| 欧亚一区二区三区| 欧美日韩一级二级| 欧美一区二区三区白人| 精品国产亚洲一区二区三区在线观看| 欧美一区二区三区四区在线观看| 69堂成人精品免费视频| 欧美一区二区三区免费视频| 精品99999| 国产精品三级视频| 亚洲一区二区三区中文字幕在线| 亚洲成人av在线电影| 日韩专区一卡二卡| 国产一区二区三区av电影| 成+人+亚洲+综合天堂| 91精品91久久久中77777| 91精品国产福利| 久久久不卡网国产精品一区| 日本一区二区电影| 亚洲精品欧美激情| 久久精品国产精品青草| 成人毛片老司机大片| 欧美日韩一级黄| 欧美成va人片在线观看| 中文字幕一区二区三区四区| 国产米奇在线777精品观看| 国产a级毛片一区| 欧美午夜精品久久久| 精品国产精品一区二区夜夜嗨| 国产精品久久久久影视| 日韩综合小视频| 99麻豆久久久国产精品免费| 欧美猛男男办公室激情| 欧美国产激情一区二区三区蜜月| 亚洲成av人**亚洲成av**| 韩国av一区二区三区四区| 色一区在线观看| 久久久www成人免费毛片麻豆| 一区二区免费视频| 粉嫩嫩av羞羞动漫久久久| 欧美嫩在线观看| 亚洲视频一二区| 狠狠色丁香久久婷婷综| 欧洲视频一区二区| 中文字幕色av一区二区三区| 麻豆极品一区二区三区| 欧美综合一区二区三区| 国产精品二区一区二区aⅴ污介绍| 视频一区视频二区在线观看| 成人av在线一区二区三区| 欧美刺激脚交jootjob| 亚洲福利一二三区| 99精品欧美一区二区三区小说| 久久综合一区二区| 亚洲午夜久久久久中文字幕久| 国产91精品精华液一区二区三区 | 亚洲第一精品在线| 成人蜜臀av电影| 国产亚洲精久久久久久| 久久99精品国产91久久来源| 69堂成人精品免费视频| 日韩中文字幕区一区有砖一区| 99re在线精品| 一区二区三区视频在线看| 91亚洲精品久久久蜜桃| 亚洲欧洲日韩在线| 91麻豆自制传媒国产之光| 亚洲天堂福利av| 91在线无精精品入口| 国产精品成人午夜| 99国产精品久久久| 亚洲精品菠萝久久久久久久| 日本精品一区二区三区高清 | 日本成人在线网站| 久久久.com| 日韩一级片网址| 日韩欧美不卡一区| 欧美电影精品一区二区| 欧美日韩精品专区| 欧美一区二区私人影院日本| 欧美色中文字幕| 91精品国产综合久久香蕉的特点| 亚洲图片欧美视频| 色综合天天性综合| 亚洲免费观看高清完整版在线 | 最新热久久免费视频| 91在线视频18| 亚洲成人午夜影院| 欧美精品一区二区久久久| 成人av电影在线网| 亚洲图片自拍偷拍| 精品动漫一区二区三区在线观看| 国产精品18久久久| 亚洲精品乱码久久久久久黑人| 欧美日韩国产综合一区二区| 久久国产尿小便嘘嘘| 国产精品免费av| 欧美日韩精品一区二区| 韩国视频一区二区| 一区二区三区四区激情| 日韩欧美成人激情| 色悠悠久久综合| 久久国产夜色精品鲁鲁99| 自拍视频在线观看一区二区| 欧美顶级少妇做爰| 成人性视频免费网站| 亚洲成人综合视频| 国产精品久久网站| 日韩一区二区在线观看视频 | 亚洲综合色婷婷| 久久婷婷一区二区三区| 欧美性三三影院| 处破女av一区二区| 日本美女一区二区| 亚洲乱码中文字幕| 国产欧美精品日韩区二区麻豆天美| 日本精品一级二级| 成人高清免费在线播放| 日韩精品高清不卡| 亚洲久本草在线中文字幕| 久久夜色精品国产噜噜av| 欧美男男青年gay1069videost| 成人一级黄色片| 激情综合网最新| 午夜视频在线观看一区二区| 成人免费小视频| 日本一区二区三区dvd视频在线| 欧美精品v国产精品v日韩精品| jvid福利写真一区二区三区| 久久激情五月激情| 热久久国产精品| 亚洲国产日韩综合久久精品| 亚洲三级在线看| 国产精品天美传媒| 亚洲国产经典视频| 久久精品在线观看| 久久亚洲精品国产精品紫薇| 日韩欧美在线综合网| 欧美精三区欧美精三区| 在线观看国产日韩| 在线观看免费一区| 欧美在线免费视屏| 欧美三级乱人伦电影| 欧美最猛性xxxxx直播| 91视频.com| 欧美综合在线视频| 欧美午夜一区二区| 欧美日韩国产影片| 欧美肥妇free| 精品国产凹凸成av人导航| 26uuu亚洲| 中文av字幕一区| 亚洲色图视频网| 亚洲电影一区二区三区| 午夜影院久久久| 玖玖九九国产精品| 极品销魂美女一区二区三区| 国产精品一区二区久激情瑜伽| 国产一区二区网址| 9色porny自拍视频一区二区| 91亚洲精品乱码久久久久久蜜桃 | 欧美第一区第二区| 亚洲精品在线网站| 国产精品色呦呦| 一区二区在线观看不卡| 五月激情综合色| 韩日欧美一区二区三区| 成人免费高清在线| 欧美伊人精品成人久久综合97| 欧美日韩国产另类不卡| 欧美大肚乱孕交hd孕妇| 国产农村妇女毛片精品久久麻豆| 中文字幕亚洲电影| 午夜伦欧美伦电影理论片| 国产一区二区三区日韩| 色婷婷久久一区二区三区麻豆| 91精品国产aⅴ一区二区| 亚洲国产精品ⅴa在线观看| 午夜一区二区三区视频| 国产成人精品免费| 欧美在线短视频| 久久久99精品久久| 亚洲一区国产视频| 国产成人av自拍| 欧美日韩国产大片| 国产农村妇女精品| 日本中文一区二区三区| 972aa.com艺术欧美| 日韩精品资源二区在线| 亚洲一区电影777| 成人h动漫精品| 久久午夜羞羞影院免费观看| 亚洲国产视频a|