📄 systimer.lst
字号:
C51 COMPILER V8.09 SYSTIMER 09/23/2008 08:34:17 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE SYSTIMER
OBJECT MODULE PLACED IN systimer.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE src\systimer.c LARGE OPTIMIZE(7,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\sy
-stimer.lst) OBJECT(systimer.obj)
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include "inc/EXT_PUBLIC_VARIABLE.H"
4 #include "inc/CPUIO_DEF.H"
5 #include "inc/timer_pwm.h"
6
7
8 #define TIME_BASE_50MS 25
9 //#define TIME_BASE_100MS 100
10 #define TIME_BASE_500MS 10
11 #define F_OSC 110592
12 //extern void Dog(void);
13 /**************************************************************************
14 最小时基: 2ms
15 定时器类1: 定时范围为 2ms - 500ms
16 定时器类2: 定时范围为 500ms - 128s
17 **************************************************************************/
18 void Timer0() interrupt 1 using 1
19 { uchar i;
20 1
21 1 static uchar TimeBase50ms = TIME_BASE_50MS;
22 1 // static uchar TimeBase100ms = TIME_BASE_100MS;
23 1 static uchar TimeBase500ms = TIME_BASE_500MS;
24 1 TL0 = 0Xcc; //1ms定时中断
25 1 TH0 = 0XF8;
26 1
27 1 //IO口数据采样
28 1 bitHuoerRest=HUOER_REST;//霍尔1
29 1 bitHuoerMido=HUOER_MIDO;//霍尔2
30 1 bitHuoerLast=HUOER_LAST;//霍尔3
31 1
32 1 if( bitRstFlg&& (!bitHuoerRest))
33 1 {
34 2 bitRstFlg = 0;
35 2 MOTONOFF = 1;
36 2 TR1 = 0;
37 2 }
38 1 if( bitMidoFlg&& (!bitHuoerMido))
39 1 {
40 2 bitMidoFlg = 0;
41 2 MOTONOFF = 1;
42 2 TR1 = 0;
43 2 }
44 1 if( bitLastFlg&& (!bitHuoerLast))
45 1 {
46 2 bitLastFlg = 0;
47 2 MOTONOFF = 1;
48 2 TR1 = 0;
49 2 }
50 1
51 1 //处理以2ms为时基的定时器(时间范围为2ms-510ms)
52 1 for( i = 0; i < 4; i++ )
53 1 {
54 2 if( TimerNo[ i ] != 0 )
C51 COMPILER V8.09 SYSTIMER 09/23/2008 08:34:17 PAGE 2
55 2 if( --( TimerNo[ i ] ) == 0 )
56 2 fTimer |= 0x01 << i;
57 2 }
58 1
59 1
60 1 if( --TimeBase50ms != 0 )
61 1 return;
62 1 TimeBase50ms = TIME_BASE_50MS * ( F_OSC / 110592 );
63 1 //直接处理50毫秒为时基的代码
64 1
65 1 if( --TimeBase500ms != 0 )
66 1 return;
67 1 TimeBase500ms = TIME_BASE_500MS * ( F_OSC / 110592 );
68 1
69 1 //直接处理500ms为时基的代码
70 1 HW_WDT = 0;
71 1 HW_WDT = 1;
72 1 _nop_();
73 1 _nop_();
74 1 _nop_();
75 1 HW_WDT = 0;
76 1 //处理以500ms为时基的定时器(500ms-127.5s)
77 1 for( i = 4; i < 8; i++ )
78 1 {
79 2 if( TimerNo[ i ] != 0 )
80 2 if( -- ( TimerNo[ i ] ) == 0 )
81 2 fTimer |= 0x01 << i;
82 2 }
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2 ----
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 + -