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

📄 serial.lst

📁 基于无线单片机24e1的组网程序。在无线传感器之类的应用中的成功案例。
💻 LST
字号:
C51 COMPILER V7.08   SERIAL                                                                08/17/2006 14:22:15 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\output\serial.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c OMF2 BROWSE DEBUG OBJECT(.\output\serial.obj)

line level    source

   1          //========================================================
   2          //深圳奥特迅电力设备有限公司
   3          //电池监控系统用无线传输模块
   4          //文件名:serial.h
   5          //描述:串口操作
   6          //By:Andylee 2006-6-13
   7          //anssett@163.com
   8          //=========================================================
   9          #include<battery.h>
  10          //#include<serial.h>
  11          //unsigned char TxBuf[TxBuf_Len];         //发送缓冲区
  12          //unsigned char RxBuf[RxBuf_Len];         //接收缓冲区
  13          //unsigned char *toTxBuf,*fromTxBuf,*toRxBuf,*fromRxBuf;//fifo 指针
  14          //bit TIflag=1;
  15          //================================================================
  16          //函数功能:串口初始化
  17          //filename:InitSerial()
  18          //input:none
  19          //output:none
  20          //================================================================
  21          void InitSerial(void) 
  22          {
  23   1      
  24   1      
  25   1              TH1 = 243;      // 19200@16MHz (when T1M=1 and SMOD=1)
  26   1              CKCON |= 0x10;  // T1M=1 (/4 timer clock)
  27   1              PCON = 0x80;    // SMOD=1 (double baud rate)
  28   1              SCON = 0x52;    // Serial mode1, enable receiver
  29   1              TMOD = 0x20;    // Timer1 8bit auto reload 
  30   1              TR1 = 1;        // Start timer1
  31   1      
  32   1              ES = 0;
  33   1              EA=1;
  34   1      
  35   1      
  36   1         
  37   1      }
  38          //================================================================
  39          //函数功能:串口缓冲区初始化
  40          //filename:InitSerialBuffer()
  41          //input:none
  42          //output:none
  43          //================================================================
  44          /*void InitSerialBuffer(void) 
  45          {
  46                  toTxBuf=TxBuf;
  47                  fromTxBuf=TxBuf;
  48                  toRxBuf=RxBuf;
  49                  fromRxBuf=RxBuf;        
  50                  ES=1;
  51          }/*
  52          //================================================================
  53          //函数功能:串口中断服务程序
  54          //filename:SerialIsr()
  55          //input:none
C51 COMPILER V7.08   SERIAL                                                                08/17/2006 14:22:15 PAGE 2   

  56          //output:none
  57          //================================================================
  58          /*void SerialIsr(void) interrupt 4
  59          {       unsigned char *temp;
  60                  if(TI)
  61                  {
  62                          TI=0;
  63                          if(toTxBuf==fromTxBuf)          //发送缓冲区为空
  64                          {
  65                                          TIflag=1;
  66                                          return;
  67                          }
  68                          SBUF=*fromTxBuf++;              //取数指针指向下一单元
  69                          if(fromTxBuf==TxBuf+TxBuf_Len)  //指向缓冲区开头
  70                          fromTxBuf=TxBuf;
  71                  }       
  72                  if(RI)
  73                  {
  74                          RI=0;
  75                          temp=toRxBuf;
  76                          if(temp==RxBuf+RxBuf_Len)
  77                          temp=RxBuf;                     //指向缓冲区开头
  78                          if(++temp==fromRxBuf)           //接收缓冲区为满
  79                          return;
  80                          *toRxBuf=SBUF;
  81                          toRxBuf=temp;
  82                  }
  83          }*/
  84          void UartISR (void) interrupt 4 using 2
  85          {
  86   1      //      unsigned char temp;
  87   1              
  88   1              EA = 0;
  89   1              if(RI)
  90   1              {/*
  91   2                      temp = SBUF;
  92   2                      if(temp == '@')
  93   2                      {               
  94   2                              Rx.Buf[0] = '@';
  95   2                              Rx.Counter = 1; 
  96   2                      }
  97   2                      else if(temp == '*')
  98   2                      {               
  99   2                              Rx.Buf[Rx.Counter] = temp;
 100   2                              Rx.Buf[Rx.Counter + 1] = '\0';
 101   2                              Rx.NewData = 1;
 102   2                      }
 103   2                      else if(Rx.Counter < 39){
 104   2                              Rx.Buf[Rx.Counter] = temp;
 105   2                              Rx.Counter += 1;
 106   2                      }*/
 107   2                      RI = 0;
 108   2              }
 109   1              if(TI)
 110   1              {
 111   2                      TI = 0;
 112   2              }
 113   1              EA = 1;
 114   1      }
 115          //================================================================
 116          //函数功能:从串口缓冲区读取一个字节的数据
 117          //filename:L_getch()
