📄 timer.lst
字号:
A51 MACRO ASSEMBLER TIMER 04/04/2009 22:01:17 PAGE 1
MACRO ASSEMBLER A51 V1.12
NO OBJECT MODULE REQUESTED
ASSEMBLER INVOKED BY: C:\PROGRA~1\MANLEY\MEDWINV3\A51.EXE TIMER.INC DB
LOC OBJ LINE SOURCE
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;System Timer part
3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 ;Timer initialization
0000 5 TIMER_INITIAL:
6 MOV VAR_TIMER_TICK_NOW_BYTE0,#0x00
*** ERROR #7 IN 6 (TIMER.INC, LINE 6): UNDEFINED SYMBOL
*** ERROR #3 IN 6 (TIMER.INC, LINE 6): ILLEGAL CHARACTER IN NUMERIC CONSTANT
7 MOV VAR_TIMER_TICK_NOW_BYTE1,#0x00
*** ERROR #7 IN 7 (TIMER.INC, LINE 7): UNDEFINED SYMBOL
*** ERROR #3 IN 7 (TIMER.INC, LINE 7): ILLEGAL CHARACTER IN NUMERIC CONSTANT
0000 22 8 RET
9
10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11 ;Note: Timer startup after all initiallization
0001 12 TIMER_STARTUP:
13 ;Timer mode
14 MOV TMOD,#DEFINE_TIMER_MODE
*** ERROR #7 IN 14 (TIMER.INC, LINE 14): UNDEFINED SYMBOL
15
16 ;Timer counter begin value
17 MOV TH0,#DEFINE_TIMER0_COUNTER_BEGIN_VALUE
*** ERROR #7 IN 17 (TIMER.INC, LINE 17): UNDEFINED SYMBOL
0007 858C8A 18 MOV TL0,TH0
19
20 ;Enable
000A D28C 21 SETB TR0
000C D2A9 22 SETB ET0
000E D2AF 23 SETB EA
0010 22 24 RET
25
26 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27 ;The Now tick counter update
28 ;Note: No need push stack the Timer0 interrupt saved be
0011 29 TIMER_TICK_NOW_COUNTER_:
0011 C3 30 CLR C
31
32 MOV A,VAR_TIMER_TICK_NOW_BYTE0
*** ERROR #7 IN 32 (TIMER.INC, LINE 32): UNDEFINED SYMBOL
*** ERROR #18 IN 32 (TIMER.INC, LINE 32): DATA-ADDRESS EXPECTED
33 ADDC A,#0x01
*** ERROR #3 IN 33 (TIMER.INC, LINE 33): ILLEGAL CHARACTER IN NUMERIC CONSTANT
34 MOV VAR_TIMER_TICK_NOW_BYTE0,A
*** ERROR #7 IN 34 (TIMER.INC, LINE 34): UNDEFINED SYMBOL
35
36 MOV A,VAR_TIMER_TICK_NOW_BYTE1
*** ERROR #7 IN 36 (TIMER.INC, LINE 36): UNDEFINED SYMBOL
*** ERROR #18 IN 36 (TIMER.INC, LINE 36): DATA-ADDRESS EXPECTED
37 ADDC A,#0x00
*** ERROR #3 IN 37 (TIMER.INC, LINE 37): ILLEGAL CHARACTER IN NUMERIC CONSTANT
38 MOV VAR_TIMER_TICK_NOW_BYTE1,A
*** ERROR #7 IN 38 (TIMER.INC, LINE 38): UNDEFINED SYMBOL
39
001A 020022 40 LJMP TIMER_INTERRUPT_0_FOR_MULTI_TASK__TIMER_TICK_NOW_COUNTER_RETURN
41 ;RET return by youself
42
43 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
44 ;Timer0 interrupt trigger
A51 MACRO ASSEMBLER TIMER 04/04/2009 22:01:17 PAGE 2
45 ;The most importance function for multi task
46 ;Close All interrupt when multi task switching
47 ;Switch multi task, Now Tick++
001D 48 TIMER_INTERRUPT_0_FOR_MULTI_TASK:
49 ;Disable all interrupt
001D C2AF 50 CLR EA
51
52 ;Note:
53 ;Here use LJMP instead CALL instruction call sub function
54 ;because save the stack buffer space
55 ;don't forget return the sub function by youself
56
001F 020011 57 LJMP TIMER_TICK_NOW_COUNTER_
0022 58 TIMER_INTERRUPT_0_FOR_MULTI_TASK__TIMER_TICK_NOW_COUNTER_RETURN:
59
60 LJMP TASK_SWITCH
*** ERROR #7 IN 60 (TIMER.INC, LINE 60): UNDEFINED SYMBOL
*** ERROR #16 IN 60 (TIMER.INC, LINE 60): CODE-ADDRESS EXPECTED
0025 61 TIMER_INTERRUPT_0_FOR_MULTI_TASK__TASK_SWITCH_RETURN:
62
63 ;Enable all interrupt
0025 D2AF 64 SETB EA
0027 32 65 RETI
*** WARNING IN 65 (TIMER.INC, LINE 65): MISSING 'END' STATEMENT
A51 MACRO ASSEMBLER TIMER 04/04/2009 22:01:17 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
EA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B ADDR 00A8H.7 A
ET0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B ADDR 00A8H.1 A
TH0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D ADDR 008CH A
TIMER_INITIAL . . . . . . . . . . . . . . . . . . . . . . . . . C ADDR 0000H A
TIMER_INTERRUPT_0_FOR_MULTI_TASK. . . . . . . . . . . . . . . . C ADDR 001DH A
TIMER_INTERRUPT_0_FOR_MULTI_TASK__TASK_SWITCH_RETURN. . . . . . C ADDR 0025H A
TIMER_INTERRUPT_0_FOR_MULTI_TASK__TIMER_TICK_NOW_COUNTER_RETURN C ADDR 0022H A
TIMER_STARTUP . . . . . . . . . . . . . . . . . . . . . . . . . C ADDR 0001H A
TIMER_TICK_NOW_COUNTER_ . . . . . . . . . . . . . . . . . . . . C ADDR 0011H A
TL0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D ADDR 008AH A
TMOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D ADDR 0089H A
TR0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 1 WARNING(S), 16 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -