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

📄 mcu.lst

📁 MSTARXX.rar
💻 LST
字号:
C51 COMPILER V8.18   MCU                                                                   09/29/2009 23:58:02 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE MCU
OBJECT MODULE PLACED IN ..\..\1out\mcu.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\..\kernal\mcu.c BROWSE INCDIR(..\..\inc) DEBUG OBJECTEXTEND PRINT(..\..\
                    -1out\mcu.lst) OBJECT(..\..\1out\mcu.obj)

line level    source

   1          #define _MCU_C_
   2          
   3          #include "types.h"
   4          #include "global.h"
   5          #include "misc.h"
   6          #include "DEBUG.h"
   7          #include "Reg52.h"
   8          #include "ms_reg.h"
   9          #include "ms_rwreg.h"
  10          #include "mcu.h"
  11          
  12          void Init_MCU(void)
  13          {
  14   1        EA=0;
  15   1      
  16   1        g_bMcuUseNewClock = 0;
  17   1      
  18   1        Init_IOPorts();
  19   1        Init_SerialPort();
  20   1        Init_Timer();
  21   1        Init_ExternalInterrupt();
  22   1        EA=1;
  23   1      }
  24          
  25          
  26          // Initialize I/O setting
  27          void Init_IOPorts(void)
  28          {
  29   1      #if 1
  30   1          #if(ENABLE_WATCH_DOG)
  31   1              PWDT = 0x50;
  32   1              PWDT1 = 0xA0;
  33   1              #else
                      PWDT = 0x55;
                      PWDT1 = 0xAA;
                      #endif
  37   1      
  38   1          WDTCON = 0x00; // disable WDT.
  39   1      
  40   1      #else
                      PWDT = 0x55;
                      PWDT1 = 0xAA;
                  #if(ENABLE_WATCH_DOG)
                  WDTCON = 0x02; // enable WDT.
                  #else
                  WDTCON = 0x00; // disable WDT.
                  #endif
              #endif
  49   1                                        //600ms
  50   1              CKCON = 0x98;//0xD8;//0xC0;
  51   1              P0 = Init_P0_Value;//0xFE;
  52   1              //P0SEL = 0xf9;
  53   1              //P0IO = 0xf9;
  54   1      
C51 COMPILER V8.18   MCU                                                                   09/29/2009 23:58:02 PAGE 2   

  55   1              P1SEL = 0xff;
  56   1              P1IO = 0xff;
  57   1      
  58   1              P4 = Init_P4_Value;//0xFD;
  59   1      
  60   1      #ifdef P6_GPIO_Enable
  61   1              P6_IO_Ctrl|= 0xF0;
  62   1              P6|=Init_P6_Value;
  63   1      #endif
  64   1      
  65   1      #ifdef P5_GPIO_Enable
                  P5_IO_Ctrl|=0x0F;
                  P5|=Init_P5_Value;
              #endif
  69   1      }
  70          
  71          /* initialize 8051 CPU timer & interrupt routine */
  72          /* TCON.7(   TF1): Timer 1 overflow flag */
  73          /* TCON.6(   TR1): Timer 1 stop/start bit */
  74          /* TCON.5(   TF0): Timer 0 overflow flag */
  75          /* TCON.4(   TR0): Timer 0 stop/start bit */
  76          /* TCON.3(   IE1): Timer 1 INT1 interrupt flag */
  77          /* TCON.2(   IT1): Timer 1 INT1 interrupt style setup*/
  78          /* TCON.1(   IE0): Timer 0 /INT0 interrupt flag */
  79          /* TCON.0(   IT0): Timer 0 /INT0 interrupt style setup */
  80          
  81          void Init_ExternalInterrupt(void)
  82          {
  83   1          //INT0 setting
  84   1          //for DDC2BI
  85   1          IT0 = 0; // set INT0 type(edge triger)
  86   1          PX0 = 1; // set INT0 priority high
  87   1          EX0 = 1; // enable INT0 interrupt
  88   1      
  89   1          //INT1 setting
  90   1          IT1 = 1; // set INT1 type(edge triger)
  91   1          PX1 = 0; // set INT1 priority high
  92   1          EX1 = 1; // enable INT1 interrupt
  93   1      
  94   1          //TIMER0 setting
  95   1          //McuInitTimer0();
  96   1      
  97   1          //Timer1 setting for uart
  98   1      
  99   1          //TIMER2 setting
 100   1          T2CON = 0x00;
 101   1          T2MOD = 0x00;
 102   1      
 103   1          EA = 1;        // interrupt enable
 104   1      }
 105          
 106          void Init_Timer(void)
 107          {
 108   1          TMOD = (TMOD & 0xf0) | 0x01; // set TIMER0 mode 1
 109   1          PT0 = 0;      // set TIMER0 priority low
 110   1          TR0 = 1;      // TIMER0 enable
 111   1          ET0 = 1;      // enable TIMER0 interrupt
 112   1      }
 113          
 114          /*----------Timer 2 -------------------*/
 115          /* T2CON.7(   TF2): overflow flag */
 116          /* T2CON.6(  EXF2): extern enable flag */
