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

📄 initial.lst

📁 pdh控制程序
💻 LST
字号:
C51 COMPILER V7.20   INITIAL                                                               02/20/2006 10:13:56 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE INITIAL
OBJECT MODULE PLACED IN .\output\initial.obj
COMPILER INVOKED BY: D:\keil c51 v7.09\C51\BIN\C51.EXE initial.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\initial.lst) OBJ
                    -ECT(.\output\initial.obj)

line level    source

   1          #ifndef _INITIAL_C_
   2          #define _INITIAL_C_
   3          
   4          #include "api.h"
   5          #include "ioserial.h"
   6          
   7          
   8          void initial_global_variable( void )
   9          {
  10   1              SYSTEM_INFOMATION xdata *psys = &gSystemInfo;
  11   1              SYSTEM_DEVICE_STATUS xdata *psdev = &gsystemStauts;
  12   1      
  13   1              memset(psys, 0, sizeof(SYSTEM_INFOMATION) );
  14   1              memset(psdev, 0, sizeof(SYSTEM_DEVICE_STATUS) );
  15   1      
  16   1              psdev->protocol = SYSTEM_PROTOCOL_VERSION;
  17   1              psdev->local.protect_condition = IDB_PROTECT_E_3;
  18   1              psdev->remote.protect_condition = IDB_PROTECT_E_3;
  19   1      
  20   1              psdev->local.soft_version = SYSTEM_SOFTWARE_VERSION;
  21   1              psdev->remote.soft_version = SYSTEM_SOFTWARE_VERSION;
  22   1      
  23   1              psys->setbuffer[1] |=  SYSTEM_PROTECT_E_3;
  24   1              psys->sendrc7017 = SETCMDSERIAL;
  25   1              psys->SetCommandCounter = 0;
  26   1              psys->system_type = 0xaa;
  27   1      }
  28          
  29          void initial_light( void )
  30          {
  31   1              BYTE counter;
  32   1              
  33   1              for( counter=4; counter>=2;counter-- )
  34   1              {
  35   2                      WriteChip( LOCAL_FIBERALARM_ADDR, ~(0x01<<counter) );
  36   2                      WriteChip( REMOTE_FIBERALARM_ADDR, ~(0x01<<counter) );
  37   2                      taskDelay( 300 );
  38   2                      RUN = ~RUN;
  39   2              }
  40   1              WriteChip( LOCAL_FIBERALARM_ADDR, 0xfd );
  41   1              WriteChip( REMOTE_FIBERALARM_ADDR, 0xfd );
  42   1              taskDelay( 300 );
  43   1              
  44   1              WriteChip( LOCAL_FIBERALARM_ADDR, INVALID );
  45   1              WriteChip( REMOTE_FIBERALARM_ADDR, INVALID );
  46   1              
  47   1              for( counter=0; counter<gSystemInfo.max_system_e1;  counter++ )
  48   1              {
  49   2                      WriteChip( LOCAL_E1ALARM_ADDR, ~(0x01<<counter) );
  50   2                      WriteChip( REMOTE_E1ALARM_ADDR, ~(0x01<<counter) );
  51   2                      taskDelay( 300 );
  52   2                      RUN = ~RUN;
  53   2              }
  54   1              WriteChip( LOCAL_E1ALARM_ADDR, INVALID );
C51 COMPILER V7.20   INITIAL                                                               02/20/2006 10:13:56 PAGE 2   

  55   1              WriteChip( REMOTE_E1ALARM_ADDR, INVALID );
  56   1              
  57   1              /*写软件不环回*/
  58   1              WriteChip( SOFTLOOP_ADDR, 0x00 );
  59   1      }
  60          
  61          void Init_w78e58_cpu(void)
  62          {
  63   1              CHPENR  = 0x87;/*解锁、在华邦有辅助内部RAM时,它要控制使用辅助RAM的寄存器时需要解锁*/
  64   1              CHPENR  = 0x59;/*当解锁后控制完、需要写个0关锁*/
  65   1              CC              = 0x10;/*内部辅助RAM使用,0x00不使用*/
  66   1              CHPENR  = 0;/*关锁*/
  67   1              CN              = 0x00;/*读ROM*/
  68   1      }
  69          
  70          void initial_cpu( void )
  71          {
  72   1              DISABLE_INTERRUPT;
  73   1      
  74   1              Init_w78e58_cpu();
  75   1      
  76   1              TMOD    = 0x21;
  77   1      
  78   1              TH0             = 0xb8;         //初始化定时器0
  79   1              TL0             = 0x00;         //22.1184MHz时钟下定时时间为10ms
  80   1              TR0             = 1;            //定时器运行控制位
  81   1      
  82   1              TH1             = 0xfa;         //22.1184MHz时钟下BOAU RATE 9600bps
  83   1              TL1             = 0xfa;
  84   1              TR1             = 1;
  85   1      
  86   1              SCON    = 0x50;         //初始化串行口
  87   1      
  88   1              P4CONA  = 0x00;
  89   1              P4CONB  = 0x00;
  90   1              XICON   = 0x00;
  91   1              CS = 0;
  92   1              UD = 0;
  93   1      
  94   1              INC = 0; 
  95   1      
  96   1              PS              = 0;            //串口优先级高
  97   1              ET0     = 1;            //定时器中断允许
  98   1              ET1             = 0;            //用于产生波特率,禁止中断
  99   1              ES              = 1;
 100   1              PT0             = 0;            //定时器优先级低
 101   1      
 102   1              initIocomm();
 103   1      }
 104          
 105          #if _LCD_MENU_
 106          
 107          BYTE check_system_i2c( void )
 108          {
 109   1              BYTE buffer[2][0x10],counter;
 110   1      
 111   1      #if _LCD_MENU_
 112   1              WP = LOW;
 113   1      #endif
 114   1              memset( buffer, 0, sizeof(buffer) );
 115   1              for( counter=0; counter<0x10; counter++ )
 116   1                      buffer[0][counter] = counter;
C51 COMPILER V7.20   INITIAL                                                               02/20/2006 10:13:56 PAGE 3   

 117   1      
 118   1              I2C_WriteData( 0, 0x10, &buffer[0][0] );
 119   1              I2C_ReadData( 0, 0x10, &buffer[1][0] );
 120   1              if( memcmp( &buffer[0][0], &buffer[1][0], 0x10 ) )
 121   1                      return FALSE;
 122   1              else
 123   1                      return TRUE;
 124   1      }
 125          
 126          void init_system_i2c( void )
 127          {
 128   1              /*在没有检测到EEPROM时,程序是可以正常运行的,运行灯
 129   1              将快速的闪烁*/
 130   1      
 131   1              if( check_system_i2c() == TRUE )
 132   1              {
 133   2                      gSystemInfo.run_time = 40;
 134   2      
 135   2                      init_system_infomation();
 136   2              }
 137   1              else
 138   1                      gSystemInfo.run_time = 10;
 139   1      }
 140          
 141          #endif
 142          
 143          void initial_system( void )
 144          {
 145   1              DISABLE_INTERRUPT;
 146   1      
 147   1      #if _LCD_MENU_
 148   1              WP = HIGH;
 149   1      #endif
 150   1      
 151   1              initial_cpu();
 152   1      
 153   1              /*在初始化CPU时打开了中断,在这再次关闭中断*/
 154   1              DISABLE_INTERRUPT;
 155   1              initial_global_variable();
 156   1      
 157   1      #if _LCD_MENU_
 158   1              /*先初始化LCD和菜单,再读EEPROM控制对比度*/
 159   1              menu_key_voice( KEY_VOICE_DISABLE );
 160   1              initial_menu();
 161   1              init_system_i2c();
 162   1      #else
                      gSystemInfo.run_time = 40;
              #endif
 165   1          initial_light();
 166   1              initial_serial1();
 167   1              system_watchdog( SYSTEM_NORMAL );
 168   1      
 169   1              ENABLE_INTERRUPT;
 170   1      }
 171          
 172          
 173          
 174          
 175          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.20   INITIAL                                                               02/20/2006 10:13:56 PAGE 4   

   CODE SIZE        =    568    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      37
   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 + -