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

📄 uart.lst

📁 8051单片机与RTL8019AS的UDP协议栈
💻 LST
字号:
C51 COMPILER V7.06   UART                                                                  02/28/2008 17:09:35 PAGE 1   


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

stmt level    source

   1          /******************************************************************
   2             本程序只供学习使用,未经作者许可,不得用于其它任何用途
   3          
   4                  欢迎访问我的USB专区:http://group.ednchina.com/93/
   5                  欢迎访问我的blog:   http://www.ednchina.com/blog/computer00
   6                                       http://computer00.21ic.org
   7          
   8          UART.C  file
   9          
  10          作者:Computer-lov
  11          建立日期: 2007.03.20
  12          修改日期: 2007.11.18
  13          版本:V1.1
  14          版权所有,盗版必究。
  15          Copyright(C) Computer-lov 2007-2017
  16          All rights reserved            
  17          *******************************************************************/
  18          
  19          #include "reg52.H"
  20          
  21          #include "UART.h"
  22          #include "my_type.h"
  23          #include "config.h"
  24          
  25          
  26          uint8 Sending;
  27          
  28          
  29          /********************************************************************
  30          函数功能:串口初始化。
  31          入口参数:无。
  32          返    回:无。
  33          备    注:无。
  34          ********************************************************************/
  35          void InitUART(void)
  36          {
  37   1       EA=0;
  38   1       TMOD&=0x0F;
  39   1       TMOD|=0x20;    //定时器1工作在模式2
  40   1       SCON=0x50;     //串口工作在模式1
  41   1       TCON=0x05;
  42   1       TH1=256-Fclk/(BitRate*12*16);
  43   1       TL1=256-Fclk/(BitRate*12*16); 
  44   1       PCON=0x80;    //串口波特率加倍
  45   1       ES=1;         //串行中断允许
  46   1       TR1=1;        //启动定时器1
  47   1       REN=1;        //允许接收 
  48   1       EA=1;         //允许中断
  49   1      }
  50          ////////////////////////End of function//////////////////////////////
  51          
  52            
  53          /********************************************************************
  54          函数功能:串口中断处理。
  55          入口参数:无。
C51 COMPILER V7.06   UART                                                                  02/28/2008 17:09:35 PAGE 2   

  56          返    回:无。
  57          备    注:无。
  58          ********************************************************************/
  59          void UartISR(void) interrupt 4
  60          {
  61   1       if(RI)    //收到数据
  62   1        {
  63   2         RI=0;   //清中断请求
  64   2        }
  65   1       else      //发送完一字节数据
  66   1        {
  67   2         TI=0;
  68   2         Sending=0;  //清正在发送标志
  69   2        }
  70   1      }
  71          ////////////////////////End of function//////////////////////////////
  72          
  73          /********************************************************************
  74          函数功能:往串口发送一字节数据。
  75          入口参数:d: 要发送的字节数据。
  76          返    回:无。
  77          备    注:无。
  78          ********************************************************************/
  79          void UartPutChar(uint8 d)
  80          {
  81   1       Sending=1;
  82   1       SBUF=d;
  83   1       while(Sending);
  84   1      }
  85          ////////////////////////End of function//////////////////////////////
  86          
  87          /********************************************************************
  88          函数功能:发送一个字符串。
  89          入口参数:pd:要发送的字符串指针。
  90          返    回:无。
  91          备    注:无。
  92          ********************************************************************/
  93          void Prints(uint8 * pd)
  94          {
  95   1       while((*pd)!='\0')
  96   1        {
  97   2         UartPutChar(*pd);
  98   2         pd++;
  99   2        }
 100   1      }
 101          ////////////////////////End of function//////////////////////////////
 102          
 103          /********************************************************************
 104          函数功能:将整数转按十进制字符串发送。
 105          入口参数:x:待显示的整数。
 106          返    回:无。
 107          备    注:无。
 108          ********************************************************************/
 109          void PrintLongInt(uint32 x)
 110          {
 111   1       int8 i;
 112   1       uint8 display_buffer[10];
 113   1      
 114   1       for(i=9;i>=0;i--)
 115   1        {
 116   2         display_buffer[i]='0'+x%10;
 117   2         x/=10;
C51 COMPILER V7.06   UART                                                                  02/28/2008 17:09:35 PAGE 3   

 118   2        }
 119   1       for(i=0;i<9;i++)
 120   1        {
 121   2         if(display_buffer[i]!='0')break;
 122   2        }
 123   1       for(;i<10;i++)UartPutChar(display_buffer[i]);
 124   1      }
 125          ////////////////////////End of function//////////////////////////////
 126          
 127          code uint8 HexTable[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
 128          /********************************************************************
 129          函数功能:将短整数按十六进制发送。
 130          入口参数:待发送的整数。
 131          返    回:无。
 132          备    注:无。
 133          ********************************************************************/
 134          /*void PrintShortIntHex(uint16 x)
 135          {
 136           uint8 i;
 137           uint8 display_buffer[7];
 138           display_buffer[6]=0;
 139           display_buffer[0]='0';
 140           display_buffer[1]='x';
 141           for(i=5;i>=2;i--)
 142            {
 143             display_buffer[i]=HexTable[(x&0xf)];
 144             x>>=4;
 145            }
 146           Prints(display_buffer);
 147          }*/
 148          ////////////////////////End of function//////////////////////////////
 149          
 150          /********************************************************************
 151          函数功能:将整数按十六进制发送。
 152          入口参数:待发送的整数。
 153          返    回:无。
 154          备    注:无。
 155          ********************************************************************/
 156          /*
 157          void PrintLongIntHex(uint32 x)  //
 158          {
 159           uint8 i;
 160           uint8 display_buffer[11];
 161           display_buffer[10]=0;
 162           display_buffer[0]='0';
 163           display_buffer[1]='x';
 164           for(i=9;i>=2;i--)
 165            {
 166             display_buffer[i]=HexTable[(x&0xf)];
 167             x>>=4;
 168            }
 169           Prints(display_buffer);
 170          }
 171          */
 172          ////////////////////////End of function//////////////////////////////
 173          
 174          
 175          /********************************************************************
 176          函数功能:发送一个byte的数据。
 177          入口参数:待发送的数据。
 178          返    回:无。
 179          备    注:无。
C51 COMPILER V7.06   UART                                                                  02/28/2008 17:09:35 PAGE 4   

 180          ********************************************************************/
 181          void Printc(uint8 x)
 182          {
 183   1       Sending=1;
 184   1       SBUF=x;
 185   1       while(Sending);
 186   1      }
 187          ////////////////////////End of function//////////////////////////////
 188          
 189          
 190          /********************************************************************
 191          函数功能:以HEX格式发送一个byte的数据。
 192          入口参数:待发送的数据
 193          返    回:无。
 194          备    注:无。
 195          ********************************************************************/
 196          void PrintHex(uint8 x)
 197          {
 198   1       Printc('0');
 199   1       Printc('x');
 200   1       Printc(HexTable[x>>4]);
 201   1       Printc(HexTable[x&0xf]);
 202   1       Printc(' ');
 203   1      }
 204          ////////////////////////End of function//////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    238    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      15
   IDATA SIZE       =   ----    ----
   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 + -