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

📄 iic_slave.lst

📁 8051单片机的LCDTV用户界面程序
💻 LST
字号:
C51 COMPILER V7.01  IIC_SLAVE                                                              12/01/2005 09:38:54 PAGE 1   


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

stmt level    source

   1          #include "mxREG52.H"
   2          #include "i2cm.h"
   3          
   4          sbit    data_ready = P2^7;
   5          extern unsigned char power_down_status;
   6          extern unsigned char volumn_left_status ;
   7          extern unsigned char volumn_right_status;
   8          extern unsigned char program_left_status;
   9          extern unsigned char program_right_status;
  10          extern unsigned char menu_status;
  11          extern unsigned char source_in_status;
  12          extern unsigned char Power_status;
  13          
  14          unsigned char Power_off_1;
  15          unsigned char PWM_status;
  16          bit     PWM_flag;
  17          unsigned char num = 0x00;
  18          unsigned char idata DATA[2]={0x32};
  19          unsigned char command;
  20          extern unsigned char data keydata;
  21          unsigned char keypad_received;
  22          unsigned char   RTC_receied;
  23          unsigned char data RTCDATA[4];
  24          unsigned char trans_done;
  25          unsigned char idata Slave_Adr;
  26          unsigned char idata FReceive_Done;
  27          unsigned char idata FTransmitted_Done;
  28          extern unsigned char action_ready_to_handle;
  29          extern unsigned char Power_off;
  30          
  31          //------------------------------------------------------
  32          //i2c interrupt service routine
  33          //------------------------------------------------------
  34          
  35          void i2c_isr(void) interrupt 5
  36          {
  37   1          switch(S1STA)
  38   1              {
  39   2                      case Bus_error:
  40   2                      transreg(Bus_error);
  41   2                      break;
  42   2      
  43   2                      //=====SLAVE RECEIVE mode===================
  44   2                      case SR_SLAW_ACK:                       //0x60
  45   2      //              transreg(SR_SLAW_ACK);  
  46   2                      num = 0;
  47   2                      S1CON=RELEASE_BUS_ACK;
  48   2                      break;
  49   2      
  50   2                      case SR_DATA_ACK:                       //0x80
  51   2      //              transreg(SR_DATA_ACK);
  52   2                      if(Power_off_1 == 0x01)
  53   2                              {
  54   3                              if(S1DAT == 0xF1)
  55   3                                      {
C51 COMPILER V7.01  IIC_SLAVE                                                              12/01/2005 09:38:54 PAGE 2   

  56   4                                      Power_off = 0x01;
  57   4                                      }
  58   3                                      Power_off_1 = 0x00;
  59   3                              }
  60   2                      else
  61   2                      {
  62   3                      if(PWM_flag == 0)
  63   3                              {
  64   4                              if(S1DAT == 0x32)
  65   4                                      {
  66   5                                      keypad_received = 1;
  67   5                                      }
  68   4                              else
  69   4                                      if(S1DAT == 0xF0)
  70   4                                              {
  71   5                                              Power_off_1 = 0x01;
  72   5                                              }
  73   4                                      else
  74   4                                              if(S1DAT == 0x37)
  75   4                                                      {
  76   5                                                      P2 = 0x55;
  77   5                                                      PWM_flag = 1;
  78   5                                                      }
  79   4                              }
  80   3                      else
  81   3                              {
  82   4                              PWM_status = S1DAT;
  83   4                              P2 = 0x57;
  84   4                              }
  85   3                      }
  86   2                      num++;
  87   2                      S1CON=RELEASE_BUS_ACK;
  88   2                      break;
  89   2      
  90   2                      case SR_STOP_ACK:                       //0xA0  receive has done
  91   2      //              transreg(SR_STOP_ACK);
  92   2                      S1CON=RELEASE_BUS_ACK;
  93   2                      FReceive_Done = 1;
  94   2                      break;
  95   2                      //==========================================
  96   2                      //=====SLAVE TRANSMITTER mode===============
  97   2                      case ST_SLAR_ACK:                       //0xA8
  98   2      //              transreg(ST_SLAR_ACK);
  99   2                      if(keypad_received)
 100   2                              {S1DAT = 0x32;
 101   3      //                      transreg(S1DAT);
 102   3                              }
 103   2                      S1CON=RELEASE_BUS_ACK;
 104   2                      break;
 105   2      
 106   2                      case ST_DATA_ACK:                       //0xB8
 107   2      //              transreg(ST_DATA_ACK);
 108   2                      if(power_down_status==0x01)
 109   2                              {
 110   3                              S1DAT = 0x51;
 111   3      //                      transreg(S1DAT);
 112   3                              power_down_status = 0x00;
 113   3                              }
 114   2                      if(menu_status == 0x01)
 115   2                              {
 116   3                              S1DAT = 0X55;
 117   3      //                      transreg(S1DAT);
C51 COMPILER V7.01  IIC_SLAVE                                                              12/01/2005 09:38:54 PAGE 3   

 118   3                              menu_status = 0x00;
 119   3                              }
 120   2                      if(source_in_status == 0x01)
 121   2                              {
 122   3                              S1DAT = 0X56;
 123   3      //                      transreg(S1DAT);
 124   3                              source_in_status = 0x00;
 125   3                              }
 126   2                      if(volumn_left_status == 0x01)
 127   2                              {
 128   3                              S1DAT = 0x57;
 129   3      //                      transreg(S1DAT);
 130   3                              volumn_left_status = 0x00;
 131   3                              }
 132   2                      if(volumn_right_status == 0x01)
 133   2                              {
 134   3                              S1DAT = 0x58;
 135   3      //                      transreg(S1DAT);
 136   3                              volumn_right_status = 0x00;
 137   3                              }
 138   2                      if(program_left_status == 0x01)
 139   2                              {
 140   3                              S1DAT = 0X59;
 141   3      //                      transreg(S1DAT);
 142   3                              program_left_status = 0x00;
 143   3                              }
 144   2                      if(program_right_status == 0x01)
 145   2                              {
 146   3                              S1DAT = 0X54;
 147   3      //                      transreg(S1DAT);
 148   3                              program_right_status = 0x00;
 149   3                              }
 150   2                      S1CON = RELEASE_BUS_ACK;
 151   2                      break;
 152   2      
 153   2                      case ST_STOP_NONACK     :               //0xC0
 154   2      //              transreg(ST_STOP_NONACK);
 155   2                      S1CON=RELEASE_BUS_ACK;
 156   2                      FTransmitted_Done =1;
 157   2                      data_ready = 0x01;
 158   2                      break;
 159   2              
 160   2      
 161   2                      //==========================================
 162   2              }
 163   1      }


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