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

📄 serial.lst

📁 《增强型8051单片机实用开发技术》例程代码
💻 LST
字号:
C51 COMPILER V8.18   SERIAL                                                                11/30/2009 13:35:24 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\OutPut\serial.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\serial.c LARGE OPTIMIZE(SIZE) DEBUG OBJECTEXTEND PRINT(.\OutPut\seri
                    -al.lst) OBJECT(.\OutPut\serial.obj)

line level    source

   1          #include "includes.h"
   2          
   3          INT8U xdata TxBuf[LenTxBuf],RxBuf[LenRxBuf];
   4          INT8U xdata *inTxBuf,*outTxBuf,*inRxBuf,*outRxBuf;
   5          INT8U xdata TIflag=1;
   6          
   7          //********************************************************************************************//
   8          /*
   9          void SerialInit(void) reentrant//串口初始化
  10          {    
  11              SCON=0x50;  //8位数据
  12              //SCON=0xD0;//9位数据
  13              TMOD&=0x0F;
  14              TMOD|=0x20;
  15              TL1=0xFD;
  16                  TH1=0xFD;
  17              PCON=0x80;  //19200bps@11.059MHz,TL1=256-(2^SMOD/32*Fosc/12*1/Baudrate)
  18              //PCON=0x00;//9600bps@11.059MHz
  19              TR1=1;              //Start timer1
  20              ES=1;               //Enable serialport interrupt
  21          }
  22          */
  23          //********************************************************************************************//
  24          void serial(void) reentrant//串口中断服务子程序
  25          {
  26   1          INT8U *t;
  27   1          if(TI)
  28   1          {
  29   2              TI=0;
  30   2              if(inTxBuf==outTxBuf)
  31   2              {
  32   3                  TIflag=1;
  33   3                              return;
  34   3              }
  35   2              SBUF=*outTxBuf;
  36   2                      outTxBuf++;
  37   2                      if(outTxBuf==TxBuf+LenTxBuf) outTxBuf=TxBuf;     
  38   2          }
  39   1          if(RI)
  40   1          {
  41   2              RI=0;
  42   2              t=inRxBuf;
  43   2                      t++;
  44   2                      if(t==RxBuf+LenRxBuf) t=RxBuf;
  45   2                      if(t==outRxBuf) return;
  46   2                      *inRxBuf=SBUF;
  47   2                      inRxBuf=t;
  48   2          }
  49   1      }
  50          //********************************************************************************************//
  51          void InitSerialBuffer(void) reentrant//串口缓冲区初始化
  52          {
  53   1              inTxBuf=TxBuf;outTxBuf=TxBuf;
  54   1              inRxBuf=RxBuf;outRxBuf=RxBuf;
C51 COMPILER V8.18   SERIAL                                                                11/30/2009 13:35:24 PAGE 2   

  55   1              ES=1;
  56   1              //EA=1;
  57   1      }
  58          //********************************************************************************************//
  59          void PrintChar(INT8U ch) reentrant//显示字符
  60          {
  61   1          INT8U *t;
  62   1      
  63   1          OS_ENTER_CRITICAL();
  64   1          t=inTxBuf;
  65   1              t++;
  66   1          if(t==TxBuf+LenTxBuf) t=TxBuf;
  67   1          if(t==outTxBuf) 
  68   1              {
  69   2                      OS_EXIT_CRITICAL();
  70   2                      return;
  71   2              }                             //TxBuf Full
  72   1          *inTxBuf=ch;
  73   1          inTxBuf=t;
  74   1          OS_EXIT_CRITICAL(); 
  75   1          if( TIflag)
  76   1              {
  77   2              TIflag=0;
  78   2              TI=1;
  79   2          }    
  80   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    496    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     26    ----
   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 + -