📄 comm.lst
字号:
180 3 if((Volume>0x30)&&(Volume<=0x37))
181 3 {
182 4 Volume = Volume - 1;
183 4 tempbuf[8] = Volume;
184 4 ModemSend(tempbuf);
185 4 }
186 3 }
187 2 }
188 1 }
189
190 void int_ex1(void) interrupt DEF_INT_EX1
191 {
192 1 Vol_Rec = 1;
193 1 }
194
195 _IntAsync() interrupt DEF_INT_ASYNC
196 {
197 1 if ( RI == 0 )
198 1 {
199 2 TI = 0;
200 2 PUB_Async_TI = 1;
201 2 PUB_CountTT++;
202 2 if (PUB_CountTT >= DEF_COMMBUFF_LEN) PUB_CountTT = 0;
203 2 if ( PUB_CountTH != PUB_CountTT )
204 2 {
205 3
206 3 PUB_ByteTT = PUB_CommBuffT[PUB_CountTT];
207 3 ACC = PUB_ByteTT;
208 3 TB8 = P;
209 3 if ( PUB_CommParity == DEF_PARITY_ODD )
210 3 TB8 = TB8 ^ 0x01;
211 3 if ( PUB_CommParity == DEF_PARITY_2STOP )
212 3 TB8 = 1;
213 3 SBUF = PUB_ByteTT;
214 3 }
215 2 }
216 1 else
217 1 {
218 2 RI = 0;
219 2 PUB_Async_RecData = SBUF;
220 2 PUB_Async_RI = 0;
221 2 switch ( PUB_CommParity )
222 2 {
223 3 case DEF_PARITY_ODD:
224 3 ACC = PUB_Async_RecData;
225 3 if ( (P^0x01) == RB8 )
226 3 PUB_Async_RI = 1;
227 3 break;
228 3 case DEF_PARITY_EVEN:
229 3 ACC = PUB_Async_RecData;
230 3 if ( P == RB8 )
231 3 PUB_Async_RI = 1;
232 3 break;
233 3 case DEF_PARITY_2STOP:
234 3 ACC = PUB_Async_RecData;
235 3 if ( RB8 ==1 )
236 3 PUB_Async_RI = 1;
237 3 break;
238 3 default:
239 3 PUB_Async_RI = 1;
240 3 }
241 2 // if ( PUB_Async_RI )
C51 COMPILER V7.08 COMM 12/25/2004 18:50:53 PAGE 5
242 2 {
243 3 PUB_CommBuffR[PUB_CountRH] = PUB_Async_RecData;
244 3 PUB_CountRH++;
245 3 if (PUB_CountRH >= DEF_COMMBUFF_LEN-1) PUB_CountRH = 0;
246 3 }
247 2 }
248 1 }
249
250 void _AsyncOpen(uint Baud, uchar Parity)
251 {
252 1 uchar THData;
253 1 uchar cc;
254 1
255 1 ES = 0;
256 1 RI = TI =0;
257 1
258 1 THData = 0xfe;
259 1 switch ( Baud )
260 1 {
261 2 case 19200: THData = 0xfe; break;
262 2 case 9600: THData = 0xfe; break;
263 2 case 4800: THData = 0xfc; break;
264 2 case 2400: THData = 0xf8; break;
265 2 case 1200: THData = 0xf0; break;
266 2 }
267 1 if (Baud==19200)
268 1 PCON|= 0x80;
269 1 else
270 1 PCON&= 0x7f;
271 1 PUB_CommParity = Parity;
272 1 TR1 = 0x00;
273 1 cc = TMOD;
274 1 TMOD = (cc & 0x0f) | 0x20;
275 1 // if (Parity==DEF_PARITY_NON)
276 1 SCON = 0x40;
277 1 // else
278 1 // SCON = 0xc0;
279 1 TR1 = 0x00;
280 1 TH1 = THData;
281 1 TL1 = TH1;
282 1 REN = 0x01;
283 1 RI = 0x00;
284 1 TI = 0x00;
285 1 TR1 = 0x01;
286 1 ES = 1;
287 1 PUB_Async_RI = 0;
288 1 PUB_Async_TI = 1;
289 1
290 1 PUB_CountRH = PUB_CountRT = 0;
291 1 PUB_CountTH = PUB_CountTT = 0;
292 1 return;
293 1 }
294
295 bit _AsyncPutTest(void)
296 {
297 1 return PUB_Async_TI;
298 1 }
299
300 void _AsyncPut(uchar ucValue)
301 {
302 1
303 1 if ( PUB_Async_TI == 0)
C51 COMPILER V7.08 COMM 12/25/2004 18:50:53 PAGE 6
304 1 return;
305 1 ES = 0;
306 1 if (PUB_CountTH == PUB_CountTT)
307 1 {
308 2 PUB_ByteTT = ucValue;
309 2 ACC = PUB_ByteTT;
310 2 TB8 = P;
311 2 if ( PUB_CommParity == DEF_PARITY_ODD )
312 2 TB8 = TB8 ^ 0x01;
313 2 if ( PUB_CommParity == DEF_PARITY_2STOP )
314 2 TB8 = 1;
315 2 SBUF = ucValue;
316 2 }
317 1
318 1 PUB_CommBuffT[PUB_CountTH] = ucValue;
319 1 PUB_CountTH++;
320 1 if (PUB_CountTH >= DEF_COMMBUFF_LEN) PUB_CountTH = 0;
321 1 if (PUB_CountTH == PUB_CountTT)
322 1 PUB_Async_TI = 0;
323 1 ES = 1;
324 1 return;
325 1 }
326
327
328 bit _AsyncGetTest(void)
329 {
330 1 if ( PUB_CountRH != PUB_CountRT )
331 1 return 1;
332 1 else
333 1 return 0;
334 1 }
335
336 uchar _AsyncGet(void)
337 {
338 1 uchar cc;
339 1
340 1 while ( PUB_CountRH == PUB_CountRT );
341 1 ES = 0;
342 1 cc = PUB_CommBuffR[PUB_CountRT];
343 1 PUB_CountRT++;
344 1 if (PUB_CountRT >= DEF_COMMBUFF_LEN-1) PUB_CountRT = 0;
345 1 ES = 1;
346 1 return cc;
347 1 }
348
349
350
351
352
353
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 969 ----
CONSTANT SIZE = 61 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 5
IDATA SIZE = 72 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -