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

📄 serint.lst

📁 串口是目前最常用的一种串行通讯接口它是在年由美国电子工业协会联合贝尔系统调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准
💻 LST
字号:
C51 COMPILER V7.50   SERINT                                                                06/02/2008 15:32:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SERINT
OBJECT MODULE PLACED IN serint.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE serint.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <STC516.H>
   2          #include <serint.h>
   3          
   4          void SerInitialize()
   5          {
   6   1       SerFlags=0;
   7   1       FlagTransIdle=1;
   8   1       FlagCvtInCR=1;
   9   1       RR_iHead=RR_iTail=RR_cLev=RR_cMax=0;
  10   1       TR_iHead=TR_iTail=TR_cLev=TR_cMax=0;
  11   1       UnGotCh=-1;
  12   1       
  13   1       TCON&=0x3F;
  14   1       TMOD&=0x0F;
  15   1       TMOD|=0x20;
  16   1       SCON=0x50;
  17   1       PCON|=0x00;
  18   1       TH1=TL1=T1RELOAD&0x00FF;
  19   1       TR1=1;
  20   1       ES=1;
  21   1       }
  22          
  23          void SerInt() interrupt 4
  24          {
  25   1       if(RI)
  26   1        {
  27   2         if(RR_cLev<INRINGSIZE)
  28   2          { 
  29   3               RRing[RR_iHead]=SBUF;
  30   3               RR_iHead++;
  31   3               RR_cLev++;
  32   3               if(RR_iHead==INRINGSIZE)
  33   3                 RR_iHead=0;
  34   3               }
  35   2              RI=0;
  36   2         }
  37   1       if(TI)
  38   1        {
  39   2         if(TR_cLev)
  40   2          {
  41   3               SBUF=TRing[TR_iTail];
  42   3               TR_cLev--;
  43   3               TR_iTail++;
  44   3               if(TR_iTail==OUTRINGSIZE)
  45   3                 TR_iTail=0;
  46   3               }
  47   2               else FlagTransIdle=1;
  48   2              TI=0;
  49   2         }
  50   1       }
  51          
  52          void putch(int TransChar)
  53          {
  54   1       putc(TransChar);
  55   1       if(TransChar=='\n')
C51 COMPILER V7.50   SERINT                                                                06/02/2008 15:32:14 PAGE 2   

  56   1        putc('\r');
  57   1       }
  58          
  59          void putc(int TransChar)
  60          {
  61   1       while(TR_cLev>=OUTRINGSIZE);
  62   1       ES=0;
  63   1       TRing[TR_iHead]=TransChar;
  64   1       TR_iHead++;
  65   1       TR_cLev++;
  66   1       if(TR_iHead==OUTRINGSIZE)
  67   1        TR_iHead=0;
  68   1       if(FlagTransIdle)
  69   1        {
  70   2         FlagTransIdle=0;
  71   2         TI=1;
  72   2         }
  73   1       ES=1;
  74   1       }
  75          
  76          int chkch()
  77          {
  78   1       return(RR_cLev);
  79   1       }
  80          
  81          void SerWaitOutDone()
  82          {
  83   1       while(TR_cLev);
  84   1       while(!FlagTransIdle);
  85   1       }
  86          
  87          void SerFlushIn()
  88          {
  89   1       ES=0;
  90   1       RR_iTail=0;
  91   1       RR_iHead=0;
  92   1       RR_cLev=0;
  93   1       ES=1;
  94   1       }
  95          
  96          int getch()
  97          {
  98   1       int RetVal;
  99   1       ES=0;
 100   1       if(RR_cLev)
 101   1        {
 102   2         RetVal=RRing[RR_iTail];
 103   2         if(RetVal=='\r')
 104   2          RetVal='\n';
 105   2         RR_iTail++;
 106   2         RR_cLev--;
 107   2         if(RR_iTail==INRINGSIZE)
 108   2          RR_iTail=0;
 109   2         }
 110   1        else RetVal=-1;
 111   1       ES=1;
 112   1       return(RetVal);
 113   1       }
 114          
 115          void putstr(char *pstring)
 116          {
 117   1       while(*pstring)
C51 COMPILER V7.50   SERINT                                                                06/02/2008 15:32:14 PAGE 3   

 118   1        {
 119   2         putch(*pstring);
 120   2         pstring++;
 121   2         }
 122   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    321    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    378    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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