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

📄 sf.lst

📁 串口看门狗模块的程序
💻 LST
字号:
C51 COMPILER V7.50   SF                                                                    09/10/2007 15:17:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SF
OBJECT MODULE PLACED IN sf.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE sf.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "STC12C2052AD.H"
   2          
   3          /****************************************************************************/
   4          sbit   RESET = P1^0;
   5          
   6          unsigned char UartStauts =0;  //串口接收状态
   7          unsigned char DataWord; //接收到数据字节
   8          unsigned char b_validFrame; //桢标志
   9          
  10          unsigned int Count =0;  
  11          /****************************************************************************/
  12          
  13          
  14          /******************************************************************************
  15          
  16          ******************************************************************************/
  17          
  18          
  19          /************单片机初始化************************/
  20          void mcu_int(void)
  21          {
  22   1              TMOD=0x21;                       //timer1 mode2 timer0 mode1
  23   1      
  24   1              TL1=0xfc; TH1=0xfc;                       //9600bps
  25   1                                      //BAUD
  26   1              PCON=0;                          //SMOD=0
  27   1              SCON=0x50;                       //seria0 mode 1
  28   1      
  29   1              IP=0X10;                         //give the highest interrupt priority
  30   1             //16f5--50ms(14.31818)
  31   1              TL0=0x16;                        //timer  is 50ms
  32   1              TH0=0xf5;
  33   1      
  34   1             
  35   1              ET0=1;                           //Enable time0
  36   1              ES=1;                            //Enable serial
  37   1      
  38   1              EA=1;
  39   1              TI = 0;
  40   1      
  41   1              TR0=1;
  42   1              TR1=1;
  43   1             
  44   1      }
  45          /*******************UART 中断处理程序*****************************/
  46          void serial0_process(void)  interrupt  4 using 1
  47          { 
  48   1       if(RI)
  49   1       {
  50   2        EA=0;RI=0;
  51   2        
  52   2        switch(UartStauts)
  53   2         {
  54   3          case  0 :       
  55   3                              if(SBUF != 0xeb)UartStauts=0x00;
C51 COMPILER V7.50   SF                                                                    09/10/2007 15:17:33 PAGE 2   

  56   3                              else UartStauts=0x01;
  57   3                                  break;
  58   3      
  59   3              case  1 :       
  60   3                              DataWord=SBUF;  
  61   3                  UartStauts=0x02;            
  62   3                              break;
  63   3      
  64   3           case  2 :       
  65   3                              if(SBUF == 0xfb)
  66   3                                 b_validFrame = 1;
  67   3                                else b_validFrame = 0;
  68   3                  UartStauts=0x00;
  69   3                                  break;
  70   3      
  71   3         }
  72   2        
  73   2        EA=1;
  74   2        }
  75   1      }
  76          
  77          /****************************************************************************/
  78          void timer0(void) interrupt 1  using 1
  79          {
  80   1      
  81   1          TL0=0x16;                       //timer  is 50ms
  82   1          TH0=0xf5;
  83   1              ET0=0;                         //turn off the time0`s interrupt
  84   1      
  85   1        Count ++;
  86   1         if(Count >= 3500 )
  87   1          {
  88   2                Count = 0 ;
  89   2               
  90   2              }
  91   1      
  92   1              
  93   1          ET0=1;                      //turn on the time1`s interrupt
  94   1      }
  95          
  96          
  97          
  98          /****************************************************************************/
  99          void main()
 100          {
 101   1          RESET = 0;
 102   1            mcu_int();
 103   1                while(1)
 104   1                  {
 105   2                       if(b_validFrame == 1)
 106   2                        {
 107   3                          b_validFrame = 0;
 108   3                               if(DataWord == 0x01)
 109   3                               {
 110   4                                Count = 0;
 111   4                               }
 112   3                        }
 113   2                        if(Count == 3200)
 114   2                          {
 115   3                                RESET = 1;
 116   3                              }
 117   2                         if(Count == 3450)
C51 COMPILER V7.50   SF                                                                    09/10/2007 15:17:33 PAGE 3   

 118   2                         {
 119   3                           RESET = 0 ;
 120   3                         }
 121   2                      }
 122   1      
 123   1      }


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