C51 COMPILER V8.18   MCU                                                                   09/29/2009 23:58:02 PAGE 3   

 117          /* T2CON.5(  RCLK): receive clock */
 118          /* T2CON.4(  TCLK): transfer clock */
 119          /* T2CON.3( EXEN2): extern enable flag */
 120          /* T2CON.2(   TR2): stop/start timer 2 */
 121          /* T2CON.1(  C_T2): intern clock(0)/extern counter(1) switch */
 122          /* T2CON.0(CP_RL2): capture flag */
 123          
 124          void Init_SerialPort(void)
 125          {
 126   1          // timer1, mode 2, 8-bit auto reload
 127   1          TMOD = (TMOD & 0x0f) | 0x20; // timer1, mode 2, 8-bit reload
 128   1      
 129   1          // Timer1: Uart baudrate generator
 130   1          TH1 = TIMER1_MODE2_TH1;      // set timer1(buad rate)
 131   1          TR1 = 1;    // timer1 run
 132   1      
 133   1          // UART
 134   1          SCON = 0x50;    // mode 1, 8-bit UART, enable receive
 135   1          if(_SMOD) PCON |= 0x80;
 136   1          RI = 0;
 137   1          TI = 0; // clear transfer flag
 138   1      
 139   1          PS = 0; // set uart priority low
 140   1          ES = 1; // enable uart interrupt
 141   1          // reset Uart variables
 142   1      #if (IR_TIMER_SEL == IR_USE_TIMER1)
                  g_bUartDisable = 0;
              #endif
 145   1          g_UartCommand.Index = 0;
 146   1      
 147   1          g_bDebugASCIICommandFlag = _DISABLE;
 148   1          g_bDebugProgStopFlag = FALSE;
 149   1      }
 150          
 151          #if ENABLE_MCU_USE_INTERNAL_CLOCK
 152          void McuUseInternalClock(void)
 153          {
 154   1          WORD wTmp;
 155   1      
 156   1          wTmp = ((DWORD)NEW_MCU_XTAL_CLK_HZ*_SMOD+NEW_MCU_XTAL_CLK_HZ+(TIMER1_MODE2_DIVIDER/2))/TIMER1_MODE2_DI
             -VIDER;
 157   1          //printf("\r\nNew TIMER1_MODE2_TH1=%d", wTmp);
 158   1      
 159   1          //msWriteByte( BK0_00_REGBK, REG_BANK_SCALER);
 160   1          msWriteByte( BK0_EE_PDMD2, BK0_EE_VAL );
 161   1      
 162   1          ES = 0;
 163   1          TR1 = 0;
 164   1          RI = 0;
 165   1          TI = 0; // clear transfer flag
 166   1      
 167   1          TH1 = 256 - wTmp;
 168   1          g_bMcuUseNewClock = 1;
 169   1      
 170   1          TR1 = 1;
 171   1          ES = 1;
 172   1      }
 173          #endif
 174          
 175          #if(ENABLE_WATCH_DOG)
 176          void McuWatchDogSetTimer(EnuWatchDogTime WatchDogType)
 177          {
C51 COMPILER V8.18   MCU                                                                   09/29/2009 23:58:02 PAGE 4   

 178   1      if(WatchDogType==WatchDogTime_5S)   //5 s'
 179   1              CKCON = 0xD8;
 180   1      else //600 ms
 181   1              CKCON = 0x98;
 182   1      }
 183          
 184          void WatchDogClear(void)
 185          {
 186   1          WDTCON = 1;
 187   1      }
 188          #else
              void WatchDogClear(void)
              {}
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    179    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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