📄 remote_led.lst
字号:
119 5 if ((bInKey_Valid)&&(Key_Data==Display_MODE))
120 5 {bDISP_DATA_TYPE=!bDISP_DATA_TYPE;}
121 5 else {;}
122 5 bInKey_Valid=LOW;
123 5 if (bDISP_DATA_TYPE==UserCode)
124 5 { disp_buff[0]=Disp_00To0F[0x0c];//////////////display usercode
125 6 if (UsercodeL==UsercodeH)//////////usercode is 8 bit address
126 6 { disp_buff[1]=Disp_00To0F[UsercodeL&0x0f];
127 7 disp_buff[2]=Disp_00To0F[UsercodeL>>4];
128 7 disp_buff[3]=Disp_00To0F[16];
129 7 disp_buff[4]=Disp_00To0F[0];
130 7 }
131 6 else///////////////////////////////usercode is 16 bit address
132 6 { disp_buff[1]=Disp_00To0F[UsercodeL&0x0f];
133 7 disp_buff[2]=Disp_00To0F[UsercodeL>>4];
134 7 disp_buff[3]=Disp_00To0F[UsercodeH&0x0f];
135 7 disp_buff[4]=Disp_00To0F[UsercodeH>>4];
136 7 }
137 6 }
138 5 else/////////////////////////////////////////////////display keydata
139 5 { disp_buff[0]=Disp_00To0F[0x0d];
140 6 disp_buff[1]=Disp_00To0F[Keydata&0x0f];
141 6 disp_buff[2]=Disp_00To0F[Keydata>>4];
142 6 disp_buff[3]=Disp_00To0F[16];
143 6 disp_buff[4]=Disp_00To0F[0];
144 6 }//end of if (bDISP_DATA_TYPE==UserCode)
145 5 disp_str=disp_buff; //&&(Key_Data==Display_MODE)
146 5 for (;(!(bInKey_Valid)&&(!bInRemote_Flag)&&(!bDelay30s_Overflow));)
147 5 Display_Str();
148 5 Delay_DEC30s=DELAY30s;
149 5 if (bInRemote_Flag)
150 5 { if (!InRemote()) Display_Message();
151 6 bInRemote_Flag=LOW;//////////////display error or noise char
152 6 }
153 5 }//end of for (;!bDelay30s_Overflow;)
154 4 bDelay30s_Overflow=LOW; Delay_DEC30s=0;
155 4 }//end of if (InRemote())
156 3 else {Delay_DEC30s=DELAY30s; Display_Message();}///////display error or noise char
157 3 }//end of if (bInRemote_Flag)
158 2 } while (1);
159 1 }
160 //////////////////////////////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.06 REMOTE_LED 12/06/2004 10:42:26 PAGE 4
-//
161 ///////////////////////////////////////InRemote function//////////////////////////////////////////////////
-//
162 bit InRemote()///////////////////////////////////////the leader signed equal to 1.12ms is PHILIP SAA3010
163 { bit return_bit;////////////////////////////////////////the leader signed equal to 9ms is NEC PD6122G
164 1 if (bInRemote_T0)
165 1 {
166 2 TR0=LOW; TMOD=0x15; TL0=TH0=0xff;
167 2 bTimerOrCounter_Flag=COUNT_T0; TR0=TR1=HIGH;
168 2 bNoise_IR=HIGH; return_bit=LOW;
169 2 }
170 1 else
171 1 { for (;(!bInRemote_T0)&&(Counter<=93);){;}// Display_Str();////////////chek 9ms or 1.12ms
172 2 TR0=LOW;TL0=Copy_TL0;
173 2 if (bInRemote_T0)
174 2 { if ((Counter>10)&&(Counter<12)) return_bit=InRemote_Philip();////////PHILIP SAA3010
175 3 else
176 3 { if (Counter>85) return_bit=InRemote_Nec();//85/////////////////////NEC PD6122G
177 4 else { if (Counter<=8)
178 5 { bNoise_IR=LOW; return_bit=HIGH;}
179 5 else
180 5 { bNoise_IR=LOW; return_bit=LOW;} //ease error
181 5 }
182 4 }
183 3 }
184 2 else
185 2 { bNoise_IR=LOW; return_bit=LOW;}
186 2 TR0=LOW; TMOD=0x15; TL0=TH0=0xff; bTimerOrCounter_Flag=COUNT_T0; TR0=TR1=HIGH;
187 2 }
188 1 return (return_bit);
189 1 }
190 //////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
191 //////////////////////InRemote_Philip function/////1.5 bit leader 5 bit control and 6 bit data////////////
-//
192 bit InRemote_Philip()/////////////////////////////////////////////////////////////////////PHILIP SAA3010
193 { uchar Temp1,Temp2,i;////////////////the leader signed is low 1.12ms high 0.56ms low 0.84ms
194 1 bit bTemp;///////////////////////////////////the data is high(or low) 0.84ms low(or high) 0.84ms
195 1 Temp1=0x00;
196 1 for (;(bInRemote_T0)&&(Counter<7);) {;}// Display_Str();
197 1 if (!((!bInRemote_T0)&&(Counter>=4))) { bNoise_IR=LOW;return (LOW);}
198 1 { TL0=Copy_TL0;
199 2 for (Counter=0;Counter<10;) {;}// Display_Str();
200 2 if (!bInRemote_T0)/////////////the 1ms delay include 0.84ms leader signed and 0.16ms data
201 2 { Temp1=0x01;
202 3 for (Counter=0;(!bInRemote_T0)&&(Counter<8);) {;}// Display_Str();
203 3 if ((bInRemote_T0)&&(Counter>=6))/////////the remainder 0.68ms delay is last data
204 3 { for (;Counter<16;) {;}}
205 3 else { bNoise_IR=LOW;return (LOW);}
206 3 }
207 2 else
208 2 { for (Counter=0;((bInRemote_T0)&&(Counter<9));) {;} //Display_Str();
209 3 if ((!bInRemote_T0)&&(Counter>=6))
210 3 { for (;Counter<16;) {;}}
211 3 else { bNoise_IR=LOW;return (LOW);}
212 3 }
213 2 for (i=0;i<5;i++)
214 2 { Temp1<<=1;
215 3 bTemp=bInRemote_T0;
216 3 for (Counter=0;Counter<8;) {;} //Display_Str();
217 3 if (bInRemote_T0==bTemp) { bNoise_IR=LOW;return (LOW);}
218 3 if (bInRemote_T0) Temp1|=0x01;
C51 COMPILER V7.06 REMOTE_LED 12/06/2004 10:42:26 PAGE 5
219 3 for (Counter=0;Counter<8;) {;} //Display_Str();
220 3 }
221 2 Temp2=0x00;
222 2 for (i=0;i<6;i++)
223 2 { Temp2<<=1;
224 3 bTemp=bInRemote_T0;
225 3 for (Counter=0;Counter<8;) {;} //Display_Str();
226 3 if (bInRemote_T0==bTemp) { bNoise_IR=LOW;return (LOW);}
227 3 if (bInRemote_T0) Temp2|=0x01;
228 3 for (Counter=0;Counter<8;) {;} //Display_Str();
229 3 }
230 2 UsercodeL=UsercodeH=Temp1; Keydata=Temp2;
231 2 if (DISP_CHIP_TYPE==NEC_PD6122G) {DISP_CHIP_TYPE=PHILIP_SAA3010; bCHIP_TYPE_STAU=HIGH;}
232 2 }//end of if (!((!bInRemote_T0)&&(Counter>=4)))
233 1 bNoise_IR=LOW;return (HIGH);
234 1 }
235 //////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
236 //////////////////InRemote_Nec function 8 bit usercode 8 bit keydata and it con-code//////////////////////
-//
237 bit InRemote_Nec()///////////////////////////////////////////////////////////////////////////NEC PD6122G
238 { uchar i,j;////////////////////////////////////////////////the leader is low 9ms high 4.5ms
239 1 uchar Temp[4];//////////////////////////////the data is low 0.56ms high 0.56ms("0") or 1.68ms("1")
240 1 TR0=HIGH;
241 1 for (Counter=0;(bInRemote_T0)&&(Counter<48);) {;} //Display_Str();
242 1 if ((!bInRemote_T0)&&(Counter>=19)&&(Counter<=24))
243 1 {
244 2 for (Counter=0;(!bInRemote_T0)&&(Counter<7);) {;}// Display_Str();
245 2 if ((bInRemote_T0)&&(Counter>=3)) { bNoise_IR=LOW;return (HIGH);}
246 2 bNoise_IR=LOW;return (LOW);
247 2 }
248 1 if (!((!bInRemote_T0)&&(Counter>=40))) { bNoise_IR=LOW;return (LOW);}
249 1 { for (i=0;i<4;i++)
250 2 { Temp[i]=0x00;
251 3 for (j=0;j<8;j++)
252 3 { //TL0=Copy_TL0;
253 4 for (Counter=0;(!bInRemote_T0)&&(Counter<7);) {;}// Display_Str();//6
254 4 if (!((bInRemote_T0)&&(Counter>=3))) { bNoise_IR=LOW;return (LOW);}//ease error
255 4 //TL0=Copy_TL0; TH0=Copy_TH0;
256 4 for (Counter=0;(bInRemote_T0)&&(Counter<24);) {;}// Display_Str();
257 4 Temp[i]>>=1;
258 4 if (bInRemote_T0) { bNoise_IR=LOW;return (LOW);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -