⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multitask.lst

📁 单片机学习的最好例子, 1.51多任务切换 2.红外解码 3.数码管扫描显示 4.1602LCD的现实,以及文字动画效果 5.系统构架,资源整合,菜单应用,按键板,其它更新中
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     346     
0132 3582            347         ADDC     A,DPL
0134 F582            348         MOV      DPL,A
                     349         
0136 E583            350         MOV      A,DPH
                     351         ADDC     A,#0x00
*** ERROR #3 IN 351 (MULTITASK.INC, LINE 351): ILLEGAL CHARACTER IN NUMERIC CONSTANT
0138 F583            352         MOV      DPH,A ;+offset
                     353                                
                     354         MOV      R0,#DEFINE_TASK_XDATA_BLOCK
*** ERROR #7 IN 354 (MULTITASK.INC, LINE 354): UNDEFINED SYMBOL
                     355         MOV      R1,#VAR_TASK_BUFFER_START_ADDRESS
*** ERROR #7 IN 355 (MULTITASK.INC, LINE 355): UNDEFINED SYMBOL
                     356                          
013E                 357         TASK_NEXT_RESUME_FROM_XDATA__COPY_DATA_LOOP:
013E E0              358         MOVX     A,@DPTR
013F F7              359         MOV      @R1,A
                     360     
0140 A3              361         INC      DPTR
0141 09              362         INC      R1
                     363     
A51 MACRO ASSEMBLER  MULTITASK                                                            04/04/2009 22:01:21 PAGE     8

                     364         ;Next
0142 D8FA            365         DJNZ     R0,TASK_NEXT_RESUME_FROM_XDATA__COPY_DATA_LOOP
                     366     
0144 0200F5          367         LJMP     TASK_NEXT_GET_XDATA__TASK_NEXT_RESUME_FROM_XDATA_RETURN 
                     368     ;RET return by youself
                     369     
                     370     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     371     ;Task finished
                     372     ;Run here when a task function RET
0147                 373     TASK_FINISHED_:
0147 C2AF            374         CLR      EA ;Must Disable Interrupt, Enable Interrupt In task switch function
                     375     
                     376         ;Kill Current Task(PC=00H)
0149 E4              377         CLR      A
014A 0581            378         INC      SP ;so important sp+2
014C 0581            379         INC      SP
                     380     
014E C0E0            381         PUSH     ACC
0150 C0E0            382         PUSH     ACC
                     383     
                     384         ;Switch to Next task
                     385         MOV      DPTR,#TIMER_INTERRUPT_0_FOR_MULTI_TASK
*** ERROR #7 IN 385 (MULTITASK.INC, LINE 385): UNDEFINED SYMBOL
0155 C082            386         PUSH     DPL
0157 C083            387         PUSH     DPH
0159 22              388     RET
                     389     
                     390     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     391     ;Destroy a task 
015A                 392     TASK_DESTROY:
                     393     ;reserve
015A 22              394     RET
                     395     
                     396     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     397     ;Task sleep
                     398     ;1=100us,The most time is 0xffff/10/1000=6.5535s(about)
                     399     ;Input  : R0 - sleep number of low 8bit, R1 - sleep number of high 8bit 
                     400     ;Output : NULL
015B                 401     TASK_SLEEP:
                     402         ;R2~R3 ago tick
                     403         MOV      R2,VAR_TIMER_TICK_NOW_BYTE0
*** ERROR #7 IN 403 (MULTITASK.INC, LINE 403): UNDEFINED SYMBOL
*** ERROR #18 IN 403 (MULTITASK.INC, LINE 403): DATA-ADDRESS EXPECTED
                     404         MOV      R3,VAR_TIMER_TICK_NOW_BYTE1
*** ERROR #7 IN 404 (MULTITASK.INC, LINE 404): UNDEFINED SYMBOL
*** ERROR #18 IN 404 (MULTITASK.INC, LINE 404): DATA-ADDRESS EXPECTED
                     405     
015F                 406         TASK_SLEEP_LOOP:
015F C3              407         CLR      C
                     408         
                     409         ;R4~R5 different tick
                     410         MOV      A,VAR_TIMER_TICK_NOW_BYTE0
*** ERROR #7 IN 410 (MULTITASK.INC, LINE 410): UNDEFINED SYMBOL
*** ERROR #18 IN 410 (MULTITASK.INC, LINE 410): DATA-ADDRESS EXPECTED
0162 9A              411         SUBB     A,R2
0163 FC              412         MOV      R4,A 
                     413     
                     414         MOV      A,VAR_TIMER_TICK_NOW_BYTE1
