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

📄 battcharger.lst

📁 51单片机开发与应用技术详解(珍藏版)PPT及源码
💻 LST
字号:
C51 COMPILER V8.08   BATTCHARGER                                                           07/03/2008 22:59:55 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE BATTCHARGER
OBJECT MODULE PLACED IN BattCharger.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE BattCharger.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>                                              //头文件
   2          #include <stdio.h>
   3          
   4          #define uint unsigned int
   5          
   6          sbit HCPL = P2^2;                                               //光耦模块HCPL-2601输出控制
   7          sbit BP = P1^3;                                                 //蜂鸣器报警控制
   8          
   9          uint CountT0;                                                   //定时器T0中断次数
  10          uint CountINT0;                                         //外部中断0次数
  11          
  12          void timer0() interrupt 1                                       //定时器/计数器T0中断服务例程
  13          {
  14   1              TR0 = 0;                                                        //停止计数
  15   1      
  16   1              TH0 = 19;                                               //重置初值
  17   1              TL0 = 136;
  18   1      
  19   1              CountT0++;                                              //定时器T0中断次数加1
  20   1      
  21   1              if (CountT0>620)
  22   1              {
  23   2                      if (CountINT0==1)                               //如果外部中断0次数为1,则认为充电完毕
  24   2                      {
  25   3                              HCPL = 0;                                       //关闭MAX1898输入电源
  26   3                              BP = 0;                                 //触发蜂鸣器报警
  27   3                              printf("Bettery is charged over.");
  28   3                      }
  29   2                  else                                                        //否则,表示充电过程出错
  30   2                      {
  31   3                              HCPL = 1;                                       //保持MAX1898输入电源
  32   3                              BP = 1;                                 //蜂鸣器不报警
  33   3                              printf("There is something error.");
  34   3                      }
  35   2              
  36   2                      ET0 = 0;                                //关闭定时器T0中断
  37   2                      EX0 = 0;                                                //关闭外部中断0
  38   2      
  39   2                      CountINT0 = 0;                                  //计数器归0
  40   2                      CountT0 = 0;                                    //计数器归0
  41   2              }
  42   1              else
  43   1      {
  44   2                      TR0 = 1;                                                //启动定时器T0计数
  45   2          }
  46   1      }
  47          
  48          void int0() interrupt 0                                         //外部中断0服务例程
  49          {
  50   1              if (CountINT0==0)                                       //定时器T0未中断
  51   1              {
  52   2                      TH0 = 19;                                       //设置定时初值
  53   2                      TL0 = 136;
  54   2                      CountT0 = 0;                                    //计数器归0
  55   2                      TR0 = 1;                                                //启动定时器/计数器0
C51 COMPILER V8.08   BATTCHARGER                                                           07/03/2008 22:59:55 PAGE 2   

  56   2              }
  57   1              CountINT0++;                                            //计数器归0
  58   1      }
  59          
  60          void main()
  61          {
  62   1              TMOD = 0x01;                                            //定时器模式1,T0为16位定时/计数器
  63   1              PT0 = 1;                                                        //设置T0中断为高优先级
  64   1              IT0 = 1;                                                        //设置外部中断0为边沿触发
  65   1      
  66   1              ET0 = 1;                                                        //打开T0中断
  67   1              EX0 = 1;                                                        //打开外部中断0
  68   1              EA = 1;                                                 //打开CPU中断
  69   1              
  70   1              HCPL = 1;                                                       //MAX1898输入电源,开始充电
  71   1              BP = 1;                                                 //关闭蜂鸣器
  72   1      
  73   1              CountINT0 = 0;                                          //计数器归0
  74   1              CountT0 = 0;                                            //计数器归0
  75   1              
  76   1              printf("Begin battery charge.");
  77   1              while(1)                                                        //主循环,充电过程
  78   1              {
  79   2              }
  80   1      }


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