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

📄 main.lst

📁 本程序是基于单片机的智能小车设计
💻 LST
字号:
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 17:22:36 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: G:\keil软件\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include<reg51.h>
   2          #include"STC12C5410AD.h"
   3          #define   unchar unsigned char
   4          #define   uint unsigned int
   5          
   6          unchar code  seg1[16] ={0x30,0xf9,0x64,0xe0,0xa9,0xa2,0x22,0xf8,0x20,0xa0,0x28,0x23,0x36,0x61,0x26,0x2e};/
             -/大模板上
   7                            //0,1,2,3,4,5,6,7,8,9,A,b,C,d,e,F 
   8          unchar code   seg2[11] = {0x21,0xf3,0x19,0x51,0xc3,0x45,0x05,0xf1,0x01,0x41,0x84} ;//小模板上 (不带小数点)
   9          unchar code   seg3[11] = {0x20,0xf2,0x18,0x50,0xc3,0x45,0x04,0xf0,0x00,0x40,0x83} ;     //小模板上 (带小数点)
  10          unchar code  act1[4] = { 0xf7,0xfb,0xfd,0xfe}; //单位选位
  11          unchar code  act2[9]={0xfe,0xfc,0xf8,0xf0,0xf1,0xf3,0xf7,0xff}; //用作渐出渐入显示选位
  12          //uint  sum=125;
  13          uint  key ;   //按键按下标志(1到6)
  14          uint xdata record1[128];        //用于角度传感器的转换
  15          uint xdata record2[128];  //用于按键的转换识别
  16          uint xdata      record_v[128] ;  //用于电压显示
  17          uint flag ;
  18          
  19          sbit   led = P2^5;
  20          sbit   m10 = P3^5;
  21          sbit   m11 = P3^7;
  22          sbit   m20 = P3^2;
  23          sbit   m21 = P3^3;
  24          sbit   right = P1^4;
  25          sbit   left = P1^5;
  26          sbit   s0 = P1^0;
  27          sbit   s1 = P1^1; 
  28          sbit   s2 = P1^2 ;
  29          sbit   s3 = P1^3;
  30          
  31           /*延时程序*/
  32          void delay(int  k)
  33          {
  34   1         int i,j;
  35   1         for(i=0;i<k;i++)
  36   1           for(j=0;j<121;j++)
  37   1                  { ; }
  38   1      }
  39          
  40           
  41           /*启动AD转换并返回转换值*/
  42          uint GET_AD_Result()
  43          {
  44   1       unchar temp;
  45   1       uint data_temp;
  46   1       data_temp=0;
  47   1       ADC_DATA=0;
  48   1       ADC_LOW2=0;
  49   1       ADC_CONTR|=0x08;
  50   1      re: temp=0x10;
  51   1       temp&=ADC_CONTR;  //判断转换是否完成
  52   1       if(temp==0)
  53   1        goto re;
  54   1       ADC_CONTR&=0xe7;  //软件清零
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 17:22:36 PAGE 2   

  55   1       data_temp=ADC_DATA;
  56   1       data_temp<<=2;
  57   1       data_temp+=ADC_LOW2;
  58   1       return data_temp;
  59   1      }
  60          /*显示角度值*/
  61          show_r(int h)
  62           {
  63   1          int a , b ,i;
  64   1                if(h > 0)
  65   1             {
  66   2                  if(h < 10)
  67   2                       { 
  68   3                          for(i = 0; i < 100; i++) 
  69   3                               {
  70   4                                  { P1 = act1[2];P2 = seg2[h];delay(5); }
  71   4                                  { P1 = act1[3]; P2 = 0xc9; delay(5); }//显示“ °” (读数符号)
  72   4                               }
  73   3                       }  
  74   2                      else  
  75   2                        { 
  76   3                           a = h%10;
  77   3                   b =h/10;
  78   3                   for(i = 0; i < 150; i++)
  79   3                                {
  80   4                                 { P1 = act1[2]; P2 = seg2[a];delay(5);  }
  81   4                     { P1 = act1[1]; P2 = seg2[b]; delay(5); }
  82   4                                 { P1 = act1[3]; P2 = 0xc9; delay(5); }
  83   4                                }
  84   3               }
  85   2                 }
  86   1              
  87   1              else
  88   1              {         
  89   2                       h = ~h;
  90   2                        
  91   2                  if(h < 10)
  92   2                      { 
  93   3                         for(i = 0; i < 150; i++)
  94   3                          {
  95   4                                { P1 = act1[2];P2 = seg2[h];delay(5); }
  96   4                            { P1 = act1[1]; P2 = 0xdf; delay(5); } 
  97   4                                { P1 = act1[3]; P2 = 0xc9; delay(5); }
  98   4                               }
  99   3                      }  
 100   2                  
 101   2                      else
 102   2                       {
 103   3                          a = h%10;
 104   3                  b =h/10; 
 105   3                  for(i = 0; i < 150; i++)
 106   3                           { 
 107   4                                { P1 = act1[2]; P2 = seg2[a];delay(5);  }
 108   4                    { P1 = act1[1]; P2 = seg2[b]; delay(5); }
 109   4                            { P1 = act1[0]; P2 = 0xdf; delay(5); } //显示负号
 110   4                                { P1 = act1[3]; P2 = 0xc9; delay(5); }
 111   4                               }
 112   3                       }                       
 113   2                 }
 114   1              
 115   1         
 116   1       }
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 17:22:36 PAGE 3   

 117          
 118          
 119           /*将转换出来的数据转换成角度值*/
 120           void moto(uint h)
 121          {    int r ,i,k;
 122   1               r=(h/5)-83;  //转换成角度值
 123   1               show_r(r);       //显示角度值
 124   1          
 125   1       if(flag)       
 126   1        {
 127   2         if(r > 0)
 128   2              {
 129   3                {
 130   4                 led = 0;
 131   4                   m10 = 1;
 132   4                      m11 = 0;
 133   4                      delay(2000);
 134   4                      m10 = 1;
 135   4                      m11 = 1;
 136   4              delay(100);
 137   4                 /*CMOD = 0x02;
 138   4             CL = 0x00;
 139   4             CH = 0x00;
 140   4             CCAP0L = 0xff;
 141   4             CCAP0H = 0xff;    
 142   4             CCAPM0 = 0x42;
 143   4         
 144   4             CCAP1L = 0x00;
 145   4             CCAP1H = 0x00;
 146   4             CCAPM1 = 0x00;
 147   4             CR = 1; */
 148   4                 flag = 0;
 149   4                }
 150   3               }
 151   2              else  if(r < 0) 
 152   2               {        
 153   3            {   
 154   4                      led = 1;
 155   4              m10 = 0;
 156   4                      m11 = 1;
 157   4                      delay(2000);
 158   4                      m10 = 1;
 159   4                      m11 = 1;
 160   4              delay(100);
 161   4              flag = 0;
 162   4      
 163   4                      /*CMOD = 0x02;
 164   4              CL = 0x00;
 165   4              CH = 0x00;
 166   4              CCAP0L = 0x00;
 167   4              CCAP0H = 0x00;
 168   4              CCAPM0 = 0x00;
 169   4         
 170   4              CCAP1L = 0xff;
 171   4              CCAP1H = 0xff;
 172   4              CCAPM1 = 0x42;
 173   4              CR = 1;*/
 174   4                 }
 175   3               }
 176   2         else
 177   2               {
 178   3                  led = 0;
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 17:22:36 PAGE 4   

 179   3                      m10 = 1;
 180   3                      m11 = 1;
 181   3                      flag = 0;
 182   3                  /*CMOD = 0x02;
 183   3              CL = 0x00;
 184   3              CH = 0x00;
 185   3              CCAP0L = 0x00;
 186   3              CCAP0H = 0x00;
 187   3              CCAPM0 = 0x00;
 188   3         
 189   3              CCAP1L = 0x00;
 190   3              CCAP1H = 0x00;
 191   3              CCAPM1 = 0x00;
 192   3              CR = 1;*/
 193   3               }      
 194   2         
 195   2       }
 196   1      
 197   1      else
 198   1       {
 199   2        if(r > 3)
 200   2              {
 201   3                {
 202   4                 led = 0;
 203   4                   m10 = 1;
 204   4                      m11 = 0;
 205   4                      delay(2000);
 206   4                      m10 = 1;
 207   4                      m11 = 1;
 208   4              delay(100);
 209   4                 /*CMOD = 0x02;
 210   4             CL = 0x00;
 211   4             CH = 0x00;
 212   4             CCAP0L = 0xff;
 213   4             CCAP0H = 0xff;    
 214   4             CCAPM0 = 0x42;
 215   4         
 216   4             CCAP1L = 0x00;
 217   4             CCAP1H = 0x00;
 218   4             CCAPM1 = 0x00;
 219   4             CR = 1; */
 220   4                 flag = 0;
 221   4                }
 222   3               }
 223   2         else  if(r < -3) 
 224   2               {        
 225   3              
 226   3               {   
 227   4                      led = 1;
 228   4              m10 = 0;
 229   4                      m11 = 1;
 230   4                      delay(2000);
 231   4                      m10 = 1;
 232   4                      m11 = 1;
 233   4              delay(100);
 234   4              flag = 0;
 235   4      
 236   4                      /*CMOD = 0x02;
 237   4              CL = 0x00;
 238   4              CH = 0x00;
 239   4              CCAP0L = 0x00;
 240   4              CCAP0H = 0x00;
C51 COMPILER V7.20   MAIN                                                                  09/09/2008 17:22:36 PAGE 5   

 241   4              CCAPM0 = 0x00;
 242   4         
 243   4              CCAP1L = 0xff;
 244   4              CCAP1H = 0xff;
 245   4              CCAPM1 = 0x42;
 246   4              CR = 1;*/
 247   4                      
 248   4                      
 249   4      
 250   4                 }
 251   3               }
 252   2               else
 253   2               {
 254   3                  led = 0;
 255   3                      m10 = 1;
 256   3                      m11 = 1;
 257   3                      flag = 0;
 258   3                  /*CMOD = 0x02;
 259   3              CL = 0x00;
 260   3              CH = 0x00;
 261   3              CCAP0L = 0x00;
 262   3              CCAP0H = 0x00;
 263   3              CCAPM0 = 0x00;
 264   3         
 265   3              CCAP1L = 0x00;
 266   3              CCAP1H = 0x00;
 267   3              CCAPM1 = 0x00;
 268   3              CR = 1;*/
 269   3               }      
 270   2        }
 271   1      }
*** WARNING C280 IN LINE 121 OF MAIN.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 121 OF MAIN.C: 'k': unreferenced local variable
 272          
 273          /*震动传感器模数转换初始化*/
 274          void init_AD()
 275          {
 276   1         uint a,i,j,b,result,sum;
 277   1         uint aa[15];
 278   1         unchar k; 
 279   1         record1[k]=0;
 280   1         delay(10);
 281   1          
 282   1         ADC_CONTR|=0x80;  //开ADC电源
 283   1         P1M0=0xb0;            // 将P1.7口设为开漏模式      P1M0 = 1000 0000                  (11 开漏 ; 10 高阻 ;01 推挽输出 ;00 

⌨️ 快捷键说明

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