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