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

📄 serial.lst

📁 51开发板的源程序
💻 LST
字号:
C51 COMPILER V7.06   SERIAL                                                                12/18/2007 11:18:06 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "c51base.h" 
   2          
   3          
   4          /***************串口初始化*****************/
   5          
   6          static uchar idata receive_buf[MAX_BUF_LEN];
   7          static uchar idata buf_head,buf_tail;
   8          static uchar  is_serial_get;
   9          
  10          static uchar PopBuf(void)
  11          {
  12   1              uchar temp;
  13   1              if(buf_head == buf_tail)
  14   1                      temp = 0xff;
  15   1              else
  16   1              {
  17   2                      temp=receive_buf[buf_head++];
  18   2                      if(buf_head>=MAX_BUF_LEN)
  19   2                              buf_head=0;
  20   2              }
  21   1              if(buf_head == buf_tail)
  22   1                      is_serial_get = 0;
  23   1              return temp;
  24   1      }
  25          
  26          static void PushBuf(unsigned char temp)
  27          {
  28   1              receive_buf[buf_tail++]=temp;
  29   1          if(buf_tail>=MAX_BUF_LEN)
  30   1              buf_tail=0;
  31   1      }
  32          
  33          static void SerialBufClear()
  34          {
  35   1              buf_head = 0;
  36   1              buf_tail= 0;
  37   1              is_serial_get = 0;
  38   1      }
  39          
  40          void SerialInter() interrupt 4
  41          {
  42   1              uchar serial_value;
  43   1              if(RI)
  44   1              {
  45   2                      RI = 0;
  46   2                      serial_value = SBUF;
  47   2                      PushBuf(serial_value);
  48   2                      is_serial_get = 1;
  49   2              }
  50   1      }
  51          
  52          void CommInit()
  53          {
  54   1              TMOD = 0x21;
  55   1              TH1 = 0xfb;//11.059MHz,19200kbps
C51 COMPILER V7.06   SERIAL                                                                12/18/2007 11:18:06 PAGE 2   

  56   1              SCON=0X50;
  57   1              PCON=0X80; 
  58   1              TR1=1;//start timer 1
  59   1              TI=1;//get ready for "printf",
  60   1          RI=0;//get ready for "getchar"
  61   1              SerialBufClear();
  62   1              ES = 1;
  63   1      }
  64          
  65          
  66          bit SerialCheck()
  67          {
  68   1              return is_serial_get;
  69   1      }
  70          
  71          uchar ReadSerialBuf(uint time_out)
  72          {
  73   1              uchar idata value,i;
  74   1              while(time_out--)
  75   1              {
  76   2                      WDTReset_SM89516();
  77   2                      for(i=0;i<=112;i++)
  78   2                              ;
  79   2                      value = PopBuf();
  80   2                      if(value!=0xff)
  81   2                              return value;
  82   2              }
  83   1              return 0xff;
  84   1      }
  85          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    180    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   IDATA SIZE       =     12       2
   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 + -