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

📄 main.lst

📁 个人学习参考!禁止使用到产品上! 任何人不得公开发布!
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.10   MAIN                                                                  02/03/2005 10:45:40 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c OPTIMIZE(7,SIZE) BROWSE INCDIR(E:\WorkHome\932-DDSF\DDSF-932-002\;F:
                    -\WorkHome\932-DDSF\DDSF-932-003\) DEBUG OBJECTEXTEND

line level    source

   1          /*========================================*/
   2          /*系统名称:DDSF-CECG-JiangSu             */
   3          /*函数名称:主程序                            */
   4          /*程序编写:步爱军                                    */
   5          /*开始日期:2005-01-01                            */
   6          /*完成日期:                                          */
   7          /*修改记录:                                          */
   8          /*软件版本:DDSF-CECG-002                 */
   9          /*版本说明:用户数据保存在外部            */
  10          /*外部器件:LM75、AT24C02、HT1621、LPC932 */
  11          /*          R8025、ADE7755                */
  12          /*========================================*/
  13          
  14          //特别声明:利用中断0模拟的485通讯简称串口通讯
  15          //          利用MCU自带的串口进行的红外通讯
  16          //          简称红外通讯
  17          
  18          #include <REG932.H>
  19          #include <define.h>
  20          #include <Stdio.h>
  21          #include <Intrins.h>
  22          
  23          void main(void)
  24          {        
  25   1           EA=0;
  26   1           EA=0;               
  27   1           InitCpu();                         //初始化CPU
  28   1           InitCmd();                         //命令初始化---判断硬复位还是软复位          
  29   1           InitLcd();                         //初始化液晶显示驱动器
  30   1           InitRTC();                         //初始化时钟
  31   1           WDT();
  32   1           EA=1;
  33   1           EA=1;
  34   1           while(1)
  35   1           {         
  36   2                LcdParse();                   //显示方式处理
  37   2                Temperature();                //温度采集处理
  38   2                        TimeSpend();                  //费率时刻判断         
  39   2                CmdParse();                   //外部通讯处理
  40   2                PulseParse();                 //脉冲采集处理
  41   2                DataProtect();                //数据定时存储(15分钟存储一次数据)        
  42   2                LowPower();                   //掉电检测
  43   2                KeyParse();                   //键盘采集处理
  44   2                DataCom();                    //通讯数据帧处理
  45   2                StakeOut(0x00,0x01);
  46   2          }
  47   1      }
  48          //485接收
  49          void INT_INT0(void) interrupt 0 
  50          {
  51   1          unsigned char BitData;
  52   1          bit BitChk;
  53   1          EA=0;
  54   1          EX0=0;
C51 COMPILER V7.10   MAIN                                                                  02/03/2005 10:45:40 PAGE 2   

  55   1          WDT();
  56   1          EX0=0;
  57   1          BitData=0;
  58   1          BitChk=1;
  59   1          SeriesInData=0;
  60   1          Delay(130);                          //等过起始位
  61   1              while(BitData<9)
  62   1              {               
  63   2                      if(BitData==8)
  64   2              {
  65   3                  SeriesBitNine=RXD;
  66   3              }
  67   2                      if(RXD==1)
  68   2                      {
  69   3                              SeriesInData|=0x0080;
  70   3                  BitChk=~BitChk;
  71   3                      }           
  72   2                      BitData++;
  73   2                      if(BitData<8)
  74   2              {
  75   3                  SeriesInData>>=1;
  76   3              }               
  77   2                      Delay(90);
  78   2              }
  79   1          if(BitChk)
  80   1          {
  81   2              if(ComEn)
  82   2              {
  83   3                  
  84   3                  InfraredSt=0;
  85   3                  if(SeriesSt)
  86   3                  {
  87   4                      if(SeriesBufDptr<60)
  88   4                          {
  89   5                        if(SeriesBufDptr==0)                  //数据缓冲区地址指针是否为零
  90   5                        {                                             
  91   6                            if(SeriesInData==0x68)            //缓冲区的第一个数据是否等于0x68*/
  92   6                            {
  93   7                                ComDataBuf[0]=SeriesInData;   //数据保存到缓冲区*/
  94   7                                         SeriesBufDptr++;             //缓冲区地址累加*/
  95   7                            }
  96   6                            else
  97   6                            {
  98   7                                SeriesBufDptr=0;
  99   7                            }
 100   6                       }
 101   5                       else
 102   5                       {
 103   6                            ComDataBuf[SeriesBufDptr]=SeriesInData;   //数据保存到缓冲区*/
 104   6                            SeriesBufDptr++;                                  //缓冲区地址累加*/
 105   6                       }
 106   5                     }
 107   4                     else
 108   4                     {
 109   5                              SeriesBufDptr=0;
 110   5                     }
 111   4                     if(ComDataBuf[ComDataBuf[9]+11]==0x16)
 112   4                     {
 113   5                                 SeriesBufDptr=0;
 114   5                                 SeriesFg=1;//串口占用数据通道有标志效
 115   5                                 ComBit=1;
 116   5                     }
C51 COMPILER V7.10   MAIN                                                                  02/03/2005 10:45:40 PAGE 3   

 117   4                     else//命令错误释放串口占用数据通道标志
 118   4                     {
 119   5                         SeriesFg=0;//串口占用数据通道标志失效
 120   5                     }               
 121   4                  }            
 122   3              }
 123   2              else
 124   2              {
 125   3                  ComEn=1;
 126   3                  SeriesSt=1;            
 127   3              }        
 128   2          }
 129   1          EX0=1;
 130   1          EA=1;
 131   1      }
 132          void INT_T0(void) interrupt 1                   //定时器---产生模拟接受时序间隔信号
 133          {
 134   1          ET0=0;                                                              //定时器0中断使能禁止
 135   1              TR0=0;                                                      //定时器0中断使能禁止
 136   1              TR0=1;
 137   1              ET0=1;
 138   1      }
 139          void INT_INT1(void) interrupt 2         //外部中断1---红外接收中断
 140          {
 141   1        EX1=0;
 142   1      }
 143          //定时器---产生0.25秒信号
 144          void INT_T1(void) interrupt 3                   
 145          {
 146   1          WDT();
 147   1              ET1=0;
 148   1              TR1=0; 
 149   1          CkData++; 
 150   1          ComTimeA++;
 151   1          //LCD显示间隔---秒单位
 152   1          if(CkData>=90)                      
 153   1          {
 154   2              CkData=0;
 155   2              LcdTime++;
 156   2              LcdTimeFg=1;
 157   2              PingLed=~PingLed;              //峰指示灯点亮
 158   2              if(LcdTime>=4)
 159   2              {
 160   3                  LcdRunData++;
 161   3                  LcdTime=0;          
 162   3              }
 163   2              ComTimeB++;
 164   2                      if(ComTimeB>=5)               //通讯指示点亮时间---5秒

⌨️ 快捷键说明

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