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

📄 text1.lst

📁 本程序针对P89V51RD2
💻 LST
字号:
C51 COMPILER V8.05a   TEXT1                                                                05/10/2008 22:44:00 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #define uchar unsigned char
   3          #define uint  unsigned int
   4          
   5          sfr   ldata=0x90;                       //P1 = LCD input
   6          sbit  rs=P2^6;
   7          sbit  rw=P2^5;
   8          sbit  en=P2^4;
   9          sbit  busy=P1^7;
  10          void  lcdready();
  11          void  lcddata(uchar  value);
  12          void  lcdcmd(uchar  value);
  13          void  Delay(uint  value);
  14          uchar code keypad[10]={'0','1','2','3','4','5','6','7','8','9'};
  15          uchar Speed=25,MinSpd=25,MaxSpd=100,i=0;
  16          uchar g=0,s=0,b=0,K;
  17          uint  code  LData[4]={0,236,86,73};
  18          uint  code  HData[4]={76,82,89,95};
  19          uchar code Forward[4]={0xef,0xdf,0xbf,0x7f};
  20          //uchar code Back[4]={0xef,0x7f,0xbf,0xdf};
  21          
  22          //sbit   K1  = P0^0;          //加速
  23          //sbit   K2  = P0^1;          //减速
  24          //sbit   K3  = P0^2;          //停止
  25          //sbit   K4  = P0^3;                    //启动
  26          sbit   K1  = P2^0;        
  27          sbit   K2  = P2^1;         
  28          sbit   K3  = P2^2;         
  29          sbit   K4  = P2^3;
  30          
  31          void  Key( void);
  32          void  lcddata(unsigned char value);
  33          void  lcdcmd(unsigned char value);
  34          void  lcdready();
  35          void SpdLcd(uchar  value);
  36          void CounterLcd(void);
  37          void Delay(unsigned int value);
  38          
  39          void  time0(void)   interrupt 1
  40          {
  41   1              //if(P0==0xef)
  42   1                      //return;
  43   1              if(P0==0xee)
  44   1              {       
  45   2                      K=1;
  46   2                      TR1=0;
  47   2              }
  48   1              else if(P0==0xed)
  49   1              {       
  50   2                      K=2;
  51   2                      TR1=0;
  52   2              }
  53   1              else if(P0==0xeb)
  54   1              {       
  55   2                      K=3;
C51 COMPILER V8.05a   TEXT1                                                                05/10/2008 22:44:00 PAGE 2   

  56   2                      TR1=0;
  57   2              }
  58   1              else if(P0==0xe7)
  59   1              {       
  60   2                      K=4;
  61   2                      TR1=0;
  62   2              }
  63   1      
  64   1      }
  65          void  time1(void)   interrupt 3
  66          {
  67   1              K1=1;
  68   1              K2=1;
  69   1              K2=1;
  70   1              K2=1;
  71   1              P2=(P2&Forward[i++]);
  72   1              if(i==4)
  73   1                      i=0;
  74   1              TH1=HData[Speed-25];
  75   1              TL1=LData[Speed-25];
  76   1              TR1=1;
  77   1              CounterLcd();
  78   1      
  79   1       /*     P3=Forward[i++];
  80   1              if(i==4)
  81   1                      i=0;
  82   1              TH1=HData[Speed-25];
  83   1              TL1=LData[Speed-25];
  84   1              TR1=1;
  85   1              CounterLcd();           */
  86   1      }
  87          
  88          void main()
  89          {
  90   1              //P3=0xff;
  91   1              TMOD=0x11;
  92   1              IE=0x8A;
  93   1              //TR0=1;
  94   1              
  95   1              //IE=0x8A;
  96   1              while(1)
  97   1              {
  98   2                      ///P0=oxef;
  99   2                      Key();                          //read keyboard
 100   2                      if(K==1)
 101   2                      {
 102   3                              //TR0=0;
 103   3                              Speed++;
 104   3                              if(Speed>MaxSpd)
 105   3                              {
 106   4                                      Speed=100;
 107   4                              }
 108   3                      }
 109   2                      else if(K==2)
 110   2                      {
 111   3                              //TR0=0;
 112   3                              Speed--;
 113   3                              if(Speed<MinSpd)
 114   3                              {
 115   4                                      Speed=25;
 116   4                              }
 117   3                      }
C51 COMPILER V8.05a   TEXT1                                                                05/10/2008 22:44:00 PAGE 3   

 118   2                      else if(K==3)
 119   2                      {
 120   3                              //TR0=0;
 121   3                              EA=0;
 122   3                              Speed=25;
 123   3                              //break;
 124   3                      }
 125   2                      else if(K==4)
 126   2                      {
 127   3                              Speed=MinSpd;
 128   3                      }
 129   2                      g=0;
 130   2                      s=0;
 131   2                      b=0;
 132   2                      SpdLcd(Speed);
 133   2                      TH1=HData[Speed-25];
 134   2                      TL1=LData[Speed-25];
 135   2                      TH0=-255;
 136   2                      //TR0=1;
 137   2                      TR1=1;
 138   2                      //IE=0x8A;
 139   2              }
 140   1      }
 141          
 142          void  Key( void)
 143          {
 144   1              //uchar temp;
 145   1              P0=0xEF;
 146   1              do
 147   1              {
 148   2                      if(P0!=0xEF)
 149   2                      {
 150   3                              TH0=255;
 151   3                              TL0=0;
 152   3                              TR0=1;
 153   3                      }
 154   2              }while(P0==0xef);
 155   1                      
 156   1                      
 157   1              
 158   1              /*do
 159   1              {
 160   1                      do
 161   1                      {
 162   1                              Delay(2);
 163   1                      temp=P0;
 164   1                      }while(temp ==0xEF);
 165   1      
 166   1                      Delay(2);
 167   1                      temp=P0;
 168   1              }while(temp==0xEF);
 169   1       
 170   1              TR0=0;
 171   1              if(P0==0xEE)
 172   1                      K1=1;
 173   1              else if(P0==0xDE)
 174   1                      K2=1;
 175   1              else if(P0==0xBE)
 176   1                      K3=1;
 177   1              else
 178   1                      K4=1;   */ 
 179   1      }
