master-all.lst

来自「全国电子大赛智能小车赛题」· LST 代码 · 共 250 行

LST
250 行
字号
C51 COMPILER V7.06   MASTER_ALL                                                            12/13/2008 12:16:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MASTER_ALL
OBJECT MODULE PLACED IN master-all.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE master-all.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<all.h>
   2          
   3          
   4          uchar timeflag,dplay;
   5          uchar tf,flag,fflag;
   6          uint time,needdisplay,disy;
   7          uchar disx;
   8          uchar i=0;
   9          uchar stopflag=0;
  10          
  11          sbit beer=P2^4;         //蜂鸣器
  12          
  13          unsigned char code Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
  14                                    0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x7f};//数码显示
  15          uint Tab_data[5]={0};//数据池
  16          void displayl(uchar dula,uchar wela )//显示
  17          {
  18   1              uchar i;
  19   1              P2=0xff;
  20   1              i=dula;
  21   1              P0=Tab[i];
  22   1              P2=wela;
  23   1      
  24   1      }
  25          void display(uint num)//显示
  26          {
  27   1              switch(tf)
  28   1              {
  29   2                      case 0:displayl(num/100,0xfe);
  30   2                              break;
  31   2                      case 1:displayl((num%100)/10,0xfd);
  32   2                              break;
  33   2                      case 2:displayl(16,0xfb);
  34   2                              break;
  35   2                      case 3:displayl((num%100%10),0xf7);
  36   2                              break;
  37   2              }
  38   1      }
  39          
  40          void beerring()//蜂鸣器响
  41          {
  42   1      //      if(timeflag%2)beer=~beer;
  43   1              beer=0;
  44   1      }
  45          
  46          
  47          void sendmsg(uchar sbuf)//发指令
  48          {
  49   1              uchar x;
  50   1              TI=0;
  51   1              SBUF=sbuf;
  52   1              for(x=50;x>>0;x--);
  53   1      }
  54          
  55          void delay5s()  //停车5s
C51 COMPILER V7.06   MASTER_ALL                                                            12/13/2008 12:16:46 PAGE 2   

  56          {
  57   1              uint i;
  58   1              i=time+50;
  59   1              while(i!=time)
  60   1              {
  61   2                      display(i-time);
  62   2                      beerring();
  63   2              }
  64   1              flag=0x22;
  65   1              sendmsg(flag);
  66   1      
  67   1      }
  68          
  69          void stoprun()
  70          {
  71   1              Tab_data[3]=disy;
  72   1              Tab_data[4]=time;
  73   1              stopflag=1;
  74   1              ES=0;
  75   1              EX1=0;
  76   1              EX0=1;
  77   1      
  78   1      }
  79          
  80          void stop()                             //停车
  81          {
  82   1              uchar u=0;
  83   1              flag=0x88;
  84   1              sendmsg(flag);
  85   1              while(1)
  86   1              {
  87   2              
  88   2              //      if(!(time%50))
  89   2              //      {
  90   2              //              u++;
  91   2              //              if(u==5)u=0;
  92   2              //      }       
  93   2              //      needdisplay=Tab_data[u];
  94   2                              display(Tab_data[4]);
  95   2              }
  96   1      }
  97          
  98          
  99          void main()
 100          {
 101   1      
 102   1              TMOD=TMOD|0x21;
 103   1              TH0=0xee;
 104   1              TL0=0x00;
 105   1              TH1=0xfd;
 106   1              TL1=0xfd;
 107   1      
 108   1              SCON=0x50;
 109   1              PCON=0;
 110   1              PS=1;
 111   1              PT0=1;
 112   1      
 113   1              EA=1;
 114   1              ET0=1;
 115   1      
 116   1              ES=1;
 117   1              PX0=1;
C51 COMPILER V7.06   MASTER_ALL                                                            12/13/2008 12:16:46 PAGE 3   

 118   1      
 119   1              IT0=1;
 120   1              IT1=1;
 121   1      
 122   1              EX0=1;
 123   1              EX1=1;
 124   1      
 125   1              TR0=1;
 126   1              TR1=1;
 127   1      
 128   1              time=0;
 129   1              timeflag=0;
 130   1              flag=0x11;
 131   1              sendmsg(flag);
 132   1              while(1)
 133   1              {
 134   2                      if(stopflag==1)stop();
 135   2                              else if(i==0)needdisplay=time;
 136   2                                      else if(i<4)needdisplay=i*10;
 137   2                                      else if(i==6)needdisplay=time;
 138   2                              
 139   2                      display(needdisplay);
 140   2              //      display(Tab_data[i-1]);
 141   2                      if(i==4)
 142   2                      {
 143   3                              flag=0x88;
 144   3                              sendmsg(flag);
 145   3                              delay5s();
 146   3                              i=6;
 147   3                      }
 148   2                      else if(time==900)stoprun();
 149   2              //      {
 150   2                      //      flag=0x88;
 151   2                      //      sendmsg(flag);
 152   2              //              while(1)stop();
 153   2                      //}
 154   2              }
 155   1              while(1);
 156   1      }
 157          
 158          void timer0int() interrupt 1 //定时器中断,系统时间
 159          {
 160   1              TR0=0;
 161   1              TH0=0xf6;
 162   1              TL0=0xf0;
 163   1              timeflag++;
 164   1              TR0=1;
 165   1              if(tf==3)tf=0;
 166   1              else tf++;
 167   1              if(timeflag==40)
 168   1              {
 169   2                      timeflag=0;
 170   2                      time++;
 171   2              //      if(time==901)
 172   2              //      {
 173   2                              //flag=0x88;
 174   2              //              time=time-1;
 175   2              //      }
 176   2              }       
 177   1      }
 178          
 179          void uartint() interrupt 4//通信中断,传输数据
C51 COMPILER V7.06   MASTER_ALL                                                            12/13/2008 12:16:46 PAGE 4   

 180          {
 181   1              TI=0;
 182   1              while(RI)
 183   1              {
 184   2                      switch(SBUF)
 185   2                      {
 186   3                              case 0x55:break;
 187   3                              case 0x88:stoprun();
 188   3                                      break;
 189   3                      //      default:sendmsg(flag);
 190   3                      }
 191   2                       RI=0;
 192   2               }
 193   1        
 194   1      }
 195          
 196          void intin0() interrupt 0               //外0中断,距离检测
 197          {
 198   1              disx++;
 199   1              if(disx==7)
 200   1              {
 201   2                      disy++;
 202   2                      disx=0;
 203   2              }
 204   1              //if(disy==8)disz++;
 205   1              
 206   1      }
 207          
 208          void intin1() interrupt 2               //外1中断,金属检测
 209          {
 210   1              uchar ja,jb;
 211   1              ja=disy;
 212   1              while(INT1==0)beerring();
 213   1              jb=disy;
 214   1              Tab_data[i]=(ja+jb)/2;
 215   1              i++;
 216   1              if(i==4)
 217   1              EX1=0;
 218   1              
 219   1      }
 220          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    533    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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