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

📄 text1.lst

📁 单片机测量相位和频率的程序,使用了RTX51 TINY操作系统
💻 LST
字号:
C51 COMPILER V7.07   TEXT1                                                                 05/26/2007 21:24:36 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\万解程序\keilc\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /******************************************************************************/
   2          /*                                                                            */
   3          /*   Task 0:  Create other Tasks and Count up Every 5 ticks                   */
   4          /*                                                                            */
   5          /******************************************************************************/
   6          
   7          #include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */
   8          
   9          #include <reg52.h>
  10          
  11          typedef unsigned char uchar;
  12           
  13          uchar Led1Data;      
  14          
  15          uchar Led2Data;     
  16          
  17          uchar Led3Data;   
  18          
  19          uchar Led4Data;
  20          
  21          uchar TH2DataTmp;
  22          
  23          uchar TL2DataTmp;
  24          
  25          uchar TH1DataTmp;
  26          
  27          uchar TL1DataTmp;
  28          
  29          
  30          uchar Timeflag1;
  31          uchar Timeflag2;
  32          
  33          
  34          
  35          uchar LedTable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 
  36          
  37          uchar bdata flagp;
  38          sbit  flag0=flagp^0;
  39          sbit  flag1=flagp^1;
  40          
  41          void MCUInit(void);
  42          void LedProgram(void);
  43          void FrequnceOut(void);
  44          
  45          /******************************************************************************/
  46          /*       Task 0 'job0':  RTX-51 tiny starts execution with task 0            */
  47          /******************************************************************************/
  48          void job0 (void) _task_ 0  {                  
  49   1        os_create_task (1);                 /* start task 1                         */
  50   1       // os_create_task (2);                 /* start task 2                         */
  51   1       // os_create_task (3);                 /* start task 3                         */
  52   1        MCUInit();
  53   1      
  54   1        while (1)  {                        /* endless loop                         */
  55   2          LedProgram();                    /* led                                    */
C51 COMPILER V7.07   TEXT1                                                                 05/26/2007 21:24:36 PAGE 2   

  56   2          os_wait2 (K_TMO, 1);            /* wait for timeout: 5 ticks            */
  57   2        }
  58   1      }
  59          
  60          void job1 (void) _task_ 1  {
  61   1        while (1)  {                        /* endless loop                         */
  62   2          os_wait1 (K_SIG);                 /* wait for sigle                            */
  63   2          FrequnceOut();
  64   2              Timeflag1 = 0;
  65   2          Timeflag2 = 0;
  66   2          TH2 = 0;
  67   2          TL2 = 0;
  68   2          IE0 = 0;
  69   2          EX0 = 1;
  70   2        }
  71   1      }
  72          
  73          
  74          void LedProgram(void)
  75          {
  76   1        P2 |= 0x3f;
  77   1        P0 = LedTable[Led1Data];
  78   1        P2 &= 0xfb;
  79   1        os_wait2 (K_TMO, 1);
  80   1        P2 |= 0x3f;
  81   1        P0 = LedTable[Led2Data]&0x7f;
  82   1        P2 &= 0xf7;
  83   1        os_wait2 (K_TMO, 1);
  84   1        P2 |= 0x3f;
  85   1        P0 = LedTable[Led3Data];
  86   1        P2 &= 0xef;
  87   1        os_wait2 (K_TMO, 1);
  88   1        P2 |= 0x3f;
  89   1        P0 = LedTable[Led4Data];
  90   1        P2 &= 0xdf;
  91   1        os_wait2 (K_TMO, 1);
  92   1        P2 |= 0x3f;
  93   1      }
  94          
  95          
  96          void MCUInit(void)
  97          {
  98   1        IE  |= 0xa1;
  99   1        TCON|= 0x05;
 100   1        IP   = 0x25;
 101   1        TMOD|= 0x11;
 102   1       //T2CON= 0x01;
 103   1      }
 104          
 105          void FrequnceOut(void)
 106          {
 107   1        unsigned long  FTemp;
 108   1        unsigned long DataTmp;
 109   1        
 110   1        //FTemp    =((TH1DataTmp*256+TL1DataTmp)/(Timeflag*65536+TH2DataTmp*256+TL2DataTmp))*3600;
 111   1        FTemp    = /*Timeflag2*65536+*/TH1DataTmp*256+TL1DataTmp;
 112   1        FTemp   *= 3600;
 113   1        DataTmp  = Timeflag1*65536+TH2DataTmp*256+TL2DataTmp;
 114   1        DataTmp  = FTemp/DataTmp;
 115   1        Led4Data = (DataTmp%10000)/1000;
 116   1        Led3Data = (DataTmp/100)%10;
 117   1        Led2Data = DataTmp%100/10;
C51 COMPILER V7.07   TEXT1                                                                 05/26/2007 21:24:36 PAGE 3   

 118   1        Led1Data = DataTmp%10;
 119   1        flag0    = 0;
 120   1      }
 121          
 122          
 123          
 124          void Int0Interrupt(void) interrupt 0 
 125          {
 126   1        if(flag0 == 0){
 127   2          TR2 = 1;
 128   2          TR1 = 1;
 129   2              //ET2 = 1;
 130   2          IE1 = 0;
 131   2          EX1 = 1;
 132   2         // EXEN2 = 1;
 133   2         // EXF2= 0;
 134   2              flag0 = 1;
 135   2         }
 136   1         else {
 137   2          TR2 = 0;
 138   2          //ET2 = 0;
 139   2          EX0 = 0;
 140   2              TH2DataTmp = TH2;
 141   2              TL2DataTmp = TL2;
 142   2              flag0 = 0;
 143   2              isr_send_signal(1);
 144   2         }
 145   1      }
 146          
 147          
 148          
 149          void Int1Interrupt(void) interrupt 2 
 150          {
 151   1          TR1 = 0;
 152   1          EX1 = 0;
 153   1              TH1DataTmp = TH1;
 154   1              TL1DataTmp = TL1;
 155   1              TH1        =  0;
 156   1          TL1        =  0;
 157   1      }
 158          
 159          
 160          void Timer2Interrupt(void) interrupt 5 
 161          {
 162   1        if(TF2==1){
 163   2          Timeflag1++;
 164   2          TF2 = 0;
 165   2        }/* 
 166   1        else if(EXF2==1){
 167   1          Timeflag2  = Timeflag1;
 168   1          EXEN2 = 0;
 169   1          EXF2  = 0;
 170   1          TH1DataTmp = RCAP2H;
 171   1              TL1DataTmp = RCAP2L;
 172   1         }*/
 173   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    505    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.07   TEXT1                                                                 05/26/2007 21:24:36 PAGE 4   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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