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

📄 scon.lst

📁 无线红外传感报警系统
💻 LST
字号:
C51 COMPILER V7.06   SCON                                                                  06/10/2005 23:25:34 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SCON
OBJECT MODULE PLACED IN scon.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE scon.c DEBUG OBJECTEXTEND

stmt level    source

   1          /*串口程序*/
   2          /*通道控制*/
   3          //工作方式用T2CON的C/T2来选择 [zglike] [7次] 02-11-8 18:32:14 
   4          //T2有三种操作方式:捕获方式,自动重装方式,波特率发生器。操作方式由T2CON控制位选
   5          //择 (1):BCLK+TCLK、CP/RL2两个位为0时TR2为1则操作方式是16位自动装方式
   6          //   (2):BCLK+TCLK为0、CP/RL2和TR2为1时是16位捕获
   7          //   (3):BCLK+TCLK为1、TR2为1时是波特率发生器 
   8          
   9          #include "Head.h"
  10          #include <reg52.h>
  11          #define BYTE unsigned char
  12          bit data P0_bit;
  13          
  14          //BYTE idata Ctr_rlt[16];
  15          void delay11ms(uchar tim);
  16          void IniSerial(void)
  17          { /* T2定时器初始化                      */
  18   1           T2CON = 0x30;      /*0011000,选择timer2作为波特率发生器*/          
  19   1      /* T2 in mode 2 autoload               */ 
  20   1          TH2 = 0xFF;
  21   1          TL2 = 0xDC;               /* Baut rate 9600                      */  
  22   1          RCAP2H = 0xFF;            /* 11059200 / (9600*32) = 36           */
  23   1          RCAP2L = 0xDC;
  24   1      
  25   1          SCON = 0x50;        /* SM0 SM1 SM2 REN TB8 RB8 TI RI:9 bit */ 
  26   1       
  27   1          ES = 1;             /* 串口中断允许   1-enable             */
  28   1          PS = 0;             /* 串口中断优先级 1-高,0-低           */
  29   1          TR2 = 1;              /* Start T2 as baut rate generator     */  
  30   1              EA=1;   
  31   1      } 
  32          
  33          
  34          
  35          
  36          void serial (void) interrupt 4 using 1 
  37          {
  38   1              unsigned char re_pc,zc11;//Tx_se;
  39   1              if(RI==1)
  40   1              {
  41   2      //              unsigned char re_pc,Ts; //
  42   2                      RI=0;
  43   2                      re_pc=SBUF;
  44   2                      if((re_pc&0xe0)==0xe0)  //是否能正确操作串口
  45   2                      {
  46   3                              switch(re_pc&0x0c)      //功能选择
  47   3                              {
  48   4                                      case 0:                 //家电通道
  49   4                                              if((re_pc&0x10)!=0x10)  //是否读(所有)家电通道状态
  50   4                                              {
  51   5                                                      SBUF=(P0 & 0xe0) | zc11;  
  52   5                                                      while(TI==0);
  53   5                                                      TI=0;
  54   5                                              }
  55   4                                              else    //进行通道控制
C51 COMPILER V7.06   SCON                                                                  06/10/2005 23:25:34 PAGE 2   

  56   4                                                      switch(re_pc&0x03)
  57   4                                                      {       
  58   5                                                              case 0:         //CH1
  59   5                                                              //      P0_bit=CH1;     
  60   5                                                              //      CH1=!P0_bit;
  61   5                                                              //      if(CH1)
  62   5                                                              //              SBUF=0x01;
  63   5                                                              //      else
  64   5                                                              //              SBUF=0x02;
  65   5                                                              //      break;
  66   5                                       P0_bit=zc1;    
  67   5                                                                      if(zc1!=1)  //通道为闭,进入,开,zc1=0
  68   5                                                                      {
  69   6                                                                              CH1=0;delay11ms(200);CH1=1;
  70   6                                                                              zc1=1;
  71   6                                                                      }
  72   5                                                                      else 
  73   5                                                                      {
  74   6                                                                              CH1=0;delay11ms(200);CH1=1;
  75   6                                                                              zc1=0;
  76   6                                                                      }
  77   5                                                                      //CH1=!P0_bit;
  78   5                                      //P0_bit=zc1;
  79   5                                                                      //if(P0_bit)   
  80   5                                                                      if(!zc1)
  81   5                                                                              {SBUF=0x01;
  82   6                                           zc11=0x10;}
  83   5                                                                      else
  84   5                                                                              {SBUF=0x02;
  85   6                                          zc11=0x00;}
  86   5                                                                      break;
  87   5      
  88   5      
  89   5      
  90   5                                                              case 1:         //CH2
  91   5                                                                      P0_bit=CH2;     
  92   5                                                                      CH2=!P0_bit;
  93   5                                                                      if(CH2)
  94   5                                                                              SBUF=0x01;
  95   5                                                                      else
  96   5                                                                              SBUF=0x02;
  97   5                                                                      break;
  98   5                                                              case 2:         //CH3
  99   5                                                                      P0_bit=CH3;     
 100   5                                                                      CH3=!P0_bit;
 101   5                                                                      if(CH3)
 102   5                                                                              SBUF=0x01;
 103   5                                                                      else
 104   5                                                                              SBUF=0x02;
 105   5                                                                      break;
 106   5                                                              case 3:         //CH4
 107   5                                                                      P0_bit=CH4;     
 108   5                                                                      CH4=!P0_bit;
 109   5                                                                      if(CH4)
 110   5                                                                              SBUF=0x01;
 111   5                                                                      else
 112   5                                                                              SBUF=0x02;
 113   5                                                                      break;
 114   5                                                              default:
 115   5                                                                      break;          
 116   5                                                  }   
 117   4                                                  break;
C51 COMPILER V7.06   SCON                                                                  06/10/2005 23:25:34 PAGE 3   

 118   4      //                              case 0xe8:
 119   4                                              
 120   4                                      default:
 121   4                                              break;
 122   4                              }
 123   3      //////////////////
 124   3      //                              Ctr_rlt[0]='D';
 125   3      //                              Ctr_rlt[1]='o';
 126   3      //                              Ctr_rlt[2]='n';
 127   3      //                              Ctr_rlt[3]='e';
 128   3      //                              Ctr_rlt[4]='\0';
 129   3                              
 130   3      
 131   3      //                      Send_tx(Ctr_rlt);
 132   3      
 133   3                      }
 134   2              else    //send "Fail"
 135   2              {
 136   3      //                      Ctr_rlt[0]='F';
 137   3      //                              Ctr_rlt[1]='a';
 138   3      //                              Ctr_rlt[2]='i';
 139   3      //                              Ctr_rlt[3]='l';
 140   3      //                              Ctr_rlt[4]='\0';
 141   3                              
 142   3      
 143   3      //                      Send_tx(Ctr_rlt);
 144   3              
 145   3              }       
 146   2                              
 147   2              }       
 148   1      
 149   1      
 150   1      }
 151          void delay11ms(uchar tim)
 152          {
 153   1       unsigned int i,j,k;
 154   1      for(i=0;i<tim;i++);
 155   1      for(j=0;j<30000;j++);
 156   1      for(k=0;k<40000;k++);
 157   1      }
 158          
 159          ////////////////////////////////
 160          
 161          
 162          //void Send_tx(unsigned char tx_data[16])
 163          //{
 164          //      unsigned char Tx_se=0;
 165          //      while(tx_data[Tx_se]!=0)
 166          //      {
 167          //              SBUF=tx_data[Tx_se];
 168          //              while(TI==0);
 169          //              TI=0;
 170          //              Tx_se++;
 171          //      }
 172          //}     


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    274    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.06   SCON                                                                  06/10/2005 23:25:34 PAGE 4   

   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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