📄 timer.ls1
字号:
A51 MACRO ASSEMBLER TIMER 12/27/2003 22:39:17 PAGE 1
MACRO ASSEMBLER A51 V7.04
OBJECT MODULE PLACED IN timer.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE timer.src PR(.\timer.ls1) EP DEBUG
LOC OBJ LINE SOURCE
1 ; .\timer.SRC generated from: timer.c
2 ; COMPILER INVOKED BY:
3 ; C:\Keil\C51\BIN\C51.EXE timer.c DEBUG OBJECTEXTEND NOPRINT SRC(.\timer.SRC)
4
5 $nomod51
6
7 NAME TIMER
8
0080 9 P0 DATA 080H
0090 10 P1 DATA 090H
00A0 11 P2 DATA 0A0H
00B0 12 P3 DATA 0B0H
00B4 13 T0 BIT 0B0H.4
00D6 14 AC BIT 0D0H.6
00B5 15 T1 BIT 0B0H.5
0090 16 T2 BIT 090H.0
00AF 17 EA BIT 0A8H.7
00A8 18 IE DATA 0A8H
00CE 19 EXF2 BIT 0C8H.6
00B7 20 RD BIT 0B0H.7
00AC 21 ES BIT 0A8H.4
00B8 22 IP DATA 0B8H
0098 23 RI BIT 098H.0
00B2 24 INT0 BIT 0B0H.2
00D7 25 CY BIT 0D0H.7
0099 26 TI BIT 098H.1
00B3 27 INT1 BIT 0B0H.3
00CB 28 RCAP2H DATA 0CBH
00BC 29 PS BIT 0B8H.4
0081 30 SP DATA 081H
0091 31 T2EX BIT 090H.1
00D2 32 OV BIT 0D0H.2
00CA 33 RCAP2L DATA 0CAH
00C9 34 C_T2 BIT 0C8H.1
00B6 35 WR BIT 0B0H.6
00CD 36 RCLK BIT 0C8H.5
00CC 37 TCLK BIT 0C8H.4
0099 38 SBUF DATA 099H
0087 39 PCON DATA 087H
0098 40 SCON DATA 098H
0089 41 TMOD DATA 089H
0088 42 TCON DATA 088H
0089 43 IE0 BIT 088H.1
008B 44 IE1 BIT 088H.3
00F0 45 B DATA 0F0H
00C8 46 CP_RL2 BIT 0C8H.0
00E0 47 ACC DATA 0E0H
00A9 48 ET0 BIT 0A8H.1
00AB 49 ET1 BIT 0A8H.3
008D 50 TF0 BIT 088H.5
00AD 51 ET2 BIT 0A8H.5
008F 52 TF1 BIT 088H.7
00CF 53 TF2 BIT 0C8H.7
009A 54 RB8 BIT 098H.2
008C 55 TH0 DATA 08CH
00A8 56 EX0 BIT 0A8H.0
0088 57 IT0 BIT 088H.0
008D 58 TH1 DATA 08DH
A51 MACRO ASSEMBLER TIMER 12/27/2003 22:39:17 PAGE 2
009B 59 TB8 BIT 098H.3
00AA 60 EX1 BIT 0A8H.2
008A 61 IT1 BIT 088H.2
00CD 62 TH2 DATA 0CDH
00D0 63 P BIT 0D0H.0
009F 64 SM0 BIT 098H.7
008A 65 TL0 DATA 08AH
009E 66 SM1 BIT 098H.6
008B 67 TL1 DATA 08BH
009D 68 SM2 BIT 098H.5
00CC 69 TL2 DATA 0CCH
00B9 70 PT0 BIT 0B8H.1
00BB 71 PT1 BIT 0B8H.3
00D3 72 RS0 BIT 0D0H.3
00BD 73 PT2 BIT 0B8H.5
008C 74 TR0 BIT 088H.4
00D4 75 RS1 BIT 0D0H.4
008E 76 TR1 BIT 088H.6
00CA 77 TR2 BIT 0C8H.2
00B8 78 PX0 BIT 0B8H.0
00BA 79 PX1 BIT 0B8H.2
0083 80 DPH DATA 083H
00A5 81 HZ_IND BIT 0A0H.5
0082 82 DPL DATA 082H
00CB 83 EXEN2 BIT 0C8H.3
009C 84 REN BIT 098H.4
00C8 85 T2CON DATA 0C8H
00B0 86 RXD BIT 0B0H.0
00B1 87 TXD BIT 0B0H.1
00D5 88 F0 BIT 0D0H.5
00D0 89 PSW DATA 0D0H
90 ?PR?_?get_jiffies?TIMER SEGMENT CODE
91 ?PR?timer_bh?TIMER SEGMENT CODE
92 ?DT?timer_bh?TIMER SEGMENT DATA OVERLAYABLE
93 ?PR?timer_init?TIMER SEGMENT CODE
94 ?C_INITSEG SEGMENT CODE
95 ?BI?TIMER SEGMENT BIT
96 ?DT?TIMER SEGMENT DATA
97 EXTRN CODE (_?check_key)
98 EXTRN DATA (?C_IBP)
99 PUBLIC pal_auto
100 PUBLIC timerbh_pending
101 PUBLIC use_timer1
102 PUBLIC timer_init
103 PUBLIC timer_bh
104 PUBLIC _?get_jiffies
105
---- 106 RSEG ?DT?timer_bh?TIMER
0000 107 ?timer_bh?BYTE:
0000 108 t1_count?140: DS 2
109
---- 110 RSEG ?BI?TIMER
0000 111 use_timer1: DBIT 1
0001 112 timerbh_pending: DBIT 1
0002 113 pal_auto: DBIT 1
114
---- 115 RSEG ?DT?TIMER
0000 116 t0_count: DS 2
0002 117 xjiffies: DS 2
0004 118 jiffies: DS 2
119
---- 120 RSEG ?C_INITSEG
0000 02 121 DB 002H
0001 00 F 122 DB jiffies
0002 0000 123 DW 00000H
124
A51 MACRO ASSEMBLER TIMER 12/27/2003 22:39:17 PAGE 3
0004 02 125 DB 002H
0005 00 F 126 DB xjiffies
0006 0000 127 DW 00000H
128
0008 C100 F 129 DB 0C1H, timerbh_pending + 000H ; bit-init
130
000A C100 F 131 DB 0C1H, use_timer1 + 000H ; bit-init
132
000C C100 F 133 DB 0C1H, pal_auto + 000H ; bit-init
134
000E 02 135 DB 002H
000F 00 F 136 DB t0_count
0010 0032 137 DW 00032H
138
139 ; #pragma REGISTERBANK(0)
140 ;
141 ; #include <reg52.h>
142 ; #include <intrins.h>
143 ; #include <stdlib.h>
144 ; #include "def.h"
145 ; #include "timer.h"
146 ; #include "at24c02.h"
147 ; #include "mtv130.h"
148 ;
149 ; static volatile jiffies_t jiffies = 0;
150 ; #if 1
151 ; static jiffies_t xjiffies = 0;
152 ; //static struct time_val xtime;
153 ; #endif
154 ; bit timerbh_pending = 0;
155 ;
156 ; #define INIT_T0 (65536L - (F_OSC/12)/HZ)
157 ;
158 ; #if 0
159 ;
160 ; static void run_timer_list(void);
161 ;
162 ; void timer0_interrupt(void) interrupt 1
163 ; {
164 ; TH0 = (unsigned char)(INIT_T0>>8);
165 ; TL0 = (unsigned char)INIT_T0;
166 ;
167 ; jiffies++;
168 ; run_timer_list();
169 ; }
170 ;
171 ; #else
172 ;
173 ; #pragma asm
174
175 EXTRN CODE (soft_interrupt)
176 ?PR?timer0_interrupt?TIMER SEGMENT CODE
177
---- 178 CSEG AT 0000BH
000B 120000 F 179 LCALL timer0_interrupt
000E 020000 F 180 LJMP soft_interrupt
181
---- 182 RSEG ?PR?timer0_interrupt?TIMER
183 USING 0
0000 184 timer0_interrupt:
0000 C0E0 185 PUSH ACC
186
0002 758CE0 187 MOV TH0,#0E0H
0005 758AC0 188 MOV TL0,#0C0H
189
0008 0500 F 190 INC jiffies+01H
A51 MACRO ASSEMBLER TIMER 12/27/2003 22:39:17 PAGE 4
000A E500 F 191 MOV A,jiffies+01H
000C 7002 192 JNZ out_setbh
000E 0500 F 193 INC jiffies
0010 194 out_setbh:
0010 D200 F 195 SETB timerbh_pending
196
0012 D0E0 197 POP ACC
0014 32 198 RETI
199
200 ; #pragma endasm
201 ;
202 ; #endif
203 ;
204 ; jiffies_t get_jiffies(void) reentrant
205
---- 206 RSEG ?PR?_?get_jiffies?TIMER
0000 207 _?get_jiffies:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -