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

📄 uart.lst

📁 STC51+PDIUSBD12 USB鼠标源代码
💻 LST
字号:
C51 COMPILER V8.02   UART                                                                  03/04/2008 13:50:52 PAGE 1   


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

line level    source

   1          #include "mytype.h"
   2          #include "d12.h"
   3          
   4          #define Fclk      22118400UL             /*使用22.1184M晶体*/
   5          #define BitRate   9600UL                     /*波特率定义为9600*/
   6          
   7          uint8 Sending;
   8          
   9          
  10          //串口初始化
  11          void InitUART(void)
  12          {  EA=0;
  13   1         TMOD&=0x0F;
  14   1         TMOD|=0x20;    //定时器1工作在模式2
  15   1         SCON=0x50;     //串口工作在模式1
  16   1         TCON=0x05;
  17   1         TH1=256-Fclk/(BitRate*12*16);
  18   1         TL1=256-Fclk/(BitRate*12*16); 
  19   1         PCON=0x80;    //串口波特率加倍
  20   1         ES=1;         //串行中断允许
  21   1         TR1=1;        //启动定时器1
  22   1         REN=1;        //允许接收 
  23   1         EA=1;         //允许中断
  24   1      }
  25          
  26          void UartISR(void) interrupt 4
  27          {
  28   1       if(RI)    //收到数据
  29   1        {
  30   2         RI=0;   //清中断请求
  31   2        }
  32   1       else      //发送完一字节数据
  33   1        {
  34   2         TI=0;
  35   2         Sending=0;  //清正在发送标志
  36   2        }
  37   1      }
  38          
  39          void UartPutChar(uint8 d)
  40          {
  41   1       Sending=1;
  42   1       SBUF=d;
  43   1       while(Sending);
  44   1      }
  45          
  46          /********************************************************************
  47          函数功能:发送一个字符串。
  48          入口参数:pd:要发送的字符串指针。
  49          返    回:无。
  50          备    注:无。
  51          ********************************************************************/
  52          void Prints(uint8 * pd)
  53          {
  54   1       while((*pd)!='\0')
  55   1        {
C51 COMPILER V8.02   UART                                                                  03/04/2008 13:50:52 PAGE 2   

  56   2         UartPutChar(*pd);
  57   2         pd++;
  58   2        }
  59   1      }
  60          
  61          /********************************************************************
  62          函数功能:将整数转按十进制字符串发送。
  63          入口参数:x:待显示的整数。
  64          返    回:无。
  65          备    注:无。
  66          ********************************************************************/
  67          /*void PrintLongInt(uint32 x)
  68          {
  69           int8 i;
  70           uint8 display_buffer[10];
  71          
  72           for(i=9;i>=0;i--)
  73            {
  74             display_buffer[i]='0'+x%10;
  75             x/=10;
  76            }
  77           for(i=0;i<9;i++)
  78            {
  79             if(display_buffer[i]!='0')break;
  80            }
  81           for(;i<10;i++)UartPutChar(display_buffer[i]);
  82          }
  83          /*void PrintShortIntHex(uint16 x)
  84          {
  85           uint8 i;
  86           uint8 display_buffer[7];
  87           display_buffer[6]=0;
  88           display_buffer[0]='0';
  89           display_buffer[1]='x';
  90           for(i=5;i>=2;i--)
  91            {
  92             display_buffer[i]=HexTable[(x&0xf)];
  93             x>>=4;
  94            }
  95           Prints(display_buffer);
  96          }
  97          /********************************************************************
  98          函数功能:发送一个byte的数据。
  99          入口参数:待发送的数据。
 100          返    回:无。
 101          备    注:无。
 102          ********************************************************************/
 103          void Printc(uint8 x)
 104          {
 105   1       Sending=1;
 106   1       SBUF=x;
 107   1       while(Sending);
 108   1      }
 109          code uint8 HexTable[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
 110          void PrintShortIntHex(uint16 x)
 111          {
 112   1       uint8 i;
 113   1       uint8 display_buffer[7];
 114   1       display_buffer[6]=0;
 115   1       display_buffer[0]='0';
 116   1       display_buffer[1]='x';
 117   1       for(i=5;i>=2;i--)
C51 COMPILER V8.02   UART                                                                  03/04/2008 13:50:52 PAGE 3   

 118   1        {
 119   2         display_buffer[i]=HexTable[(x&0xf)];
 120   2         x>>=4;
 121   2        }
 122   1       Prints(display_buffer);
 123   1      }
 124          void PrintHex(uint8 x)
 125          {
 126   1       Printc('0');
 127   1       Printc('x');
 128   1       Printc(HexTable[x>>4]);
 129   1       Printc(HexTable[x&0xf]);
 130   1       Printc(' ');
 131   1      }
 132          


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