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

📄 test1.lst

📁 嵌入式C语言程序设计教材的程序例子代码
💻 LST
字号:
C51 COMPILER V7.07   TEST1                                                                 06/13/2004 22:46:19 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE TEST1
OBJECT MODULE PLACED IN test1.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE test1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*------------------------------------------------------------------------------
   2          rs232.C
   3          
   4          Copyright 1995-1999 Keil Software, Inc.
   5          ------------------------------------------------------------------------------*/
   6          
   7          #include <AT89X51.h>
   8          #include <stdio.h>
   9          
  10          #define XTAL    11059200
  11          #define baudrate        9600
  12          
  13          #define OLEN            8
  14          
  15          unsigned char   ostart;
  16          unsigned char   oend;
  17          char idata              outbuf[OLEN];
  18                  
  19          #define ILEN            8
  20          
  21          unsigned char   istart;
  22          unsigned char   iend;
  23          char idata              inbuf[ILEN];
  24          bit                             sendfull;
  25          bit                             sendactive;
  26          
  27          static void com_isr(void) interrupt 4 using 1
  28          {
  29   1              char    c;
  30   1              if(RI) {
  31   2                      c=SBUF;
  32   2                      RI=0;
  33   2                      if(istart+ILEN != iend) {
  34   3                              inbuf[iend++ & (ILEN-1)]=c;
  35   3                      }
  36   2              }
  37   1              if(TI!=0) {
  38   2                      TI=0;
  39   2                      if(ostart != oend) {
  40   3                              SBUF=outbuf[ostart++ & (OLEN-1)];
  41   3                              sendfull=0;
  42   3                      }
  43   2                      else {
  44   3                              sendactive=0;
  45   3                      }
  46   2              }
  47   1      }
  48          void com_initialize(void) {
  49   1              istart=0;
  50   1              iend=0;
  51   1              ostart=0;
  52   1              oend=0;
  53   1              sendactive=0;
  54   1              sendfull=0;
  55   1              PCON |= 0x80;
C51 COMPILER V7.07   TEST1                                                                 06/13/2004 22:46:19 PAGE 2   

  56   1              TMOD|=0x20;
  57   1              TH1=(unsigned char) (256-(XTAL/(16L*12L*baudrate)));
  58   1              TR1=1;
  59   1              SCON=0x50;
  60   1              ES=1;
  61   1      }
  62          
  63          void putbuf(char c) {
  64   1              if(!sendfull) {
  65   2                      if(!sendactive) {
  66   3                              sendactive=1;
  67   3                              SBUF=c;
  68   3                  }
  69   2                  else {
  70   3                              ES=0;
  71   3                              outbuf[oend++ & (OLEN-1)]=c;
  72   3                              if((( oend ^ ostart) & (OLEN-1))==0) {
  73   4                                      sendfull=1;
  74   4                              }
  75   3                              ES=1;
  76   3              }
  77   2              }
  78   1      }
  79          char putchar(char c)
  80          {
  81   1              if(c == '\n') {
  82   2                      while(sendfull);
  83   2                      putbuf(0x0D);
  84   2              }
  85   1              while(sendfull);
  86   1              putbuf(c);
  87   1              return(c);
  88   1      }
  89          
  90          char _getkey(void) {
  91   1              char c;
  92   1              while(iend==istart) {
  93   2                      ;
  94   2              }
  95   1              ES=0;
  96   1              c=inbuf[istart++ & (ILEN-1)];
  97   1              ES=1;
  98   1              return(c);
  99   1      }
 100          
 101          void main (void)  {
 102   1              EA=1;
 103   1        
 104   1              com_initialize();
 105   1              while(1) {
 106   2              char c;
 107   2              c=getchar();
 108   2              printf("\nYou typed the character %c.\n",c);
 109   2          }
 110   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    214    ----
   CONSTANT SIZE    =     30    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.07   TEST1                                                                 06/13/2004 22:46:19 PAGE 3   

   DATA SIZE        =      4       1
   IDATA SIZE       =     16    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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