C51 COMPILER V7.08   SERIAL                                                                08/17/2006 14:22:15 PAGE 3   

 118          //input:ch 指针指向读出的地址
 119          //output:none
 120          //================================================================
 121          /*bit L_getch(unsigned char *ch)                //从串口缓冲区读1字节数据
 122          {
 123                  if(toRxBuf==fromRxBuf) 
 124                  {ES=1;return 0;}          //RxBuf Empty
 125                  *ch=*fromRxBuf;  
 126                  fromRxBuf++;
 127                  if(fromRxBuf==RxBuf+RxBuf_Len) 
 128                  fromRxBuf=RxBuf;        
 129                  return 1;
 130          }       */
 131          //================================================================
 132          //函数功能:打印一个字符(向发送缓冲区写入一个字符)
 133          //filename:PrintChar()
 134          //input:ch char变量
 135          //output:none
 136          //================================================================
 137          
 138          //================================================================
 139          //函数功能:显示ASII
 140          //filename:PrintChar()
 141          //input:ch char变量
 142          //output:none
 143          //================================================================
 144          /*void PrintCh(unsigned char ch) 
 145          {
 146                  if(ch>=0&&ch<=9) ch=ch+'0';
 147                  else ch=ch+'A'-10;
 148                  PrintChar(ch);
 149          }*/
 150          //================================================================
 151          //函数功能:以十六进制格式显示1个字节数据
 152          //filename:insidePrintByte()
 153          //input:Byte char变量
 154          //output:none
 155          //================================================================
 156          /*void insidePrintByte(unsigned char Byte)
 157          {
 158                  unsigned char c;
 159                  c=Byte;
 160                  c=c>>4;        
 161                  PrintCh(c);
 162                  c=Byte;
 163                  c=c&0x0F;
 164                  PrintCh(c);        
 165          }*/
 166          //================================================================
 167          //函数功能:以十六进制格式显示1个字节数据
 168          //filename:PrintByte()
 169          //input:Byte char变量
 170          //output:none
 171          //================================================================
 172          /*void PrintByte(unsigned char Byte)    //以十六进制格式显示1个字节数据
 173          {
 174                  EA=0;        
 175                  insidePrintByte(Byte);                
 176                  EA=1;
 177          }*/
 178          //================================================================
 179          //函数功能:以十六进制格式显示1个字数据
C51 COMPILER V7.08   SERIAL                                                                08/17/2006 14:22:15 PAGE 4   

 180          //filename:insidePrintWord()
 181          //input:Word  int变量
 182          //output:none
 183          //================================================================
 184          /*void insidePrintWord(unsigned int Word) 
 185          {               
 186                  insidePrintByte(Word>>8);
 187                  insidePrintByte(Word&0xFF);                        
 188          }*/
 189          //================================================================
 190          //函数功能:以十六进制格式显示1个字数据
 191          //filename:PrintWord()
 192          //input:Word  int变量
 193          //output:none
 194          //================================================================
 195          /*void PrintWord(unsigned int Word) 
 196          {       
 197                  EA=0;
 198                  insidePrintWord(Word);
 199                  EA=1;
 200          } */
 201          //================================================================
 202          //函数功能:以十六进制格式显示1个长字数据
 203          //filename:PrintLong()
 204          //input:Long0Word  Long变量
 205          //output:none
 206          //================================================================
 207          /*void PrintLong(unsigned long LongWord) 
 208          {
 209                  EA=0;
 210                  insidePrintWord(LongWord>>16);
 211                  insidePrintWord(LongWord&0xFFFF);
 212                  EA=1;
 213          } */
 214          //================================================================
 215          //函数功能:显示字符串
 216          //filename:PrintStr()
 217          //input:char *str
 218          //output:none
 219          //================================================================
 220          /*
 221          void PrintStr(unsigned char *str) 
 222          {
 223                  int i;
 224                  unsigned char j;
 225                  unsigned char ch;
 226                  
 227                  EA=0;
 228                  for(i=0;i<MaxStrLen;i++){
 229                          ch=*(str+i);
 230                          if(ch=='\0') break;
 231                          else if(ch=='\n'){PrintChar(10);PrintChar(13);} 
 232                          else if(ch=='\t'){
 233                                  for(j=0;j<TABNum;j++)
 234                                          PrintChar(' ');
 235                          }
 236                          else PrintChar(ch);
 237                  }
 238                  EA=1;
 239          } */


C51 COMPILER V7.08   SERIAL                                                                08/17/2006 14:22:15 PAGE 5   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     40    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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