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

📄 main.lst

📁 从零开始学51单片机源代码
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  04/21/2012 20:44:58 PAGE 1   


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

line level    source

   1          #include "fun.h"   
   2          
   3          void  ADC_interrupt() interrupt 5
   4          {
   5   1              ADC_CONTR &= 0Xef;      //ADC_FLAG清零 
   6   1              //计算电压值 
   7   1              ad_result10 = ADC_RES;
   8   1              ad_result10 = ( ad_result10 << 2 ) | ADC_RESL;
   9   1              vin = ad_result10 * 5.0 / 1024 ; //ad_result10 = 1024 × ( Vin / 5v )
  10   1              /*
  11   1                第一段 1.7V~2.1V, 
  12   1                第二段2.8~3.2V
  13   1                第三段3.8~4.2V
  14   1              */
  15   1               if (vin>=1.7 && vin<=2.1)      //低速挡 
  16   1               {
  17   2                      duty_level = 1; //占空比30%
  18   2                      CCAP0H =  255 - 255 * duty[duty_level] / 100;
  19   2                      CCAP0L =  CCAP0H;
  20   2               }
  21   1               else if(vin>=2.8 && vin<=3.2)  //中速挡 
  22   1               {
  23   2                      duty_level = 2; //占空比50%
  24   2                      CCAP0H =  255 - 255 * duty[duty_level] / 100;
  25   2                      CCAP0L =  CCAP0H;
  26   2               }
  27   1               else if(vin>=3.8 && vin<=4.2)  //高速挡 
  28   1               {
  29   2                      duty_level = 3; //占空比80%
  30   2                      CCAP0H =  255 - 255 * duty[duty_level] / 100;
  31   2                      CCAP0L =  CCAP0H;
  32   2               }
  33   1               else//其它异常情况 
  34   1               {
  35   2                      duty_level = 0; //占空比0%
  36   2                      CCAP0H =  255 - 255 * duty[duty_level] / 100;
  37   2                      CCAP0L =  CCAP0H;
  38   2               }
  39   1      }
  40          
  41          void  Timer0_interrupt() interrupt 1
  42          {
  43   1              //重装初值 
  44   1              TH0 = T0_50ms >> 8;
  45   1              TL0 = T0_50ms;
  46   1              cntint0++;
  47   1              
  48   1              if(cntint0 >=10)//500ms
  49   1              {
  50   2                      ADC_CONTR |= 0X08;      //ADC_START=1,启动ad转换
  51   2                      cntint0=0;
  52   2              }
  53   1      }
  54          
  55          main()
C51 COMPILER V8.08   MAIN                                                                  04/21/2012 20:44:58 PAGE 2   

  56          {
  57   1              ms_delay(100);
  58   1              init_port();
  59   1              init_timer0();
  60   1              init_pca();
  61   1              init_adc();
  62   1      
  63   1              cntint0=0;
  64   1              IE |= 0x20; //EADC=1,打开adc中断 
  65   1              EA = 1;//开总中断 
  66   1      
  67   1              
  68   1      
  69   1              while(1)
  70   1              {
  71   2                      
  72   2              }
  73   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    479    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   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 + -