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

📄 main.lst

📁 实现了应急灯的控制
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  01/17/2008 16:19:15 PAGE 1   


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

stmt level    source

   1          //#include <c8051f310.h>
   2          #include "delay.h"
   3          #include "indication.h"
   4          #include "measure.h"
   5          #include "def.h"
   6          
   7          //#define Vbattery=0
   8          //#define Vsource=0
   9          //#define temperature=0
  10          
  11          sbit P0_6=P0^6;
  12          sbit P0_7=P0^7;
  13          sbit P1_0=P1^0;
  14          
  15          //sbit dotest=P1^0;
  16          
  17          unsigned int cotest;       //过充标志
  18          unsigned int dotest;       //过放标志
  19          
  20          //unsigned int time;
  21          main()
  22          {
  23   1       XBR0=0x00;                  //设置交叉开关
  24   1       XBR1=0x41;
  25   1       P0MDIN=0xff;                //P0口的设置
  26   1       P0MDOUT=0xff;
  27   1       P1MDIN=0xd6;
  28   1       P1MDOUT=0x09;
  29   1       P0SKIP=0xFF;                //交叉0开关跳过引脚
  30   1       P1SKIP=0xFF;                //交叉1开关跳过引脚
  31   1       P2MDIN=0xf7;                //P2口的设置
  32   1       P2MDOUT=0xf7;
  33   1       P3MDIN=0xff;                //P3口的设置
  34   1       P3MDOUT=0xff;
  35   1       P2SKIP=0x00;                //交叉2开关跳过引脚
  36   1      
  37   1       REF0CN=0xf9;                //参考电压设置
  38   1       OSCICN=0xC3;                //内部振荡器控制设置
  39   1       CLKSEL=0X00;                //时钟选择设置
  40   1       //OSCXCN=0xEF;                //外部震荡器的设置
  41   1      
  42   1       //EIE1 = 0x08;         
  43   1       //PCA0MD = 0x01;       /*PCA定时器/计数器溢出中断禁止*/
  44   1       PCA0H=0xfc;                 
  45   1       PCA0L=0xf0;
  46   1       PCA0MD=0x08;
  47   1       EIE1 =0x18;                 //中断扩展设置
  48   1      // PCA0CPM0=0xCB;
  49   1       PCA0CN=0X40;
  50   1       //PCA0CPM1=0xC2;
  51   1       //EIE2 |=10;
  52   1       //PCA0CPL0=0x00;
  53   1       //PCA0CPH0=0x80;
  54   1       //PCA0CPM0=0xcb;       
  55   1       EA=0x01;                     //开总中断
C51 COMPILER V7.06   MAIN                                                                  01/17/2008 16:19:15 PAGE 2   

  56   1       ET0=0x01;                    //开定时器中断
  57   1       EX0=0x01; 
  58   1       ET1=0x01;                   //开外部中断
  59   1      // EX1=0x01;
  60   1       IT01CF=0X01;                 //外部中断电平设置
  61   1       
  62   1       //SP=0x68;
  63   1       TMOD=0x01;                  //定时器设置                  
  64   1       CKCON=0xc0;
  65   1       TL0=0x00;                    //给定时器0赋初值
  66   1       TH0=0x00;
  67   1       TR0=1;                      //启动定时器0
  68   1      
  69   1      while(1)
  70   1      { 
  71   2       battery();                 //电池电压检测
  72   2       delay(100);
  73   2       testtemperature();         //温度检测
  74   2       delay(100);
  75   2       sourcemeasure();           //外部电网电压检测
  76   2       delay(100); 
  77   2       if(vsource==0)             //外部段电  
  78   2        {
  79   3        /*if(dotest==1)             
  80   3          {
  81   3               redflash();             //显示过放状态
  82   3           //dotest=0x01;
  83   3           P0_6=0;
  84   3               }
  85   3               else
  86   3               {
  87   3            P0_6=1;
  88   3            lightoff();            //显示应急状态
  89   3                }*/
  90   3         if(vbattery==0)            //电池电量不足
  91   3        {
  92   4          redflash();                  //显示过放状态           
  93   4          P0_6=0; 
  94   4        }
  95   3        else 
  96   3        {
  97   4          lightoff();                  //应急模式
  98   4          P0_6=1;
  99   4        }
 100   3        }
 101   2       else
 102   2        {
 103   3          /*if(cotest==1)
 104   3         {
 105   3          redlighton();
 106   3          //cotest=0x01;
 107   3          P2_0=0;
 108   3          PCA0CPM0=0x00;
 109   3          //P0_6=0;
 110   3         }
 111   3         else
 112   3          battery();*/
 113   3          if(vbattery==4)
 114   3          {
 115   4                redlighton();                   //显示过充状态
 116   4            P2_0=0;                         //关断充电口
 117   4            PCA0CPM0=0x00;
C51 COMPILER V7.06   MAIN                                                                  01/17/2008 16:19:15 PAGE 3   

 118   4           }
 119   3          else 
 120   3           {
 121   4             greenlighton();                //正常模式
 122   4                 charge();
 123   4           }
 124   3      
 125   3        }
 126   2      }
 127   1      }
 128          
 129          void int0() interrupt 0 using 1
 130          {
 131   1        greenflash();                            //显示自检状态
 132   1        delay(100);
 133   1        delay(100);
 134   1      /***************************************************
 135   1      添加相应的自检测处理程序
 136   1      
 137   1      ***************************************************/
 138   1      }
 139          
 140          /*void int1() interrupt 2
 141          {
 142            redflash();
 143            dotest=0x01;
 144            P0_6=0;
 145          }*/
 146          
 147          
 148          
 149          void timer0() interrupt 1 
 150          {
 151   1         TL0=0x00;
 152   1         TH0=0x00;
 153   1         TR0=1;
 154   1          if(P0_7==0)
 155   1          {
 156   2                redlighton();                   //显示过充状态
 157   2            cotest=0x01;                    //置过充状态
 158   2            P2_0=0;                         //关断充电口
 159   2            PCA0CPM0=0x00;
 160   2            //P0_6=0;
 161   2               }
 162   1              if(P1_0==0)
 163   1              {
 164   2           redflash();                      //显示过放状态
 165   2           dotest=0x01;                     //置过放状态           
 166   2           P0_6=0;                          //关断应急灯
 167   2              }
 168   1         
 169   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    302    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.06   MAIN                                                                  01/17/2008 16:19:15 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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