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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
字号:
C51 COMPILER V7.09   MAIN                                                                  06/29/2006 13:51:06 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                  串行口通信方式3例程
   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 = 0xD0;    //串口方式3(9位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:51:06 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                      ACC = c;
  71   2                      F0 = P;
  72   2                      if ( F0 == RB8 )
  73   2                      {
  74   3                              UartBuf[BufP1++] = c;
  75   3                              if ( BufP1 >= SIZE )
  76   3                              {
  77   4                                      BufP1 = 0;
  78   4                              }
  79   3                      }
  80   2              }
  81   1              if ( TI )       //发送中断
  82   1              {
  83   2                      TI = 0;
  84   2                      _TI_ = 1;
  85   2              }
  86   1      }
  87          
  88          
  89          /*
  90          函数:UartSendChar()
  91          功能:通过串行口发送单个字节
  92          参数:
  93                  c:被发送的字节数据,取值0x00~0xFF
  94          */
  95          void UartSendChar(char c)
  96          {
  97   1              while ( !_TI_ );
  98   1              _TI_ = 0;
  99   1              ACC = c;
 100   1              TB8 = P;
 101   1              SBUF = c;
 102   1      }
 103          
 104          
 105          void main()
 106          {
 107   1              UartInit();
 108   1              for (;;)
 109   1              {
 110   2                      if ( BufP2 != BufP1 )
 111   2                      {
 112   3                              UartSendChar(UartBuf[BufP2++]);
 113   3                              if ( BufP2 >= SIZE )
 114   3                              {
 115   4                                      BufP2 = 0;
 116   4                              }
 117   3                      }
C51 COMPILER V7.09   MAIN                                                                  06/29/2006 13:51:06 PAGE 3   

 118   2              }
 119   1      }
 120          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    167    ----
   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 + -