C51 COMPILER V8.05a   TEXT1                                                                05/10/2008 22:44:00 PAGE 4   

 180          
 181          void  lcddata(unsigned char value)
 182          { 
 183   1              lcdready();
 184   1              ldata=value;
 185   1              rs=1;
 186   1              rw=0;
 187   1              en=1;
 188   1              Delay(1);
 189   1              en=0;
 190   1              return;
 191   1      }
 192          
 193           void  lcdcmd(unsigned char value)
 194           {
 195   1               lcdready();
 196   1               ldata=value;
 197   1               rs=0;
 198   1               rw=0;
 199   1               en=1;
 200   1               Delay(1);
 201   1               en=0;
 202   1               return;
 203   1       }
 204          
 205          void  lcdready()
 206            {
 207   1              busy=1;
 208   1          rs=0;
 209   1          rw=1;
 210   1          while(busy==1)
 211   1          {
 212   2                      en=0;
 213   2                      Delay(1);
 214   2                      en=1;
 215   2              }
 216   1              return;
 217   1      }
 218          
 219          void SpdLcd(uchar  value)    //LCD 速度显示 
 220          {
 221   1              uchar ge,shi,bai,temp;
 222   1              ge=value%10;
 223   1              temp=value/10;
 224   1              shi=temp%10;
 225   1              bai=temp/10;
 226   1              
 227   1              lcdcmd(0x01);
 228   1              lcdcmd(0x80);
 229   1              lcddata(keypad[bai]);
 230   1              //lcdcmd(0x14);
 231   1              lcddata(keypad[shi]);
 232   1              //lcdcmd(0x14);
 233   1              lcddata(keypad[ge]);
 234   1                      
 235   1      }
 236          
 237          void CounterLcd(void)    //LCD记数显示 
 238          {
 239   1              g++;
 240   1              if(g==10)
 241   1              {
C51 COMPILER V8.05a   TEXT1                                                                05/10/2008 22:44:00 PAGE 5   

 242   2                      s++;
 243   2                      g=0;
 244   2                      if(s==10)
 245   2                      {
 246   3                              b++;
 247   3                              s=0;
 248   3                      }
 249   2              }
 250   1              //lcdcmd(0x01);
 251   1              lcdcmd(0xC0);
 252   1              lcddata(keypad[b]);
 253   1              lcddata(keypad[s]);
 254   1              lcddata(keypad[g]);
 255   1                      
 256   1      }
 257          
 258          void Delay(unsigned int value)
 259          {
 260   1              uint  x,y;
 261   1              for(x=0; x < value; x++)
 262   1                      for(y=0; y<1275;y++);
 263   1      }
 264          
 265          
 266          
 267          
 268          
 269          
 270          
 271          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    524    ----
   CONSTANT SIZE    =     30    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       5
   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 + -