📄 delay_t0.lst
字号:
C51 COMPILER V7.07 DELAY_T0 06/16/2006 15:36:39 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE DELAY_T0
OBJECT MODULE PLACED IN Delay_t0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Delay_t0.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND TABS(3)
stmt level source
1 /*
2 Delay_T0.C (v1.00)
3 Simple hardware delays based on T0.
4 */
5
6 #include "Main.H"
7
8 // ------ Private constants ----------------------------------------
9
10 // Timer preload values for use in simple (hardware) delays
11 // - Timers are 16-bit, manual reload ('one shot').
12 //
13 // NOTE: These values are portable but timings are *approximate*
14 // and *must* be checked by hand if accurate timing is required.
15 //
16 // Define Timer 0 / Timer 1 reload values for ~1 msec delay
17 // NOTE: Adjustment made to allow for function call overheard etc.
18
19 #define PRELOAD01 (65536 - (tWord)(OSC_FREQ / (OSC_PER_INST * 1020)))
20 #define PRELOAD01H (PRELOAD01 / 256)
21 #define PRELOAD01L (PRELOAD01 % 256)
22
23 /*
24 DELAY_T0()
25 Function to generate N millisecond delay (approx).
26 Uses Timer 0 (easily adapted to Timer 1).
27 */
28 void DELAY_T0_Wait(const tWord N)
29 {
30 1 tWord ms;
31 1
32 1 // Configure Timer 0 as a 16-bit timer
33 1 TMOD &= 0xF0; // Clear all T0 bits (T1 left unchanged)
34 1 TMOD |= 0x01; // Set required T0 bits (T1 left unchanged)
35 1
36 1 ET0 = 0; // No interupts
37 1
38 1 // Delay value is *approximately* 1 ms per loop
39 1 for (ms = 0; ms < N; ms++)
40 1 {
41 2 TH0 = PRELOAD01H;
42 2 TL0 = PRELOAD01L;
43 2
44 2 TF0 = 0; // clear overflow flag
45 2 TR0 = 1; // start timer 0
46 2
47 2 while (TF0 == 0); // Loop until Timer 0 overflows (TF0 == 1)
48 2
49 2 TR0 = 0; // Stop Timer 0
50 2 }
51 1 }
52
53 /*------------------------------------------------------------------*-
54 ---- END OF FILE -------------------------------------------------
55 -*------------------------------------------------------------------*/
C51 COMPILER V7.07 DELAY_T0 06/16/2006 15:36:39 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 41 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -