📄 delay.lst
字号:
C51 COMPILER V8.02 DELAY 04/18/2008 09:54:41 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DELAY
OBJECT MODULE PLACED IN delay.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE delay.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "main.h"
2
3 #define delay_GLOBALS
4 #include "delay.h"
5 #include "UART.h"
6 #include "zlg500c.h"
7
8
9 /*****************************************************************************
10
11 FUNCTION: 定时器2定时中断设置
12
13 IN: resolution 分辨率
14
15 OUT: -
16
17 COMMENT:
18 if resolution=RCAP2_50us,then 定时器每50us中断一次
19 if resolution=RCAP2_5ms,then 定时器每5ms中断一次
20 if resolution=RCAP2_10ms,then 定时器每10ms中断一次
21
22 *****************************************************************************/
23 #if T2int_timeout_en
24 void T2_timeout_init(INT16U resolution)
25 {
26 1 ET2 = 0; // Disable Timer2 interrupt
27 1 TR2 = 0;
28 1
29 1 RCAP2LH = resolution;
30 1 T2LH = resolution;
31 1
32 1 T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
33 1 ET2 = 1; // Enable Timer2 interrupt
34 1 }
35
36 /*****************************************************************************
37
38 FUNCTION: stop_timeout
39
40 IN: -
41 OUT: -
42
43 COMMENT: Stop Timer2 and clear timeout state
44
45 *****************************************************************************/
46 //void stop_timeout(void)
47 //{
48 // ET2 = 0; // disable Timer2 interrupt
49 // T2CON = 0x00; // 16-bit auto-reload, clear TF2, stop timer
50 //}
51
52
53 /*****************************************************************************
54 Interrupt Handler TIMER2
55 *****************************************************************************/
C51 COMPILER V8.02 DELAY 04/18/2008 09:54:41 PAGE 2
56
57 void T2_server(void) interrupt 5 using 2 //Timer2 interrupt
58 {
59 1 if(SerTmOut)
60 1 SerTmOut--;
61 1
62 1 if(WAITRESPDLY)
63 1 WAITRESPDLY--;
64 1
65 1 TF2 = 0;
66 1 }
67 #endif
68
69 #pragma noaregs
70 /***********************************************************************
71
72 ***********************************************************************/
73 #if delay_T0_en
void delay_T0(INT16U _T0HL)
{
TMOD &= 0xf0;
TMOD |= 0x01;
ET0 = FALSE;
TH0 = _T0HL>>8;
TL0 = _T0HL;
TR0 = TRUE;
TF0 = FALSE;
while(!TF0);
TR0 = FALSE;
}
#endif
87
88 /****************************************************************************
89 * *
90 * Function: delay_50us *
91 * *
92 * Input: _50us *
93 * Output: - *
94 * *
95 * Description: *
96 * *
97 * Time delay with a resolution of 50 us. *
98 * *
99 ****************************************************************************/
100 #if delay_50us_en
void delay_50us (INT8U _50us)
{
RCAP2LH = RCAP2_50us;
T2LH = RCAP2_50us;
ET2 = 0; // Disable timer2 interrupt
T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
while (_50us--)
{
while (!TF2);
TF2 = FALSE;
}
TR2 = FALSE;
}
C51 COMPILER V8.02 DELAY 04/18/2008 09:54:41 PAGE 3
#endif
119
120 /****************************************************************************
121 * *
122 * Function: delay_1ms *
123 * *
124 * Input: _1ms *
125 * Output: - *
126 * *
127 * Description: *
128 * *
129 * Time delay with a resolution of 1 ms. *
130 * *
131 ****************************************************************************/
132 #if delay_1ms_en
void delay_1ms (INT16U _1ms)
{
RCAP2LH = RCAP2_1ms;
T2LH = RCAP2_1ms;
ET2 = 0; // Disable timer2 interrupt
T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
while (_1ms--)
{
while (!TF2);
TF2 = FALSE;
}
TR2 = FALSE;
}
#endif
150
151 /****************************************************************************
152 * *
153 * Function: delay_10ms *
154 * *
155 * Input: _10ms *
156 * Output: - *
157 * *
158 * Description: *
159 * *
160 * Time delay with a resolution of 10 ms. *
161 * *
162 ****************************************************************************/
163 #if delay_10ms_en
void delay_10ms (INT16U _10ms)
{
RCAP2LH = RCAP2_10ms;
T2LH = RCAP2_10ms;
ET2 = 0; // Disable timer2 interrupt
T2CON = 0x04; // 16-bit auto-reload, clear TF2, start timer
while (_10ms--)
{
while (!TF2);
TF2 = FALSE;
}
TR2 = FALSE;
}
C51 COMPILER V8.02 DELAY 04/18/2008 09:54:41 PAGE 4
#endif
181
182 #pragma aregs
183
184 //The end
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 37 ----
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 + -