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

📄 communication.lst

📁 楼宇对讲系统里用的文字信息接收。用可视对讲话机的TFT屏可看到从管理中心发过来的广播信息和本户的特发信息
💻 LST
字号:
C51 COMPILER V7.01  COMMUNICATION                                                          09/29/2004 10:59:29 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE COMMUNICATION
OBJECT MODULE PLACED IN COMMUNICATION.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE COMMUNICATION.c BROWSE DEBUG OBJECTEXTEND SRC(.\COMMUNICATION.SRC)

stmt level    source

   1          
   2          /***********************************************************/
   3          /*                                                                                     */
   4          /*                CPU:AT89S55   11.059MHZ                  */
   5          /*                Copyright  2004.09  Comelit              */
   6          /*                                                         */
   7          /*                                                         */
   8          /***********************************************************/
   9          /*                Version  1.0                             */
  10          /***********************************************************/
  11          /*      baud rate:9600bps/s   per bit send time=104.167us  */
  12          /*      per bit send machine time = 104.167/1.08507=96     */
  13          
  14          #include "reg52.h"
  15          
  16          
  17          #define  BUS_BUSY   0
  18          #define  BUS_IDLE   1
  19          #define  START_BIT  0
  20          /* baud rate */
  21          #define TM104US  3
  22          
  23          #define DISABLE_SEND (bit)0
  24          #define ENABLE_SEND  (bit)1
  25          #define HIGH         (bit)1
  26          #define LOW          (bit)0
  27          
  28          
  29          sbit RXD_PIN = P3^1 ;
  30          sbit TXD_PIN = P3^0 ;
  31          extern unsigned char data tx_data;
  32          extern bit send_F ;
  33          #pragma asm
  34           //   tx_data data 40H
  35           //  send_F   bit 20H.0 
  36          EXTRN DATA (tx_data)
  37          EXTRN BIT (send_F)
  38          #pragma endasm
  39          void Send_byte(void) ;
  40          /***********************************************************/
  41          /*        arguments:  NO                                   */
  42          /*        returns:   1        allow send data              */
  43          /*                   0        disable send data            */
  44          /***********************************************************/
  45          /*
  46          bit Judge_Send(void)
  47          {
  48          
  49             if(RXD_PIN == BUS_IDLE)
  50             {
  51                idle_count = 1 ;                            // it's need that delay  one byte send time
  52                ETx = 1 ;    
  53                
  54                
  55                
C51 COMPILER V7.01  COMMUNICATION                                                          09/29/2004 10:59:29 PAGE 2   

  56                }
  57              else
  58              {
  59                 idle_count = 0 ;
  60               }
  61          } 
  62          
  63          */
  64          /***********************************************************/
  65          /***********************************************************/
  66          /* tx_data */
  67          
  68          void Send_byte(void)
  69          { 
  70   1       //     unsigned char i;
  71   1          #pragma asm 
  72   1      
  73   1           // f_collisione=FALSE;
  74   1           //   TXD_PIN = START_BIT; 
  75   1                   CLR TXD_PIN                              
  76   1           //   Delay_us(TM104.167US);
  77   1               //   Delay 104US 
  78   1      /*  2+2+2+2+1+((1+(1+2)*8)+2)*TM114US = 90 machine time */
  79   1               push ACC                 ;2
  80   1               push  0H                 ;2
  81   1               push  1H                                 ;2
  82   1                       push  7H                 ;2
  83   1               mov   R0,#TM104US         ;1
  84   1       LOOP1:  mov   R1,#8              ;1
  85   1       LOOP2:  NOP                      ;1
  86   1                       DJNZ R1,LOOP2            ;2
  87   1                       DJNZ  R0,LOOP1           ;2
  88   1      
  89   1      //delay over
  90   1              
  91   1      //  for(i=0;i<8;i++)            
  92   1      //---- Variable 'i?040' assigned to Register 'R7' ----
  93   1              CLR     A                           //1 machine CYC
  94   1              MOV     R7,A                        //1 machine CYC
  95   1      L0001:
  96   1      //  {    
  97   1      //              if(tx_data &0x80)                               
  98   1              MOV     A,tx_data                   //1 machine CYC
  99   1              JNB     ACC.7,L0004                 //2 machine CYC  
 100   1      //      {
 101   1      //          TXD_PIN = HIGH ;
 102   1      /* last time == 96 machine time */              
 103   1              SETB    TXD_PIN                     //1 machine CYC
 104   1      //      Delay_20US start
 105   1          MOV R0,#9                           //1 machine CYC
 106   1      Delay_20CYC:
 107   1          DJNZ R0,Delay_20CYC                  //2 machine CYC
 108   1              NOP                                 //1 machine CYC   
 109   1      //Delay_20US OVER
 110   1      //              if(!RXD_PIN)                    //              
 111   1              JB      RXD_PIN,L0005               //2 machine CYC
 112   1      //              {                               
 113   1      //                   send_F = DISABLE_SEND ;    
 114   1              CLR     send_F
 115   1              RET     
 116   1              //       TXD_PIN = HIGH ;
 117   1      //                       return;
C51 COMPILER V7.01  COMMUNICATION                                                          09/29/2004 10:59:29 PAGE 3   

 118   1      //               }
 119   1                      
 120   1      L0005:
 121   1                       //DELAY 21 machine CYC 
 122   1                   MOV R0,#10                          //1 machine CYC
 123   1      First_21CYC:
 124   1              DJNZ R0,First_21CYC                  //2 machine CYC
 125   1                        //delay_21CYC  over
 126   1      //           if(!RXD_PIN)
 127   1                      
 128   1              JB      RXD_PIN,L0007              //2 machine CYC
 129   1      //              {                       
 130   1      //                       send_F = DISABLE_SEND ;                        
 131   1              CLR     send_F  
 132   1              RET     
 133   1                   //    TXD_PIN = HIGH ;
 134   1      //                       return;
 135   1      //               }
 136   1                              
 137   1      L0007:
 138   1              
 139   1      // Second_21CYC delay start
 140   1                   MOV R0,#10                          //1 machine CYC
 141   1      Second_21CYC:
 142   1              DJNZ R0,Second_21CYC                  //2 machine CYC
 143   1      //Second_21CYC  delay over 
 144   1      //           if(!RXD_PIN)                       
 145   1              JB      RXD_PIN,L0008              //2  machine CYC
 146   1      //              {                               
 147   1      //         send_F = DISABLE_SEND ;                      
 148   1              CLR     send_F
 149   1              RET     
 150   1                       //    TXD_PIN = HIGH ;
 151   1      //                       return;
 152   1      //               }                      
 153   1      L0008:
 154   1      // Third_21CYC delay start
 155   1               MOV R0,#10                          //1 machine CYC
 156   1      Third_21CYC:
 157   1           DJNZ R0,Third_21CYC                  //2 machine CYC
 158   1      //Third_21CYC  delay over        
 159   1      //            if(!RXD_PIN)              
 160   1              JB      RXD_PIN,L0010              //2 machine CYC
 161   1      //              {                       
 162   1      //               send_F = DISABLE_SEND ;
 163   1                              
 164   1              CLR     send_F
 165   1              RET     
 166   1               //     TXD_PIN = HIGH ;
 167   1      //                       return;
 168   1      //               }
 169   1                      
 170   1      //      } 
 171   1                              
 172   1      L0004:
 173   1      //     else                                  //0
 174   1      //    {                 
 175   1      //         TXD_PIN = LOW ;
 176   1                      CLR     TXD_PIN                      // 1 machine CYC
 177   1      //Delay_83CYC  START
 178   1               MOV R0,#40                          //1 machine CYC
 179   1      Delay_84CYC:
C51 COMPILER V7.01  COMMUNICATION                                                          09/29/2004 10:59:29 PAGE 4   

 180   1           DJNZ R0,Delay_84CYC                 //2 machine CYC
 181   1               NOP
 182   1               NOP
 183   1               NOP
 184   1      //Delay_83CYC  over      
 185   1      //      }                      
 186   1                              
 187   1      L0010: 
 188   1      //      tx_data <<= 1 ;                 
 189   1          NOP                            // 1 machine CYC
 190   1              NOP                            // 1 machine CYC
 191   1              MOV     A,tx_data              // 1 machine CYC
 192   1      //      ADD     A,ACC
 193   1          RL      A                      // 1 machine  CYC
 194   1              MOV     tx_data,A              // 1 machine  CYC
 195   1      //   }          
 196   1              INC     R7                     // 1 machine  CYC
 197   1              
 198   1              CJNE    R7,#08H,L0001          // 2 machine  CYC
 199   1      L0002: 
 200   1      //      TXD_PIN = HIGH ;                        
 201   1              SETB    TXD_PIN
 202   1      // }                    
 203   1      L0006:
 204   1              RET     
 205   1       
 206   1              #pragma endasm
 207   1      }  
 208           
 209          /*
 210           for(i=0;i<8;i++)
 211           {    
 212                  if(tx_data &0x80)               //1
 213                  {
 214                      TXD_PIN = HIGH ;
 215                  //      Delay_20US();n start
 216                      #pragma asm 
 217                          nop
 218                          #pragma endasm
 219                          //Delay_20US OVER
 220                          if(!RXD_PIN)               //
 221                          {
 222                  
 223                               send_F = DISABLE_SEND ;
 224                           //    TXD_PIN = HIGH ;
 225                                   return;
 226                           }
 227                           //DELAY_US(170) START
 228                      // delay_us(170);
 229                          #pragma asm
 230                            nop
 231                            #pragma endasm
 232                            //delay_170us over
 233                       if(!RXD_PIN)
 234                          {
 235                                   send_F = DISABLE_SEND ; 
 236                       //    TXD_PIN = HIGH ;
 237                                   return;
 238                           }
 239                  //     delay_us(170);
 240                           //DELAY_US(170) START
 241                      // delay_us(170);
C51 COMPILER V7.01  COMMUNICATION                                                          09/29/2004 10:59:29 PAGE 5   

 242                          #pragma asm
 243                            nop
 244                            #pragma endasm
 245                            //delay_170us over
 246                   
 247                       if(!RXD_PIN)
 248                          {       
 249                           send_F = DISABLE_SEND ;
 250                           //    TXD_PIN = HIGH ;
 251                                   return;
 252                           }
 253                    //   delay_us(170);
 254                           //DELAY_US(170) START
 255                      // delay_us(170);
 256                          #pragma asm
 257                            nop
 258                            #pragma endasm
 259                            //delay_170us over
 260                    
 261                        if(!RXD_PIN)
 262                          { 
 263                           send_F = DISABLE_SEND ;
 264                  //     TXD_PIN = HIGH ;
 265                                   return;
 266                           }
 267                  } 
 268              else                                  //0
 269              { 
 270                  TXD_PIN = LOW ;
 271                                   //DELAY_US(620) START
 272                          #pragma asm
 273                            nop
 274                            #pragma endasm
 275                            //delay_620us over
 276                  //      Delay(620US);
 277                  }                      
 278          
 279               tx_data <<= 1 ; 
 280            }
 281          
 282                  TXD_PIN = HIGH ;
 283          }
 284          
 285          */
 286          
 287           
 288          
 289          


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