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

📄 ext1.lst

📁 在51上运行的小的OS系统
💻 LST
字号:
C51 COMPILER V8.08   EXT1                                                                  10/17/2008 09:11:31 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE EXT1
OBJECT MODULE PLACED IN EXT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE EXT1.C DEBUG OBJECTEXTEND

line level    source

   1          #include "stdio.h"
   2          #include "config.h"
   3          
   4          sbit EN=P3^2;
   5          sbit RW=P3^3;
   6          sbit RS=P3^4;
   7          sbit VO=P3^5;
   8          
   9          void InitLcd(void);
  10          void WriteData(unsigned char ch);
  11          void WriteCmd(unsigned char ch);
  12          void DelayS(void);
  13          void wait_5ms( void );
  14          void Disp_Char(unsigned char pos,unsigned char ch);
  15          void Disp_Str(unsigned char line,char* str);
  16          
  17          unsigned char sec,min,hour,i;
  18          char buffer[21];
  19          
  20          void main(void)
  21          {
  22   1              TMOD = (TMOD & 0XF0) | 0X01;
  23   1              TL0 = 0x0;
  24   1              TH0 = 0x0;
  25   1              TR0 = 1;
  26   1              ET0 = 1;
  27   1         
  28   1          SCON  = 0x52;                      /* mode 1: 8-bit UART, enable receiver   */
  29   1          TMOD |= 0x20;                      /* timer 1 mode 2: 8-Bit reload          */
  30   1          TH1   = 0xfd;                      /* reload value 9600 baud                */
  31   1          TR1   = 1;                         /* timer 1 run                           */
  32   1          wait_5ms();
  33   1          InitLcd();
  34   1          wait_5ms();
  35   1          VO = 0;  
  36   1          
  37   1              Disp_Str(0," Small RTOS51 V1.20 ");
  38   1              Disp_Str(1," Current Time is:   ");
  39   1              wait_5ms();
  40   1          Disp_Str(2,"                    ");
  41   1              Disp_Str(3," Created by ArcDevil");
  42   1      
  43   1                     
  44   1              OSStart();
  45   1      }
  46          
  47          void TaskA(void)
  48          {
  49   1          while (1)
  50   1          {
  51   2              if (++sec == 60)  
  52   2                      {        
  53   3                    sec = 0;
  54   3                    if (++min == 60) 
  55   3                        {      
C51 COMPILER V8.08   EXT1                                                                  10/17/2008 09:11:31 PAGE 2   

  56   4                      min = 0;
  57   4                      if (++hour == 24)  
  58   4                              {   
  59   5                        hour = 0;
  60   5                      }
  61   4                    }
  62   3                  }
  63   2                      sprintf(buffer, "      %02bd:%02bd:%02bd      ",         
  64   2                       hour,                  
  65   2                       min,
  66   2                       sec);
  67   2              Disp_Str(2,buffer);
  68   2              OSWait(K_TMO,10);
  69   2          } 
  70   1      }
  71          
  72          void TaskB(void)
  73          {
  74   1          while (1)
  75   1          {
  76   2                  Disp_Str(3,"Written  @20041022||");
  77   2              OSWait(K_TMO,50);
  78   2          }
  79   1      }
  80          
  81          void TaskC(void)
  82          {
  83   1          while (1)
  84   1          {
  85   2                  Disp_Str(3,"TaskC is Running!   ");
  86   2              OSWait(K_TMO,100);
  87   2          }
  88   1      }
  89          
  90          void InitLcd(void)
  91          {     
  92   1           wait_5ms();
  93   1               wait_5ms();
  94   1               wait_5ms();
  95   1               WriteCmd(0x38);
  96   1               wait_5ms();
  97   1               WriteCmd(0x38);
  98   1               wait_5ms();
  99   1               WriteCmd(0x38);
 100   1               wait_5ms();
 101   1           WriteCmd(0x38);
 102   1               WriteCmd(0x06);
 103   1               WriteCmd(0x0c);
 104   1               WriteCmd(0x01);
 105   1               WriteCmd(0x80);
 106   1      }
 107          
 108          void WriteData(unsigned char ch)
 109          {
 110   1           DelayS();
 111   1           EN = 0;
 112   1           RS = 1;
 113   1           RW = 0;
 114   1           _nop_();
 115   1           EN = 1;
 116   1           P1 = ch;
 117   1           EN = 0;
C51 COMPILER V8.08   EXT1                                                                  10/17/2008 09:11:31 PAGE 3   

 118   1           RS = 0;
 119   1      }
 120          
 121          void WriteCmd(unsigned char ch)
 122          {
 123   1           DelayS();
 124   1           EN = 0;
 125   1           RS = 0;
 126   1           RW = 0;
 127   1           _nop_();
 128   1           EN = 1;
 129   1           P1 = ch;
 130   1           EN = 0;
 131   1      }
 132          
 133          void DelayS(void)
 134          {
 135   1           unsigned char i;
 136   1               i = 0x1f;
 137   1               while(i--);
 138   1      }
 139          
 140          void wait_5ms( void ) 
 141          {
 142   1              register int i ;
 143   1              for ( i=0 ; i<1000 ; i++ )
 144   1                      ;
 145   1      }
 146          
 147          void Disp_Char(unsigned char pos,unsigned char ch)
 148          {
 149   1              unsigned char p,x,y;
 150   1          y = pos/20;
 151   1              x = pos%20;
 152   1          switch(y)
 153   1              {
 154   2                  case 0: p = x + 0x80; break;
 155   2              case 1: p = x + 0xc0; break;
 156   2                      case 2: p = x + 0x94; break;
 157   2                      case 3: p = x + 0xd4; break;
 158   2                      default:break;
 159   2              }
 160   1          WriteCmd(p);
 161   1          WriteData(ch);
 162   1      }
 163          
 164          void Disp_Str(unsigned char line,char* str)
 165          {
 166   1           unsigned char l,i;
 167   1               l = line*20;
 168   1               for(i = 0 ; i < 20 ; i++)
 169   1                  Disp_Char(l++,*(str+i));
 170   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    440    ----
   CONSTANT SIZE    =    156    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     25       9
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.08   EXT1                                                                  10/17/2008 09:11:31 PAGE 4   

   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 + -