📄 delay_51.lst
字号:
C51 COMPILER V7.06 DELAY_51 11/10/2008 22:12:04 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DELAY_51
OBJECT MODULE PLACED IN delay_51.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE delay_51.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #define _DELAY_51_C_
3 #include "DELAY_51.H" //用户自己定义的头文件
4
5 //==========================向以前版本兼容部分函数==============================
6 /*
7 ********************************************************************
8 ** 函数名:nus延时函数
9 ** 注意 :注意延时为 0 < n < 256,
10 ** 说明 :此版本主要是对前面的驱动兼容, 实际上可调度约为2us, 不做多
11 ** 说明,以后尽量用新版本delay_2us(uchar n)代替。
12 ********************************************************************
13 */
14 void delay_nus( uchar n )
15 {
16 1 while( --n )
17 1 {;}
18 1 }
19
20 /*
21 ********************************************************************
22 ** 函数名:nus延时函数
23 ** 注意 :注意延时为 0 < n < 256,
24 ** 说明 :此版本主要是对前面的驱动兼容, 实际上可调度约为2us, 不做多
25 ** 说明,以后尽量用新版本delay_50us(uint n)代替。
26 ********************************************************************
27 */
28 void delay_nms( uchar n )
29 {
30 1 uchar i;
31 1 uchar j;
32 1 uchar t;
33 1 for( t = 0; t < n; t++ )
34 1 {
35 2 for( j = 0; j < 15; j ++ )
36 2 {
37 3 for( i = 0; i < 21; i++ )
38 3 {;}
39 3 }
40 2 }
41 1 }
42 //==============================================================================
43 //==============================================================================
44 /*
45 ********************************************************************
46 ** 函数名 :2us延时函数
47 ** 注意项 :注意延时为 0 < t < 256
48 ** 例子提示:调用delay_2us(1),得到1ms延时
49 ** 说明 :
50
51 ** delay2(0):延时518us 518-2*256=6
52 ** delay2(1):延时7us
53 ** delay2(10):延时25us 25-20=5
54 ** delay2(20):延时45us 45-40=5
55 ** delay2(100):延时205us 205-200=5
C51 COMPILER V7.06 DELAY_51 11/10/2008 22:12:04 PAGE 2
56 ** delay2(200):延时405us 405-400=5
57
58 ** 可调度为2us,而最大误差为6us
59 ********************************************************************
60 */
61 /*
62 void delay_2us( uchar t )
63 {
64 while( --t )
65 {;}
66 }
67 */
68
69 /*------------------------------------------------------------------
70 函数全称:50us 延时
71 注意事项:AT89系列对应12M晶振
72 例子提示:调用delay_50us(20),得到1ms延时
73 输 入:
74 返 回:无
75
76 delay_50us(1):延时63us 63-50=13
77 delay_50us(10):延时513us 503-500=13
78 delay_50us(100):延时5013us 5013-5000=13
79 delay_50us(1000):延时50022us 50022-50000=22
80
81 误差最大在22us, 很准确了。
82
83 ------------------------------------------------------------------*/
84 /*
85 void delay_50us(uint t)
86 {
87 uchar j;
88 for( ; t > 0; t-- )
89 for( j = 19; j > 0; j-- )
90 {;}
91 }
92 */
93 /*
94 ********************************************************************
95 ** 函数全称:50ms 延时
96 ** 注意事项:基于1MIPS,AT89系列对应12M晶振
97 ** 例子提示:调用delay_50ms(20),得到1s延时
98 ** 全局变量:无
99 ** 返回: 无
100 ** 说明 : 参考网络
101
102 ** delay_50ms(1):延时50 010 10us
103 ** delay_50ms(10):延时499 983 17us
104 ** delay_50ms(100):延时4 999 713 287us
105 ** delay_50ms(1000):延时4 997 022 2.978ms
106
107 ** 延时50s,误差仅仅2.978ms,可以接受
108 ********************************************************************
109 */
110 /*
111 void delay_50ms( uint t )
112 {
113 uint j;
114 for( ; t > 0; t-- )
115 for( j = 6245; j > 0; j-- )
116 {;}
117 }
C51 COMPILER V7.06 DELAY_51 11/10/2008 22:12:04 PAGE 3
118 */
119
120
121
122
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 26 ----
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 + -