📄 main.lst
字号:
C51 COMPILER V9.00 MAIN 05/16/2011 22:31:41 PAGE 5
241 * *
242 ****************************************************************************/
243
244 void delay_50us (uchar _50us)
245 {
246 1
247 1 RCAP2LH = RCAP2_50us;
248 1 T2LH = RCAP2_50us;
249 1 ET2 = 0; // Disable timer2 interrupt
250 1 T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
251 1
252 1 while (_50us--)
253 1 {
254 2 while (!TF2);
255 2 TF2 = FALSE;
256 2 }
257 1
258 1 TR2 = FALSE;
259 1
260 1 }
261
262
263 /****************************************************************************
264 * *
265 * Function: delay_1ms *
266 * *
267 * Input: _1ms *
268 * Output: - *
269 * *
270 * Description: *
271 * *
272 * Time delay with a resolution of 1 ms. *
273 * *
274 ****************************************************************************/
275
276 void delay_1ms (uchar _1ms)
277 {
278 1
279 1 RCAP2LH = RCAP2_1ms;
280 1 T2LH = RCAP2_1ms;
281 1 ET2 = 0; // Disable timer2 interrupt
282 1 T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
283 1
284 1 while (_1ms--)
285 1 {
286 2 while (!TF2);
287 2 TF2 = FALSE;
288 2 }
289 1 TR2 = FALSE;
290 1
291 1 }
292
293
294 /****************************************************************************
295 * *
296 * Function: delay_10ms *
297 * *
298 * Input: _10ms *
299 * Output: - *
300 * *
301 * Description: *
302 * *
C51 COMPILER V9.00 MAIN 05/16/2011 22:31:41 PAGE 6
303 * Time delay with a resolution of 10 ms. *
304 * *
305 ****************************************************************************/
306
307 void delay_10ms (uint _10ms)
308 {
309 1
310 1 RCAP2LH = RCAP2_10ms;
311 1 T2LH = RCAP2_10ms;
312 1 ET2 = 0; // Disable timer2 interrupt
313 1 T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
314 1
315 1 while (_10ms--)
316 1 {
317 2 while (!TF2)
318 2 {
319 3 if (CmdValid || CmdReceived)
320 3 {
321 4 TR2 = FALSE;
322 4 TF2 = FALSE;
323 4 return;
324 4 }
325 3 }
326 2 TF2 = FALSE;
327 2 }
328 1 TR2 = FALSE;
329 1
330 1 }
331
332
333 #ifdef NOP_DELAY
/****************************************************************************
* *
* Function: delay_50us_NOP *
* *
* Input: - *
* Output: - *
* *
* Description: *
* *
* Zeitverz攇erung von 50 鎠. *
* *
****************************************************************************/
void delay_50us_NOP (void)
{
uchar i;
for(i=0; i<81; i++) _nop_();
}
#endif
356
357
358 /****************************************************************************
359 * *
360 * Function: delay_8us_NOP *
361 * *
362 * Input: - *
363 * Output: - *
364 * *
C51 COMPILER V9.00 MAIN 05/16/2011 22:31:41 PAGE 7
365 * Description: *
366 * *
367 * *
368 ****************************************************************************/
369
370 void delay_8us_NOP (void)
371 {
372 1 uchar i;
373 1
374 1 for(i=0; i<14; i++) _nop_();
375 1 }
376
377
378 #pragma aregs
379
380
381 /****************************************************************************
382 * *
383 * Function: xtoa_h *
384 * *
385 * Input: _byte *
386 * Output: ASCII High-Nibble *
387 * *
388 * Description: *
389 * *
390 * Wandelt das High-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um. *
391 * *
392 ****************************************************************************/
393
394 uchar xtoa_h (uchar _byte)
395 {
396 1 uchar nibble = _byte >> 4;
397 1
398 1 return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
399 1 }
400
401
402 /****************************************************************************
403 * *
404 * Function: xtoa_l *
405 * *
406 * Input: _byte *
407 * Output: ASCII Low-Nibble *
408 * *
409 * Description: *
410 * *
411 * Wandelt das Low-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um. *
412 * *
413 ****************************************************************************/
414
415 uchar xtoa_l (uchar _byte)
416 {
417 1 uchar nibble = _byte & 0x0F;
418 1
419 1 return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
420 1 }
421
422
423 /****************************************************************************
424 * *
425 * Function: isr_timer0 *
426 * *
C51 COMPILER V9.00 MAIN 05/16/2011 22:31:41 PAGE 8
427 * Input: - *
428 * Output: - *
429 * *
430 * Description: *
431 * *
432 * *
433 ****************************************************************************/
434
435 void isr_timer0 (void) interrupt 1 using 2
436 {
437 1 if (Timer0Cnt)
438 1 {
439 2 --Timer0Cnt;
440 2 }
441 1 else
442 1 {
443 2 STOP_T0();
444 2
445 2 #ifdef AUTODELAY
446 2 if (DelayRate < MAXDELAYRATE && CmdCnt > 0)
447 2 {
448 3 DelayRate++;
449 3 DelayRateLocked = FALSE;
450 3 }
451 2 #endif
452 2
453 2 RecvState = RECV_STX;
454 2
455 2 if (!SendReady && LLfReady)
456 2 {
457 3 if (RepCnt < MAXREPCNT)
458 3 {
459 4 RepCnt++;
460 4 CALL_isr_UART();
461 4 }
462 3 else
463 3 {
464 4 RepCnt = 0;
465 4 Quit = FALSE;
466 4 SendReady = TRUE;
467 4 }
468 3 }
469 2 }
470 1 }
471
472
473 /***************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 742 ----
CONSTANT SIZE = 99 ----
XDATA SIZE = 21 27
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 36 ----
BIT SIZE = 12 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -