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

📄 main.lst

📁 本RTOS参考 usOS-II, ARM-RTX
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   MAIN                                                                  06/09/2008 17:24:41 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND CODE SYMBOLS

stmt level    source

   1          #include "include.h"
   2          /**************************************************************************************
   3          * 函数原型:
   4          * 函数功能:
   5          * 输入参数:
   6          * 输出参数:
   7          * 函数说明:
   8          **************************************************************************************/
   9          
  10          OS_TID  TaskA_ID;
  11          OS_TID  TaskB_ID;
  12          OS_TID  TaskC_ID;
  13          OS_TID  TaskD_ID;
  14          
  15          /**************************************************************************************
  16          函数名称:InitT0
  17          函数功能:定时器0初始化
  18          输入参数:
  19          输出参数:
  20          函数说明:T0工作于模式1,16位计数器,1ms中断一次
  21          **************************************************************************************/
  22          void InitT0(void)
  23          {  
  24   1         TMOD &= 0xF0; // Clear all T0 bits (T1 left unchanged)
  25   1         TMOD |= 0x01;              //T0工作于模式1
  26   1         TH0=T0H_COUNTER;         //
  27   1         TL0=T0L_COUNTER;
  28   1         
  29   1         Timer0Run();             //TR0=1;T0开始计数
  30   1         //PT0=1;                 //T0中断优先级高
  31   1         IrqAll_Enable();         //打开总中断
  32   1         IrqT0_Enable();          //打开T0中断允许
  33   1      }
  34          
  35          /**************************************************************************************
  36          函数名称:InT0
  37          函数功能:定时器0中断服务程序
  38          输入参数:
  39          输出参数:
  40          函数说明:1ms中断一次
  41          **************************************************************************************/
  42          //void InT0(void) interrupt 1 //using 1
  43          //{ IrqT0_Unable();
  44            
  45          //  TH0=T0H_COUNTER;
  46          //  TL0=T0L_COUNTER;
  47              
  48          //  IrqT0_Enable();
  49          //}
  50          
  51          
  52          
  53          void  MainInit(void)
  54          {   
  55   1         
C51 COMPILER V7.07   MAIN                                                                  06/09/2008 17:24:41 PAGE 2   

  56   1         InitT0();
  57   1      }
  58          
  59          
  60          void TaskA(void)
  61          {char a;
  62   1      
  63   1          while (1)
  64   1          {
  65   2              a++;
  66   2              //OSWait(K_TMO,5);
  67   2              P1 = P1^B0000_0001;
  68   2              os_dly_wait(ms(1000));
  69   2          } 
  70   1      }
  71          
  72          void TaskB(void)
  73          {char b;
  74   1          while (1)
  75   1          {
  76   2              b++;
  77   2              //OSWait(K_TMO,10);
  78   2              os_evt_wait_or ( 0x01,  ms(60000) );
  79   2              P1 = P1^B0000_0010;
  80   2              //os_dly_wait(ms(4000));
  81   2          }
  82   1      }
  83          
  84          
  85          void TaskC(void)
  86          {char c;
  87   1       //char buf[3];
  88   1          while (1)
  89   1          {
  90   2              
  91   2              c++;
  92   2              //OSWait(K_TMO,15);
  93   2              P1 = P1^B0000_0100;
  94   2              os_dly_wait(ms(8000));
  95   2          }
  96   1      }
  97          
  98          void TaskD(void)
  99          {char d=0;
 100   1       //char buf[3];
 101   1          while (1)
 102   1          {
 103   2              
 104   2              d++;
 105   2              
 106   2      //        if(d==5)
 107   2      //        {
 108   2      //           OSTaskResume(1);
 109   2      //           OSTaskSuspend(3);
 110   2      //        }
 111   2              
 112   2              //OSWait(K_TMO,15);
 113   2              
 114   2              os_evt_set(0x01, TaskB_ID);
 115   2              P1 = P1^B0000_1000;
 116   2              os_dly_wait(ms(16000));
 117   2          }
C51 COMPILER V7.07   MAIN                                                                  06/09/2008 17:24:41 PAGE 3   

 118   1      }
 119          
 120          /*
 121          //main~TaskA, main~TaskB, main~TaskC, main~TaskD
 122          //init~TaskA, init~TaskB, init~TaskC, init~TaskD
 123          
 124          */
 125          uint8 xdata taskA_stack[50];
 126          uint8 xdata taskB_stack[50];
 127          uint8 xdata taskC_stack[50];
 128          uint8 xdata taskD_stack[50];
 129          
 130          
 131          void init (void)
 132          {
 133   1          
 134   1          //在 os_sys_init 中调用 OSInit(SP);
 135   1          
 136   1          //OSTaskCreate(TaskA, 0);
 137   1          //OSTaskCreate(TaskB, 1);
 138   1          //OSTaskCreate(TaskC, 2);
 139   1          TaskA_ID=os_tsk_create_user( TaskA, 0, taskA_stack, sizeof(taskA_stack) );
 140   1          TaskB_ID=os_tsk_create_user( TaskB, 1, taskB_stack, sizeof(taskB_stack) );
 141   1          TaskC_ID=os_tsk_create_user( TaskC, 2, taskC_stack, sizeof(taskC_stack) );
 142   1          TaskD_ID=os_tsk_create_user( TaskD, 3, taskD_stack, sizeof(taskD_stack) );
 143   1          
 144   1          //os_dly_wait(ms(100));
 145   1          
 146   1          //os_tsk_delete_self ();
 147   1          MainInit();
 148   1          
 149   1          //OSTaskSuspend(TaskB_ID);
 150   1          DelayNop(1);
 151   1          
 152   1      }
 153          //44.2368MHz
 154          void main(void)
 155          {//char ie_par;
 156   1      
 157   1          DelayNop(1);
 158   1      
 159   1          os_sys_init(init);
 160   1          
 161   1          //MainInit();
 162   1          
 163   1          
 164   1          while(1)
 165   1          {
 166   2            
 167   2            DelayNop(1);
 168   2            PCON = PCON | 0x01;   // CPU进入休眠状态
 169   2            
 170   2            //ie_par=IE;
 171   2            DelayNop(1);
 172   2          }
 173   1            
 174   1      }
 175          
