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

📄 rtx_ex1.lst

📁 基于Proteus的51单片机实验平台
💻 LST
字号:
C51 COMPILER V7.50   RTX_EX1                                                               07/25/2006 18:09:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE RTX_EX1
OBJECT MODULE PLACED IN RTX_EX1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RTX_EX1.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************/
   2          /*                                                                            */
   3          /*                   RTX_EX1.C:  The first RTX-51 Program                     */
   4          /*                                                                            */
   5          /******************************************************************************/
   6          
   7          #include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */
   8          #include <reg52.h>
   9          #include <51board.h>
  10          #include <51BLCD.h>
  11          #include <DS18B20.h>
  12          #include <KeyScan.h>
*** WARNING C280 IN LINE 23 OF KEYSCAN.H: 'byte_key': unreferenced local variable
  13          
  14          uchar str_tmp[5]="     ";       //温度字符串
  15          uchar str_key[16]="                ";//键盘输入字符缓冲
  16          uint  tmp;//温度测量
  17          
  18          //将int型数据t转换成10进制string型数据str
  19          void Int_to_Str(uint t, uchar *str)
  20          {
  21   1              uchar a[5];
  22   1              uchar i = 0;
  23   1          bit j = 0;
  24   1      
  25   1              a[0]=(t/10000)%10;         //取得整数值到数组  
  26   1              a[1]=(t/1000)%10;
  27   1              a[2]=(t/100)%10;
  28   1              a[3]=(t/10)%10;
  29   1              a[4]=(t)%10;
  30   1      
  31   1              for(i=0; i<5; i++)         //转成ASCII码
  32   1          {
  33   2           a[i]+='0';
  34   2               if ((a[i] == 0x30)&&(j==0)) 
  35   2           {
  36   3            *str=' ';
  37   3           }
  38   2           else 
  39   2           {
  40   3            *str = a[i];
  41   3            j = 0x1;
  42   3           }
  43   2                str++; 
  44   2              }
  45   1              *str='\0';
  46   1      }
  47          
  48          void Add_Dot(uchar num,uchar len, uchar *str)
  49          {
  50   1              uchar i;
  51   1              for(i=len; i>num; i--)
  52   1          {
  53   2            *(str+i)=*(str+i-1);
  54   2           }
C51 COMPILER V7.50   RTX_EX1                                                               07/25/2006 18:09:33 PAGE 2   

  55   1      
  56   1           *(str+num)='.';
  57   1      }
  58          
  59          
  60          //从任务0开始  
  61          job0 () _task_ 0  
  62          {
  63   1        os_create_task (1);
  64   1        os_create_task (2);
  65   1        os_create_task (3);  
  66   1        LCD_init();//初始化
  67   1        os_delete_task (0);
  68   1      }
  69          
  70          job1 () _task_ 1  
  71          {
  72   1        uint temp;
  73   1        while (1)  
  74   1        {
  75   2          temp = ReadTemperature(); //读温度 
  76   2              if (temp != tmp) 
  77   2              {
  78   3                tmp = temp;
  79   3                os_send_signal (3);
  80   3              }
  81   2              os_wait (K_TMO, 10, 0);
  82   2        }
  83   1      }
  84          
  85          job2 () _task_ 2  
  86          {
  87   1        uchar keynum;
  88   1        uchar j;
  89   1        bit key_flag;
  90   1      
  91   1        while (1)  
  92   1        {
  93   2          keynum = Key_Scan();        
  94   2          if ((keynum!=0xff) & key_flag )
  95   2              {
  96   3                key_flag=0;     
  97   3            for(j=0;j<16;j++) str_key[j]=str_key[j+1];
  98   3                str_key[15]=keynum;
  99   3            LCD_w_data(2,1,str_key);          
 100   3              }
 101   2              else if (keynum == 0xff) key_flag = 1;
 102   2      
 103   2          os_wait (K_TMO, 1, 0);
 104   2        }
 105   1      }
 106          
 107          job3 () _task_ 3
 108          {
 109   1        while (1)  
 110   1        {
 111   2              os_wait (K_SIG,0,0);
 112   2          Int_to_Str(tmp,str_tmp);
 113   2          Add_Dot(3,5,str_tmp);    //增加小数点 
 114   2          LCD_w_data(1,1,"Temperatur:");
 115   2          LCD_w_data(1,12,str_tmp);
 116   2        }
C51 COMPILER V7.50   RTX_EX1                                                               07/25/2006 18:09:33 PAGE 3   

 117   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    914    ----
   CONSTANT SIZE    =     76    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39      21
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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