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

📄 uart.lst

📁 make mp3 by yourself
💻 LST
字号:
C51 COMPILER V7.06   UART                                                                            03/21/2006 09:38:05 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 LARGE BROWSE DEBUG OBJECTEXTEND PAGEWIDTH(130) PAGELENGTH(80)

stmt level    source

   1          
   2          /*********************************************************************************************************
   3          **                                        
   4          **                                  MP3 and U Disk Source Code
   5          **                           Copyright (c) 2005,北京博创兴业科技有限公司
   6          **                                      All Rights Reserved
   7          **                                           V3.00.0
   8          **
   9          **--------------文件信息--------------------------------------------------------------------------------
  10          **文   件   名:  UART.C
  11          **创   建   人:  Frank   Wang Xiao Jun
  12          **创 建  日 期:  2003.12
  13          **描        述:  ATMEL AT89C51SND1 串口通讯
  14          **
  15          **--------------历史版本信息----------------------------------------------------------------------------
  16          ** 创建人:      Frank   Wang Xiao Jun
  17          ** 版  本:      V1.00.0
  18          ** 日 期:      2003.12
  19          ** 描 述:  ATMEL AT89C51SND1 串口通讯
  20          **
  21          **------------------------------------------------------------------------------------------------------
  22          ** 修改人:      Kent   Zou Ying
  23          ** 版  本:  V2.00.0
  24          ** 日 期:      2004. 5
  25          ** 描 述:      ATMEL AT89C51SND1 串口通讯
  26          **
  27          **--------------当前版本修订------------------------------------------------------------------------------
  28          ** 修改人:      Phoenix    Hua Yue Guang
  29          ** 版  本:  V3.00.0
  30          ** 日 期:      2005.3
  31          ** 描 述:      ATMEL AT89C51SND1 串口通讯
  32          **
  33          **------------------------------------------------------------------------------------------------------
  34          ********************************************************************************************************/
  35          
  36          #include "REGSND1.H"
  37          #include "uart.h"
  38          
  39          #define AT89C51SND1 1                                                     //如果使用的是AT89C51SND1
  40          
  41          
  42          /*------------------------------------------------------------------------------
  43          ------------------------------------------------------------------------------*/
  44          char hex[16]  = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
  45          
  46          /*******************************************************************************************************
  47          ** 函数名称:  init_uart
  48          ** 功能描述:  串口通讯功能初始化
  49          ** 输 入:        int fre
  50          ** 输 出:        无
  51          ** 作 者: 
  52          ** 日 期: 
  53          **------------------------------------------------------------------------------------------------------
  54          ** 修改人: 
  55          ** 日 期:
  56          **------------------------------------------------------------------------------------------------------
  57          ********************************************************************************************************/
  58          void init_uart(int fre)
  59          {
  60   1      #if AT89C51SND1 
  61   1              if (fre == 1200)
  62   1              {
  63   2                      TMOD = 0x20;                                                      //设置串口工作模式
  64   2                      TH1  = 0xa9;                                                      //晶振为20M,工作波特率为1200时的溢出寄存器值
  65   2                      TL1  = 0xa9;
  66   2                      SCON = 0x50;
  67   2                      PCON = PCON|0x80;
  68   2                      TR1  = 1;                                                         //开串口中断
  69   2              }
  70   1      #else
              
C51 COMPILER V7.06   UART                                                                            03/21/2006 09:38:05 PAGE 2   

              #endif
  73   1      }
  74          
  75          /*******************************************************************************************************
  76          ** 函数名称:  printu
  77          ** 功能描述:  通过串口打印字符
  78          ** 输 入:        char * c  要打印的字符
  79          ** 输 出:        无
  80          ** 作 者: 
  81          ** 日 期: 
  82          **------------------------------------------------------------------------------------------------------
  83          ** 修改人: 
  84          ** 日 期:
  85          **------------------------------------------------------------------------------------------------------
  86          ********************************************************************************************************/
  87          void printu(char * c)   
  88          {
  89   1      
  90   1          int i = 0, j = 0;
  91   1              char ct = *c;
  92   1          init_uart(1200);
  93   1              while (ct != '\0')
  94   1              {
  95   2      #if AT89C51SND1
  96   2                      SBUF=ct;
  97   2                      while (!TI);
  98   2                      
  99   2                      j++;
 100   2                      TI = 0;
 101   2                      ct = *(c + j);
 102   2                      
 103   2      #endif
 104   2              }
 105   1      
 106   1      }
 107          
 108          /*******************************************************************************************************
 109          ** 函数名称:  printuf
 110          ** 功能描述:  通过串口打印16进制数据  功能类似ANSI C中的printf函数
 111          ** 输 入:        char * c, unsigned char cb
 112          ** 输 出:        无
 113          ** 作 者: 
 114          ** 日 期: 
 115          **------------------------------------------------------------------------------------------------------
 116          ** 修改人: 
 117          ** 日 期:
 118          **------------------------------------------------------------------------------------------------------
 119          ********************************************************************************************************/
 120          void printuf(char * c, unsigned char cb) 
 121          {
 122   1              int i = 0;
 123   1              char ct = *c;
 124   1              char cx1;
 125   1              char cx2;
 126   1          
 127   1              init_uart(1200);
 128   1              CKCON = 0x0;
 129   1      
 130   1      #if AT89C51SND1
 131   1              while (ct != '\0')
 132   1              {
 133   2                      if (ct == '%')
 134   2                      {       
 135   3                              if (*(c + i + 1) == 'x')              
 136   3                              {
 137   4                                      i += 2;
 138   4                                      cx1 = cb / 16;
 139   4                                      cx2 = cb % 16;
 140   4      
 141   4                                      SBUF = hex[cx1];
 142   4      
 143   4                                      while (!TI);
 144   4      
 145   4                                      TI = 0;
 146   4                                      SBUF = hex[cx2];
 147   4      
 148   4                                      while (!TI);
 149   4      
C51 COMPILER V7.06   UART                                                                            03/21/2006 09:38:05 PAGE 3   

 150   4                                      TI = 0;
 151   4                                      ct = *(c + i);
 152   4                                      continue;
 153   4                              }
 154   3                              if (*(c + i + 1) == 'c')              
 155   3                              {
 156   4                                      i += 2;
 157   4      
 158   4                                      SBUF = cb;
 159   4      
 160   4                                      while (!TI);
 161   4      
 162   4                                      TI = 0;
 163   4                                      ct = *(c + i);
 164   4                                      continue;
 165   4                              }
 166   3                              
 167   3                      }
 168   2                      if (ct == '/')
 169   2                      {
 170   3                              if(*(c + i + 1) == 'n')
 171   3                              {
 172   4                                      i += 2;
 173   4      
 174   4                                      SBUF = 13;
 175   4      
 176   4                                      while (!TI);
 177   4      
 178   4                                      TI = 0;
 179   4                                      SBUF = 10;
 180   4      
 181   4                                      while (!TI);
 182   4      
 183   4                                      TI = 0;
 184   4                                      ct = *(c + i);
 185   4                                      continue;
 186   4                              }
 187   3                      }
 188   2                      SBUF = ct;
 189   2      
 190   2                      while (!TI);
 191   2      
 192   2                      TI = 0;
 193   2                      i++;
 194   2                      ct = *(c + i);
 195   2              }
 196   1              CKCON = 0x1;
 197   1      
 198   1      #endif
 199   1      }


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