C51 COMPILER V7.07   MAIN                                                                  06/09/2008 17:24:41 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION InitT0 (BEGIN)
                                           ; SOURCE LINE # 22
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 24
0000 5389F0            ANL     TMOD,#0F0H
                                           ; SOURCE LINE # 25
0003 438901            ORL     TMOD,#01H
                                           ; SOURCE LINE # 26
0006 758C70            MOV     TH0,#070H
                                           ; SOURCE LINE # 27
0009 E4                CLR     A
000A F58A              MOV     TL0,A
                                           ; SOURCE LINE # 29
000C D28C              SETB    TR0
                                           ; SOURCE LINE # 31
000E D2AF              SETB    EA
                                           ; SOURCE LINE # 32
0010 D2A9              SETB    ET0
                                           ; SOURCE LINE # 33
0012 22                RET     
             ; FUNCTION InitT0 (END)

             ; FUNCTION MainInit (BEGIN)
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
                                           ; SOURCE LINE # 56
0000 020000      R     LJMP    InitT0
             ; FUNCTION MainInit (END)

             ; FUNCTION TaskA (BEGIN)
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
0000         ?C0003:
                                           ; SOURCE LINE # 63
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 65
0000 0500        R     INC     a
                                           ; SOURCE LINE # 67
0002 639001            XRL     P1,#01H
                                           ; SOURCE LINE # 68
0005 7F64              MOV     R7,#064H
0007 7E00              MOV     R6,#00H
0009 120000      E     LCALL   _os_dly_wait
                                           ; SOURCE LINE # 69
000C 80F2              SJMP    ?C0003
             ; FUNCTION TaskA (END)

             ; FUNCTION TaskB (BEGIN)
                                           ; SOURCE LINE # 72

⌨️ 快捷键说明

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