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

📄 uart.lst

📁 keil c51开发的8279和51单片机通用键盘控制和Led显示及uart通信程序。
💻 LST
字号:
C51 COMPILER V7.10   UART                                                                  08/04/2006 15:38:10 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE UART.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x51.h>
   2           
   3           //=========串口0=======================================
   4          #define LenBuf 0x10
   5          
   6          data unsigned char time_u;
   7          data unsigned char TIflag;
   8          data unsigned char *head_pt;               //接受头指针
   9          data unsigned char *tail_pt;               //接受尾指针
  10          data unsigned char uart_buff[LenBuf];      //接受缓冲区
  11          
  12          #define START_PT &uart_buff[0]
  13          #define END_PT   &uart_buff[LenBuf]
  14          
  15          idata unsigned char TxBuf[LenBuf];   //发缓冲区实体
  16          idata unsigned char *inTxBuf,*outTxBuf;//发送缓冲区读写指针
  17          
  18          
  19          void Uart_Init(void)
  20                  {
  21   1                      TMOD = 0X20;
  22   1                      TL1  = 0XFD;
  23   1                      TH1  = 0XFD;    //9600
  24   1                      SCON = 0X50;
  25   1                      PCON = 0X80;
  26   1                      TR1 = 1;
  27   1                      REN = 1;
  28   1              TIflag = 0;
  29   1              inTxBuf = TxBuf,outTxBuf=TxBuf;
  30   1              head_pt = START_PT;
  31   1              tail_pt = START_PT;
  32   1      
  33   1              }
  34          
  35          void Uart0_ISR(void) interrupt 4 using 2
  36          {
  37   1              if(RI==1)
  38   1               {              
  39   2             RI=0;
  40   2             *head_pt=SBUF;
  41   2                 head_pt++;
  42   2                 if(head_pt==END_PT) head_pt=START_PT;
  43   2                 
  44   2      
  45   2            }//if(RI==1)
  46   1          if(TI)
  47   1                {
  48   2             TI=0;
  49   2             if(inTxBuf==outTxBuf) {TIflag=0;}//TxBuf Empty
  50   2             else
  51   2                 {
  52   3                 SBUF=*outTxBuf; outTxBuf++;
  53   3             if(outTxBuf==TxBuf+LenBuf) outTxBuf=TxBuf;       
  54   3             }
  55   2                }
C51 COMPILER V7.10   UART                                                                  08/04/2006 15:38:10 PAGE 2   

  56   1       }
  57          
  58          void ComOutChar( unsigned char ch) //串口0发送字符
  59          {
  60   1              unsigned char *t;
  61   1              //ES=0;        
  62   1              t=inTxBuf;t++;
  63   1              if(t==TxBuf+LenBuf) t=TxBuf;        // 30 TxBuf[30]缓冲长度
  64   1              if(t==outTxBuf) {/*ES=1;*/return;}    //TxBuf Full
  65   1              *inTxBuf=ch;
  66   1              inTxBuf=t;
  67   1              if(TIflag==0){TIflag=1; TI=1; }
  68   1                      //ES=1;        
  69   1                      }
  70           //--------------------------------------
  71          unsigned char ComGetChar() //串口0接收字符
  72          {
  73   1        unsigned char i;
  74   1        //if(tail_pt!=head_pt) 
  75   1        i=*tail_pt;
  76   1        tail_pt++;
  77   1        if(tail_pt==END_PT)
  78   1        tail_pt=START_PT;            
  79   1        return i;
  80   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    417    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24       3
   IDATA SIZE       =     22    ----
   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 + -