*** ERROR #7 IN 414 (MULTITASK.INC, LINE 414): UNDEFINED SYMBOL
*** ERROR #18 IN 414 (MULTITASK.INC, LINE 414): DATA-ADDRESS EXPECTED
0166 9B              415         SUBB     A,R3
0167 FD              416         MOV      R5,A 
                     417     
                     418         ;Now >= Ago
0168 C3              419         CLR      C
                     420     
A51 MACRO ASSEMBLER  MULTITASK                                                            04/04/2009 22:01:21 PAGE     9

0169 EC              421         MOV      A,R4
016A 98              422         SUBB     A,R0
016B FC              423         MOV      R4,A
                     424     
016C ED              425         MOV      A,R5
016D 99              426         SUBB     A,R1
016E FD              427         MOV      R5,A
                     428     
016F 40EE            429         JC       TASK_SLEEP_LOOP
0171 020177          430         LJMP     TASK_SLEEP_RETURN
                     431             
0174 02015F          432         LJMP     TASK_SLEEP_LOOP
0177                 433         TASK_SLEEP_RETURN:
0177 22              434     RET
                     435     
                     436     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                     437     ;Create multi task, if no need multi task don't call this function
                     438     ;Note: The main function can be use multi task aslo, but the task count don't out of DEFINE_TASK_MAX 
0178                 439     CREATE_MULTI_TASK:     
                     440         ;System flow
                     441         MOV      DPTR,#MAIN_TASK_PROCESS
*** ERROR #7 IN 441 (MULTITASK.INC, LINE 441): UNDEFINED SYMBOL
017B 7800            442         MOV      R0,#00    
017D 1116            443         CALL     TASK_CREATE_
                     444     
                     445         ;Input device
                     446         MOV      DPTR,#IR_TASK_PROCESS
*** ERROR #7 IN 446 (MULTITASK.INC, LINE 446): UNDEFINED SYMBOL
0182 7801            447         MOV      R0,#01    
0184 1116            448         CALL     TASK_CREATE_
                     449     
                     450         MOV      DPTR,#KEYPAD_TASK_PROCESS
*** ERROR #7 IN 450 (MULTITASK.INC, LINE 450): UNDEFINED SYMBOL
0189 7802            451         MOV      R0,#02    
018B 1116            452         CALL     TASK_CREATE_
                     453     
                     454         ;Storage device
                     455         MOV      DPTR,#E2PROM_TASK_PROCESS
*** ERROR #7 IN 455 (MULTITASK.INC, LINE 455): UNDEFINED SYMBOL
0190 7803            456         MOV      R0,#03    
0192 1116            457         CALL     TASK_CREATE_
                     458     
                     459         ;Communication device
                     460         MOV      DPTR,#COM_TASK_PROCESS
*** ERROR #7 IN 460 (MULTITASK.INC, LINE 460): UNDEFINED SYMBOL
0197 7804            461         MOV      R0,#04    
0199 1116            462         CALL     TASK_CREATE_
                     463     
                     464         ;Clock                
                     465         MOV      DPTR,#CLOCK_TASK_PROCESS
*** ERROR #7 IN 465 (MULTITASK.INC, LINE 465): UNDEFINED SYMBOL
019E 7805            466         MOV      R0,#05    
01A0 1116            467         CALL     TASK_CREATE_
                     468     
                     469         ;Output device
                     470         MOV      DPTR,#LCD_TASK_PROCESS
*** ERROR #7 IN 470 (MULTITASK.INC, LINE 470): UNDEFINED SYMBOL
01A5 7806            471         MOV      R0,#06    
01A7 1116            472         CALL     TASK_CREATE_  
                     473     
                     474         MOV      DPTR,#LED_TASK_PROCESS
*** ERROR #7 IN 474 (MULTITASK.INC, LINE 474): UNDEFINED SYMBOL
01AC 7807            475         MOV      R0,#07    
01AE 1116            476         CALL     TASK_CREATE_  
                     477     
                     478         MOV      DPTR,#TUBE_TASK_PROCESS
A51 MACRO ASSEMBLER  MULTITASK                                                            04/04/2009 22:01:21 PAGE    10

*** ERROR #7 IN 478 (MULTITASK.INC, LINE 478): UNDEFINED SYMBOL
01B3 7808            479         MOV      R0,#08    
01B5 1116            480         CALL     TASK_CREATE_
                     481                        
                     482         MOV      DPTR,#TONE_TASK_PROCESS
*** ERROR #7 IN 482 (MULTITASK.INC, LINE 482): UNDEFINED SYMBOL
01BA 7809            483         MOV      R0,#09    
01BC 1116            484         CALL     TASK_CREATE_    
01BE 22              485     RET
                     486     
*** WARNING IN 486 (MULTITASK.INC, LINE 486): MISSING 'END' STATEMENT
A51 MACRO ASSEMBLER  MULTITASK                                                            04/04/2009 22:01:21 PAGE    11

