📄 irint.lst
字号:
137 3 return;
138 3 }
139 2 }
140 1 /************************************/
141 1 /* Detect 16 bit address code */
142 1 /************************************/
143 1 if(ir_enable==TRUE)
144 1 {
145 2 TMOD=0x11; /*counter start with INT0 and TR0*/
146 2 ir_code=0; /*初始化变量*/
147 2 for(i=0;i<16;i++)
148 2 {
149 3 while(INT1==0);
150 3 TL0=0;
151 3 TH0=0;
152 3 TR0=1;
153 3 do
154 3 {
155 4 count=(TL0+TH0*256); /*count :us unit */
156 4 if(Filter13(0)==1) break;
157 4 }while(count<=(CODE_1_TIME+DELTA)); /*INT0为高电平时计时*/
158 3 TR0=0;
159 3 ir_code<<=1;
160 3 if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA))) /*detect 1 code 2.24mS-0.56mS=1.68mS*/
161 3 ir_code++;
162 3 else if((count>(CODE_0_TIME-DELTA))&&(count<=(CODE_0_TIME+DELTA))); /*detect 0 code 1.12mS-0.56mS=0.56
-mS*/
163 3 else
164 3 {
165 4 ir_enable=FALSE;
166 4 TR0=1;
167 4 break; /*not suitable for address code */
168 4 }
169 3 } /*end for*/
170 2 }
171 1 /************************************/
172 1 /* Detect 16 bit data code */
173 1 /************************************/
174 1 if(ir_enable==TRUE&&ir_code==IR_SYSTEM_CODE)/**/
175 1 {
176 2 TMOD=0x11; /*counter start with INT0 and TR0*/
177 2 ir_code=0;
C51 COMPILER V7.50 IRINT 01/12/2006 13:31:13 PAGE 4
178 2 for(i=0;i<16;i++)
179 2 {
180 3 while(INT1==0);
181 3 TL0=0;
182 3 TH0=0;
183 3 TR0=1;
184 3 do
185 3 {
186 4 count=(TL0+TH0*256);
187 4 if(Filter13(0)==1) break;
188 4 }while(count<=(CODE_1_TIME+DELTA)); /*INT0为高电平时计时*/
189 3 TR0=0;
190 3 //count=(TL0+TH0*256); /*count :us unit */
191 3 ir_code<<=1;
192 3 if((count>(CODE_1_TIME-DELTA))&&(count<=(CODE_1_TIME+DELTA))) /*detect 1 code 1.68mS*/
193 3 ir_code++;
194 3 else if((count>(CODE_0_TIME-DELTA)&&count<=(CODE_0_TIME+DELTA))); /*detect 0 code 0.56mS*/
195 3 else
196 3 {
197 4 ir_enable=FALSE;
198 4 TR0=1;
199 4 break; /*not suitable for address code */
200 4 }
201 3 } /*end for*/
202 2 if(ir_enable==TRUE)
203 2 {
204 3 temp0=ir_code&0xff00;
205 3 temp0=~temp0;
206 3 temp0>>=8;
207 3 temp1=ir_code&0x00ff;
208 3 if(temp0!=temp1)
209 3 ir_enable=FALSE;
210 3 else
211 3 {
212 4 ir_data=(BYTE)(temp1); /*true code effective*/
213 4 ir_enable=TRUE; /*set ir flag*/
214 4 EX1=0;
215 4 return;
216 4 }
217 3 }
218 2 }
219 1 else
220 1 { ir_enable=FALSE;
221 2 EX1=1;}
222 1 }
223
224 void RemoteEvent(void)
225 {
226 1 bit bTemp=0;
227 1 switch(ir_data){
228 2 case REMOTE_KEY_POWER: bTemp=kyPOWEREvent(); break;
229 2 case REMOTE_KEY_SOURCE: IRSourceSelKeyCtrl(); break;
230 2 case REMOTE_KEY_DISPLAY:IRNTSC_PALCtrl(); break;
231 2 case REMOTE_KEY_DECR: bTemp=kyDECREASEEvent(); break;
232 2 case REMOTE_KEY_INCR: bTemp=kyINCREASEEvent(); break;
233 2 //Ruby 2004-06-07 case REMOTE_KEY_OK: OSDExit(); break;
234 2 case REMOTE_KEY_MENU: bTemp=kyMENUEvent(); break;
235 2 case REMOTE_KEY_SCALER : kySCALEREvent(); break;
236 2 case REMOTE_KEY_VO_INC: kySCALEREvent(); break;//bTemp=IRVolUpKeyCtrl(); break;
237 2 case REMOTE_KEY_VO_DEC: bTemp=IRVolDownKeyCtrl(); break;
238 2 case REMOTE_KEY_DEC_P: bTemp=IRDownKeyCtrl(); break;
239 2 case REMOTE_KEY_INC_P: bTemp=IRUpKeyCtrl(); break;
C51 COMPILER V7.50 IRINT 01/12/2006 13:31:13 PAGE 5
240 2 #ifdef ROTATE
241 2 case REMOTE_KEY_AIRCABLE: kyDismodeEvent(); break;
242 2 #endif
243 2 #ifdef TV
// case REMOTE_KEY_MUTE: bTemp=IRSetupKeyCtrl(); break;
// case REMOTE_KEY_DEC_P: bTemp=IRDownKeyCtrl(); break;
// case REMOTE_KEY_INC_P: bTemp=IRUpKeyCtrl();break;
case REMOTE_KEY_NUM0: IRNumKeyCtrl(0); break;
case REMOTE_KEY_NUM1: IRNumKeyCtrl(1); break;
case REMOTE_KEY_NUM2: IRNumKeyCtrl(2); break;
case REMOTE_KEY_NUM3: IRNumKeyCtrl(3); break;
case REMOTE_KEY_NUM4: IRNumKeyCtrl(4); break;
case REMOTE_KEY_NUM5: IRNumKeyCtrl(5); break;
case REMOTE_KEY_NUM6: IRNumKeyCtrl(6); break;
case REMOTE_KEY_NUM7: IRNumKeyCtrl(7); break;
case REMOTE_KEY_NUM8: IRNumKeyCtrl(8); break;
case REMOTE_KEY_NUM9: IRNumKeyCtrl(9); break;
case REMOTE_KEY_NUM_Bites: IRNumKeyCtrl(10); break;
#endif
259 2 }
260 1 if(bTemp)
261 1 OSDEventMgr();
262 1 EX1=1;
263 1 }
264 //#endif
265
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 775 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -