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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
字号:
C51 COMPILER V7.09   MAIN                                                                  06/29/2006 13:48:36 PAGE 1   


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

line level    source

   1          /*
   2                  main.c
   3                  串行口通信方式1例程
   4          */
   5          
   6          
   7          #include <reg51.h>
   8          
   9          
  10          //参数配置
  11          #define MCLK            11059200L       //定义CPU主频(Hz)
  12          #define BAUD_RATE       9600L           //设置波特率
  13          
  14          
  15          //定义发送辅助标志
  16          static volatile bit _TI_;
  17          
  18          
  19          //定义接收缓冲区
  20          #define SIZE    40
  21          unsigned char UartBuf[SIZE];
  22          
  23          
  24          //定义接收缓冲区下标变量
  25          unsigned char BufP1;
  26          unsigned char BufP2;
  27          
  28          
  29          /*
  30          函数:UartInit()
  31          功能:串行口初始化
  32          */
  33          void UartInit()
  34          {
  35   1              unsigned char i;
  36   1              EA = 0;
  37   1              BufP1 = 0;
  38   1              BufP2 = 0;
  39   1              for ( i=0; i<SIZE; i++ )
  40   1              {
  41   2                      UartBuf[i] = 0x00;
  42   2              }
  43   1              TR1 = 0;
  44   1              RXD = 1;
  45   1              TXD = 1;
  46   1              _TI_ = 1;
  47   1              SCON = 0x50;    //串口方式1(8位Uart),允许接收
  48   1              PCON |= 0x80;   //波特率加倍
  49   1              TMOD &= 0x0F;
  50   1              TMOD |= 0x20;
  51   1              TH1 = 256 - ( MCLK / 12 ) / ( 16 * BAUD_RATE );
  52   1              TL1 = TH1;              //设置波特率
  53   1              TR1 = 1;
  54   1              ES = 1;                 //允许串行口中断
  55   1              EA = 1;                 //允许中断
C51 COMPILER V7.09   MAIN                                                                  06/29/2006 13:48:36 PAGE 2   

  56   1      }
  57          
  58          
  59          /*
  60          函数:UartINTSVC
  61          功能:串行口中断服务程序
  62          */
  63          void UartINTSVC() interrupt 4
  64          {
  65   1              char c;
  66   1              if ( RI )       //接收中断
  67   1              {
  68   2                      c = SBUF;
  69   2                      RI = 0;
  70   2                      UartBuf[BufP1++] = c;
  71   2                      if ( BufP1 >= SIZE )
  72   2                      {
  73   3                              BufP1 = 0;
  74   3                      }
  75   2              }
  76   1              if ( TI )       //发送中断
  77   1              {
  78   2                      TI = 0;
  79   2                      _TI_ = 1;
  80   2              }
  81   1      }
  82          
  83          
  84          /*
  85          函数:UartSendChar()
  86          功能:通过串行口发送单个字节
  87          参数:
  88                  c:被发送的字节数据,取值0x00~0xFF
  89          */
  90          void UartSendChar(char c)
  91          {
  92   1              while ( !_TI_ );
  93   1              _TI_ = 0;
  94   1              SBUF = c;
  95   1      }
  96          
  97          
  98          void main()
  99          {
 100   1              UartInit();
 101   1              for (;;)
 102   1              {
 103   2                      if ( BufP2 != BufP1 )
 104   2                      {
 105   3                              UartSendChar(UartBuf[BufP2++]);
 106   3                              if ( BufP2 >= SIZE )
 107   3                              {
 108   4                                      BufP2 = 0;
 109   4                              }
 110   3                      }
 111   2              }
 112   1      }
 113          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    149    ----
C51 COMPILER V7.09   MAIN                                                                  06/29/2006 13:48:36 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     42    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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