SYMBOL TABLE LISTING
------ ----- -------


N A M E                                                      T Y P E  V A L U E   ATTRIBUTES

ACC . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   00E0H   A   
B . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   00F0H   A   
CREATE_MULTI_TASK . . . . . . . . . . . . . . . . . . . . .  C ADDR   0178H   A   
DPH . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   0083H   A   
DPL . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   0082H   A   
EA. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  B ADDR   00A8H.7 A   
ET0 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  B ADDR   00A8H.1 A   
PSW . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   00D0H   A   
SP. . . . . . . . . . . . . . . . . . . . . . . . . . . . .  D ADDR   0081H   A   
TASK_CREATE_. . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   0016H   A   
TASK_CREATE_CLEAR__DATA_LOOP. . . . . . . . . . . . . . . .  C ADDR   0048H   A   
TASK_CREATE_START . . . . . . . . . . . . . . . . . . . . .  C ADDR   0020H   A   
TASK_CREATE_START_RETURN. . . . . . . . . . . . . . . . . .  C ADDR   004CH   A   
TASK_CURRENT_SAVE_TO_XDATA_ . . . . . . . . . . . . . . . .  C ADDR   00CCH   A   
TASK_CURRENT_SAVE_TO_XDATA__COPY_DATA_LOOP. . . . . . . . .  C ADDR   00E6H   A   
TASK_DESTROY. . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   015AH   A   
TASK_FINISHED_. . . . . . . . . . . . . . . . . . . . . . .  C ADDR   0147H   A   
TASK_INITIAL. . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   0000H   A   
TASK_INITIAL_DATA_LOOP. . . . . . . . . . . . . . . . . . .  C ADDR   0011H   A   
TASK_NEXT_GET_NEXT_ID_. . . . . . . . . . . . . . . . . . .  C ADDR   00F8H   A   
TASK_NEXT_GET_NEXT_ID__GET_NEXT_ADRRESS . . . . . . . . . .  C ADDR   0100H   A   
TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP . . . . . . . . . .  C ADDR   00FCH   A   
TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP_NEXT. . . . . . . .  C ADDR   0122H   A   
TASK_NEXT_GET_NEXT_ID__PCH. . . . . . . . . . . . . . . . .  C ADDR   0119H   A   
TASK_NEXT_GET_NEXT_ID__RETURN . . . . . . . . . . . . . . .  C ADDR   0124H   A   
TASK_NEXT_GET_XDATA_. . . . . . . . . . . . . . . . . . . .  C ADDR   00EFH   A   
TASK_NEXT_GET_XDATA__TASK_NEXT_GET_NEXT_ID_RETURN . . . . .  C ADDR   00F2H   A   
TASK_NEXT_GET_XDATA__TASK_NEXT_RESUME_FROM_XDATA_RETURN . .  C ADDR   00F5H   A   
TASK_NEXT_RESUME_FROM_XDATA_. . . . . . . . . . . . . . . .  C ADDR   0127H   A   
TASK_NEXT_RESUME_FROM_XDATA__COPY_DATA_LOOP . . . . . . . .  C ADDR   013EH   A   
TASK_RESUME . . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   004EH   A   
TASK_SLEEP. . . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   015BH   A   
TASK_SLEEP_LOOP . . . . . . . . . . . . . . . . . . . . . .  C ADDR   015FH   A   
TASK_SLEEP_RETURN . . . . . . . . . . . . . . . . . . . . .  C ADDR   0177H   A   
TASK_SUSPEND. . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   004DH   A   
TASK_SWITCH . . . . . . . . . . . . . . . . . . . . . . . .  C ADDR   004FH   A   
TASK_SWITCH_BUFFER_ . . . . . . . . . . . . . . . . . . . .  C ADDR   00C3H   A   
TASK_SWITCH_BUFFER__TASK_CURRENT_SAVE_TO_XDATA_RETURN . . .  C ADDR   00C6H   A   
TASK_SWITCH_BUFFER__TASK_NEXT_GET_XDATA_RETURN. . . . . . .  C ADDR   00C9H   A   
TIMER_INTERRUPT_0_FOR_MULTI_TASK_COPY_STACK_LOOP_0. . . . .  C ADDR   0080H   A   
TIMER_INTERRUPT_0_FOR_MULTI_TASK_COPY_STACK_LOOP_1. . . . .  C ADDR   0090H   A   
TIMER_INTERRUPT_0_FOR_MULTI_TASK__TASK_SWITCH_BUFFER_RETURN  C ADDR   0089H   A   
TR0 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  B ADDR   0088H.4 A   


REGISTER BANK(S) USED: 0 


ASSEMBLY COMPLETE.  1 WARNING(S), 110 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -