📄 time_module.lst
字号:
C51 COMPILER V7.01 TIME_MODULE 11/22/2002 10:29:12 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE TIME_MODULE
OBJECT MODULE PLACED IN time_module.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE time_module.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /************************************************************************
2 * 广州周立功单片机发展有限公司 http://www.zlgmcu.com *
3 ************************************************************************/
4 /************************************************************************
5 * *
6 * 系统定时、软件延时处理程序 *
7 * *
8 ************************************************************************/
9
10
11 #include "reg66x.H"
12
13 //数据类型定义
14 #define uchar unsigned char
15 #define ulong unsigned long
16 #define uint unsigned int
17
18 //利用T0定时器以实现精确的延时
19 #define Crystal 11059200L //定义晶体频率11.592MHZ
20 #define Base_50us 256-46 //50us溢出时间基准
21 static uint data Tcounter; //基准时间计数器
22 static bit T0IR; //T0中断标志
23
24 void Delay_50us(uint _time); //延时函数,非中断方式,延时时间基准50us
25 void TimeOut_Start(uint _time50us); //开始时间溢出,中断方式,时间基准50us
26 void TimeOut_Stop(void); //停止时间溢出定时
27
28 /*-------------------------------------------------------------------------------------------
29 定时器0中断函数 、用以实现定时功能
30 -------------------------------------------------------------------------------------------*/
31 void T0_Val(void) interrupt 1 using 2
32 {
33 1 Tcounter--;
34 1 if(Tcounter == 0)
35 1 {
36 2 T0IR = 1; //时间定时到,置位标志
37 2 TR0 = 0;
38 2 }
39 1
40 1 }
41
42
43 /*-------------------------------------------------------------------------------------------
44 函数原型: void Delay_50us(uint _time50us)
45 参数说明: _time50us延时时间基准单位为50us 的个数
46 返回值: 无
47 说明: 用于系统时间定时
48 -------------------------------------------------------------------------------------------*/
49 void Delay_50us(uint _time50us)
50 { uint TempCount;
51 1 TempCount = _time50us;
52 1 TMOD |= 0x02; //T0,初值自动重装
53 1 TH0 = Base_50us; //设置定时初值
54 1 TL0 = Base_50us;
55 1 ET0 = 0; //禁止T0中断
C51 COMPILER V7.01 TIME_MODULE 11/22/2002 10:29:12 PAGE 2
56 1 TR0 = 1; //计时开始
57 1 while( TempCount--)
58 1 {
59 2 while(!TF0);TF0 = 0; //等待
60 2 }
61 1 TR0 = 0;
62 1 }
63
64 /*-------------------------------------------------------------------------------------------
65 函数原型: void TimeOut_Start(uint _time)
66 参数说明: _time 定时时间基准单位为50us 的个数
67 返回值: 无
68 说明: 用于系统时间延时
69 -------------------------------------------------------------------------------------------*/
70 void TimeOut_Start(uint _time)
71 {
72 1 Tcounter = _time;
73 1 TMOD |= 0x02; //T0,初值自动重装
74 1 TH0 = Base_50us; //设置定时初值
75 1 TL0 = Base_50us;
76 1 T0IR = 0; //清除中断T0标志
77 1 ET0 = 1; //使能T0中断
78 1 EA = 1;
79 1 TR0 = 1; //计时开始
80 1 }
81 /*
82
83 void TimeOut_Stop(void)
84 {
85 Tcounter=0;
86 ET0 = 0;
87 TR0 = 0;
88 }
89
90 */
91
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 78 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -