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

📄 uart.lst

📁 用89C51SND1C实现MP3播放器的源代码.用KEIL c51编写.
💻 LST
字号:
C51 COMPILER V6.23a  UART                                                                  12/02/2003 11:07:20 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: d:\SoftDev\Keil\C51\BIN\C51.EXE uart.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************************************/
   2          /*                                      UP-MP3DIY100                                                            */
   3          /*              Beijing Universal Pioneering Technology Co., LTD                */
   4          /*              CopyRighted,All right Reserved  www.up-tech.com                 */
   5          /*                                              July,2003                                                               */
   6          /*                              010-62387873  62381842                                                  */
   7          /****************************************************************/
   8          
   9          
  10          #include "REGSND1.H"
  11          #include "uart.h"
  12          
  13          #define AT89C51SND1 1   //如果使用的是AT89C51SND1
  14          
  15          
  16          /*------------------------------------------------------------------------------
  17          ------------------------------------------------------------------------------*/
  18          char hex[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
  19          
  20          /*------------------------------------------------------------------------------
  21          初使化串口
  22          ------------------------------------------------------------------------------*/
  23          void init_uart(int fre)
  24          {
  25   1      #if AT89C51SND1 
  26   1              if(fre==1200)
  27   1              {
  28   2                      TMOD=0x20;//设置串口工作模式
  29   2                      TH1=0xbe;//晶振为16M,工作波特率为1200时的溢出寄存器值
  30   2                      TL1=0xbe;
  31   2                      SCON=0x50;
  32   2                      PCON=PCON|0x80;
  33   2                      TR1=1;//开串口中断
  34   2              }
  35   1      #else
              
              #endif
  38   1      }
  39          
  40          /*--------------------------------------------------------------------
  41          当输出仅为字符串时可使用
  42          ---------------------------------------------------------------------*/
  43          void printu(char * c)   
  44          {
  45   1      
  46   1          int i=0,j=0;
  47   1              char ct=*c;
  48   1          init_uart(1200);
  49   1              while(ct!='\0')
  50   1              {
  51   2      #if AT89C51SND1
  52   2                      SBUF=ct;
  53   2                      while(!TI);
  54   2                      
  55   2                      j++;
C51 COMPILER V6.23a  UART                                                                  12/02/2003 11:07:20 PAGE 2   

  56   2                      TI=0;
  57   2                      ct=*(c+j);
  58   2                      
  59   2      #endif
  60   2              }
  61   1      
  62   1      }
  63          
  64          /*-------------------------------------------------------------------------------
  65          当输出为字符串时可使用或含有一控制符时使用,格式符仅用于16进制输出
  66          格式控制符为%x,回车控制符为\n,调用此函数的格式如printuf("Song:%x\n",NumofSong);
  67          --------------------------------------------------------------------------------*/
  68          void printuf(char * c,unsigned char cb) 
  69          {
  70   1              int i=0;
  71   1              char ct=*c;
  72   1              char cx1;
  73   1              char cx2;
  74   1          
  75   1              init_uart(1200);
  76   1              CKCON=0x0;
  77   1      
  78   1      #if AT89C51SND1
  79   1              while (ct!='\0')
  80   1              {
  81   2                      if(ct=='%')
  82   2                      {       
  83   3                              if(*(c+i+1)=='x')              
  84   3                              {
  85   4                                      i+=2;
  86   4                                      cx1=cb/16;
  87   4                                      cx2=cb%16;
  88   4      
  89   4                                      SBUF=hex[cx1];
  90   4                                      while(!TI);
  91   4                                      TI=0;
  92   4                                      SBUF=hex[cx2];
  93   4                                      while(!TI);
  94   4                                      TI=0;
  95   4                                      ct=*(c+i);
  96   4                                      continue;
  97   4                              }
  98   3                              if(*(c+i+1)=='c')              
  99   3                              {
 100   4                                      i+=2;
 101   4      
 102   4                                      SBUF=cb;
 103   4                                      while(!TI);
 104   4                                      TI=0;
 105   4                                      ct=*(c+i);
 106   4                                      continue;
 107   4                              }
 108   3                              
 109   3                      }
 110   2                      if(ct=='/')
 111   2                      {
 112   3                              if(*(c+i+1)=='n')
 113   3                              {
 114   4                                      i+=2;
 115   4                                      SBUF=13;
 116   4                                      while(!TI);
 117   4                                      TI=0;
C51 COMPILER V6.23a  UART                                                                  12/02/2003 11:07:20 PAGE 3   

 118   4                                      SBUF=10;
 119   4                                      while(!TI);
 120   4                                      TI=0;
 121   4                                      ct=*(c+i);
 122   4                                      continue;
 123   4                              }
 124   3                      }
 125   2                      SBUF=ct;
 126   2                      while(!TI);
 127   2                      TI=0;
 128   2                      i++;
 129   2                      ct=*(c+i);
 130   2              }
 131   1              CKCON=0x1;
 132   1      
 133   1      #endif
 134   1      }


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