📄 timer.ls1
字号:
207 PUBLIC TIMER1_Routine
208 PUBLIC DELAY_1s
209 PUBLIC DELAY_1ms
210 PUBLIC DELAY_10us
211 PUBLIC _TIMER0_GetGPIOByte
212 PUBLIC _TIMER0_SetGPIOBit
213 PUBLIC _TIMER0_GetGPIOBit
214 PUBLIC TIMER0_Get_Hardware_Keypad2
215 PUBLIC TIMER0_Get_Hardware_Keypad1
216 PUBLIC TIMER0_Keypad_Scan
217 PUBLIC TIMER0_Stop
218 PUBLIC TIMER0_Start
219 PUBLIC TIMER0_Handler
220 PUBLIC TIMER0_Routine
221
---- 222 RSEG ?XD?TIMER0_Get_Hardware_Keypad1?TIMER
0000 223 ?TIMER0_Get_Hardware_Keypad1?BYTE:
0000 224 temp_key?541: DS 1
225
---- 226 RSEG ?XD?TIMER0_Get_Hardware_Keypad2?TIMER
0000 227 ?TIMER0_Get_Hardware_Keypad2?BYTE:
0000 228 temp_key?642: DS 1
0001 229 keymode?643: DS 1
230
---- 231 RSEG ?XD?TIMER0_Keypad_Scan?TIMER
0000 232 ?TIMER0_Keypad_Scan?BYTE:
0000 233 mode?440: DS 1
234
---- 235 RSEG ?XD?TIMER
0000 236 G_Timer0Stop: DS 1
0001 237 G_KeepPushKeyCount: DS 1
0002 238 G_Timer0Count1: DS 2
0004 239 G_TimeStamp: DS 4
0008 240 G_KeyScan: DS 1
0009 241 G_Timer0Count: DS 1
242 ; /*++
243 ;
244 ; Copyright (c) 2001 Sunplus Technology Co., Ltd.
245 ;
246 ; Module Name:
247 ;
248 ; timer.c
249 ;
250 ; Abstract:
251 ;
252 ; Module related to timer
253 ;
254 ; Environment:
255 ;
A51 MACRO ASSEMBLER TIMER 04/19/2006 17:04:01 PAGE 5
256 ; Keil C51 Compiler
257 ;
258 ; Note:
259 ;
260 ; Since in-line assembly code is included, pre-compile C51 file
261 ; to A51 file. Then assemble A51 file.
262 ;
263 ; Revision History:
264 ;
265 ; 08/28/2001 Chi-Yeh Tsai created
266 ;
267 ; --*/
268 ;
269 ; //=============================================================================
270 ; //Header file
271 ; //=============================================================================
272 ; #include "general.h"
273 ; #include "timer.h"
274 ; #include "ui.h"
275 ; #include "cardlink.h"
276 ; #include "audio.h"
277 ;
278 ; //ada@0415 test ui
279 ; #include "main.h"
280 ; #include "uiflow.h"
281 ;
282 ; //Joe@2003.3.4 20:31 add begin
283 ; #include "JoeToEvb.h"
284 ; xdata UCHAR G_KeepPushKeyCount;
285 ; extern xdata UCHAR old_Audeokey;
286 ; extern xdata UCHAR G_ucZoomFactor;
287 ;
288 ; extern xdata UCHAR G_FlashStatus;
289 ; //Joe@2003.3.4 20:32 add end
290 ; //=============================================================================
291 ; //Symbol
292 ; //=============================================================================
293 ; //-----------------------------------------------------------------------------
294 ; //Constant
295 ; //-----------------------------------------------------------------------------
296 ; #if (SIMULATE) // WWWW0409
297 ; sbit Key_Column1;
298 ; sbit Key_Column2;
299 ; #else
300 ; sbit Key_Column1 = P3^4;
301 ; sbit Key_Column2 = P3^5;
302 ; //Joe@2003.3.5 11:12 add begin
303 ; sbit Key_Column3 = P3^3;
304 ; //Joe@2003.3.5 11:12 add end
305 ; #endif
306 ;
307 ; //Joe@2003.3.5 9:20 add begin
308 ; void TIMER0_LowPowerCount(void);
309 ; //Joe@2003.3.5 9:20 add end
310 ; //patch5.03@Joe@2003.4.7 19:23 add begin
311 ; xdata UCHAR G_Timer0Count;
312 ; xdata USHORT G_Timer0Count1;//wendy@2004/9/8
313 ; //patch5.03@Joe@2003.4.7 19:23 add end
314 ; //-----------------------------------------------------------------------------
315 ; //Variable
316 ; //-----------------------------------------------------------------------------
317 ; xdata ULONG G_TimeStamp;
318 ; xdata UCHAR G_KeyScan;
319 ;
320 ; xdata UCHAR G_Timer0Stop;
321 ; //=============================================================================
A51 MACRO ASSEMBLER TIMER 04/19/2006 17:04:01 PAGE 6
322 ; //Program
323 ; //=============================================================================
324 ; //-----------------------------------------------------------------------------
325 ; // TIMER0
326 ; //-----------------------------------------------------------------------------
327 ; //-----------------------------------------------------------------------------
328 ; //TIMER0
329 ; //-----------------------------------------------------------------------------
330
---- 331 RSEG ?PR?TIMER
0000 332 Com00C1:
0000 333 L?0194:
334 USING 2
0000 335 L?0195:
0000 900000 F 336 MOV DPTR,#key
0003 E0 337 MOVX A,@DPTR
0004 FE 338 MOV R6,A
0005 6F 339 XRL A,R7
0006 22 340 RET
0007 341 L?0201:
342 USING 2
0007 900000 F 343 MOV DPTR,#G_KeepPushKeyCount
000A 740A 344 MOV A,#0AH
000C F0 345 MOVX @DPTR,A
000D 900000 F 346 MOV DPTR,#G_KeyState
0010 E4 347 CLR A
0011 F0 348 MOVX @DPTR,A
0012 A3 349 INC DPTR
0013 22 350 RET
0014 351 L?0202:
352 USING 2
0014 353 L?0203:
0014 EF 354 MOV A,R7
0015 13 355 RRC A
0016 13 356 RRC A
0017 13 357 RRC A
0018 541F 358 ANL A,#01FH
001A 22 359 RET
001B 360 L?0204:
361 USING 2
001B 362 L?0205:
001B 900000 F 363 MOV DPTR,#G_LowPowerCount
001E E0 364 MOVX A,@DPTR
001F 9400 365 SUBB A,#00H
0021 22 366 RET
367 ; END OF Com00C1
368
---- 369 CSEG AT 0000BH
000B 020000 F 370 LJMP TIMER0_Routine
371
372 ; void TIMER0_Routine(void) INTERRUPT_1 USING_2
373
---- 374 RSEG ?PR?TIMER0_Routine?TIMER
375 USING 2
0000 376 TIMER0_Routine:
0000 C0E0 377 PUSH ACC
0002 C0F0 378 PUSH B
0004 C083 379 PUSH DPH
0006 C082 380 PUSH DPL
0008 C0D0 381 PUSH PSW
382 USING 2
000A 75D010 383 MOV PSW,#010H
384 ; SOURCE LINE # 89
385 ; {
386 ; EX0 = 0;
387 ; SOURCE LINE # 91
A51 MACRO ASSEMBLER TIMER 04/19/2006 17:04:01 PAGE 7
000D C2A8 388 CLR EX0
389 ; TIMER0_Handler(); //TIMER0 handler
390 ; SOURCE LINE # 92
000F 120000 F 391 LCALL TIMER0_Handler
392 ; EX0 = 1;
393 ; SOURCE LINE # 93
0012 D2A8 394 SETB EX0
395 ; }
396 ; SOURCE LINE # 94
0014 D0D0 397 POP PSW
0016 D082 398 POP DPL
0018 D083 399 POP DPH
001A D0F0 400 POP B
001C D0E0 401 POP ACC
001E 32 402 RETI
403 ; END OF TIMER0_Routine
404
405 ;
406 ; //-----------------------------------------------------------------------------
407 ; //TIMER0_Handler
408 ; //-----------------------------------------------------------------------------
409 ; void TIMER0_Handler(void) USING_2
410
---- 411 RSEG ?PR?TIMER0_Handler?TIMER
0000 412 TIMER0_Handler:
413 USING 2
0000 C0D0 414 PUSH PSW
0002 75D010 415 MOV PSW,#010H
416 ; SOURCE LINE # 99
417 ; {
418 ; #if ( SIMULATE == 0 )
419 ; #pragma asm
420 ; CLR TR0
0005 C28C 421 CLR TR0
422 ; MOV A,#K_Timer0IntervalCompLo ; 2 Instr. Cycles
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -