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

📄 uart.lst

📁 I2C 2 UART C51 I2C 2 UART C51
💻 LST
字号:
C51 COMPILER V7.06   UART                                                                  06/18/2007 09:21:15 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.obj
COMPILER INVOKED BY: d:\Program Files\Keil\C51\BIN\C51.EXE CODE\uart.c BROWSE DEBUG OBJECTEXTEND PRINT(.\uart.lst) OBJEC
                    -T(uart.obj)

stmt level    source

   1          #include "stc51reg.h"
   2          
   3          //***************************************************************
   4          void config()
   5          {
   6   1              WDT_CONTR = 0x00;       // Watchdog Timer Control Register 关闭看门狗定时器。
   7   1              PCON  = 0x00;
   8   1      
   9   1          SCON  = 0x50;     // Serial Port Control Register
  10   1          SCON  &= 0xFC;        //clear interrupt pending flags
  11   1          TH1   = 0xFD;     // Timer 1 High Byte
  12   1          TL1   = 0xFD;
  13   1          TMOD  = 0x20;     // Timer Mode Register
  14   1          TCON  = 0x40;    // Timer Control Register  
  15   1      
  16   1      }
  17          //初始化单片机
  18          //*************************************************************************
  19          
  20          //********************************************************************
  21          void uart_sendByte(unsigned char dat)
  22          {
  23   1              SBUF=dat;
  24   1              while(!TI);                               //waite for data to transmit completely
  25   1          SCON &= 0xFD;
  26   1      }
  27          //通过串口发送1个字节的数据,dat为发送的数据
  28          //**************************************************************************
  29          
  30          //***************************************************************************
  31          unsigned char uart_recByte(void)
  32          {
  33   1              unsigned char rec=0;
  34   1              while(!RI);                               //waite to recieve data in SBUF0
  35   1              rec=SBUF;
  36   1          SCON &= 0xFE;
  37   1              return rec;
  38   1      }
  39          //接收一个字节的数据,函数返回读取到的数据
  40          //***************************************************************************
  41          
  42          //***************************************************************************
  43          unsigned char read_reg(unsigned char port,unsigned char reg)
  44          {
  45   1              uart_sendByte(((port-1)<<4)+reg);
  46   1              return uart_recByte();
  47   1      }
  48          //读取寄存器的值,port为子串口的路数,reg为寄存器的地址,返回值是寄存器的值
  49          //***************************************************************************
  50          
  51          //****************************************************************************
  52          void write_reg(unsigned char port,unsigned char reg,unsigned char dat)
  53          {
  54   1              uart_sendByte(0x80+((port-1)<<4)+reg);
C51 COMPILER V7.06   UART                                                                  06/18/2007 09:21:15 PAGE 2   

  55   1              uart_sendByte(dat);
  56   1      }
  57          //往寄存器里面写数据,port为子串口的路数,reg为寄存器的地址,dat 为写入寄存器的值
  58          //****************************************************************************
  59          
  60          //*******************************************************************************
  61          unsigned char *read_fifo(unsigned char port,unsigned char num)
  62          {
  63   1              unsigned char n;
  64   1              unsigned char * dat;
  65   1              uart_sendByte(0x40+((port-1)<<4)+num);
  66   1              for(n=0;n<num;n++)
  67   1              {       
  68   2                      *(dat+n)=uart_recByte();        
  69   2              }
  70   1              return dat;
  71   1      }
  72          //读取fifo中的数据,port为子串口的路数,num是读取的数据的个数,函数返回读取到的
  73          //数据的首地址指针
  74          //*****************************************************************************
  75          
  76          //*****************************************************************************
  77          void write_fifo(unsigned char port,unsigned char *p,unsigned char num)
  78          {
  79   1              unsigned char n;
  80   1              uart_sendByte(0xc0+((port-1)<<4)+num);  
  81   1              for(n=0;n<num;n++)
  82   1              uart_sendByte(*(p+n));
  83   1      }
  84          //写fifo,port为子串口的路数,num是读取的数据的个数,p是将要写入数据的首地址
  85          //****************************************************************************
  86          
  87          
  88          
  89          
  90          
  91          
  92          
  93          /*
  94          #include "C8051F020.h"
  95           // P0.0 = UART TX0        (Push-Pull Output)
  96           // P0.1 = UART RX0        (Open-Drain Output/Input)
  97          //***************************************************************
  98          void config()
  99          {
 100                  WDTCN = 0x07;   // Watchdog Timer Control Register
 101              WDTCN = 0xDE;   // Disable WDT
 102              WDTCN = 0xAD;
 103          
 104                  PCON  = 0X00;
 105              P0MDOUT = 0x01; // Output configuration for P0 
 106              P1MDOUT = 0x40; // Output configuration for P1 
 107          
 108          
 109                  XBR0   = 0x04;  // XBAR0: Initial Reset Value
 110                  XBR1   = 0x00;  // XBAR1: Initial Reset Value
 111                  XBR2   = 0xC0;  // XBAR2: Initial Reset Value
 112          
 113              SCON0 = 0x50;    // Serial Port Control Register
 114              SCON0 &= 0xFC;      //clear interrupt pending flags
 115          
 116              CKCON = 0x10;   // Clock Control Register
C51 COMPILER V7.06   UART                                                                  06/18/2007 09:21:15 PAGE 3   

 117              TH1   = 0xF9;    // Timer 1 High Byte
 118          
 119              TMOD  = 0x20;    // Timer Mode Register
 120              TCON  = 0x40;    // Timer Control Register 
 121                                               // P0.0 = UART TX0        (Push-Pull Output)
 122                                                   // P0.1 = UART RX0        (Open-Drain Output/Input)
 123          
 124          }
 125          //初始化单片机
 126          //*************************************************************************
 127          
 128          //********************************************************************
 129          void uart_sendByte(unsigned char dat)
 130          {
 131                  SBUF0=dat;
 132                  while(!TI0);                              //waite for data to transmit completely
 133              SCON0 &= 0xFD;
 134          }
 135          //通过串口发送1个字节的数据,dat为发送的数据
 136          //**************************************************************************
 137          
 138          //***************************************************************************
 139          unsigned char uart_recByte(void)
 140          {
 141                  unsigned char rec=0;
 142                  while(!RI0);                              //waite to recieve data in SBUF0
 143                  rec=SBUF0;
 144              SCON0 &= 0xFE;
 145                  return rec;
 146          }
 147          //接收一个字节的数据,函数返回读取到的数据
 148          //***************************************************************************
 149          
 150          //***************************************************************************
 151          unsigned char read_reg(unsigned char port,unsigned char reg)
 152          {
 153                  uart_sendByte(((port-1)<<4)+reg);
 154                  return uart_recByte();
 155          }
 156          //读取寄存器的值,port为子串口的路数,reg为寄存器的地址,返回值是寄存器的值
 157          //***************************************************************************
 158          
 159          //****************************************************************************
 160          void write_reg(unsigned char port,unsigned char reg,unsigned char dat)
 161          {
 162                  uart_sendByte(0x80+((port-1)<<4)+reg);
 163                  uart_sendByte(dat);
 164          }
 165          //往寄存器里面写数据,port为子串口的路数,reg为寄存器的地址,dat 为写入寄存器的值
 166          //****************************************************************************
 167          
 168          //*******************************************************************************
 169          unsigned char *read_fifo(unsigned char port,unsigned char num)
 170          {
 171                  unsigned char n;
 172                  unsigned char * dat;
 173                  uart_sendByte(0x40+((port-1)<<4)+num);
 174                  for(n=0;n<num;n++)
 175                  {       
 176                          *(dat+n)=uart_recByte();        
 177                  }
 178                  return dat;
C51 COMPILER V7.06   UART                                                                  06/18/2007 09:21:15 PAGE 4   

 179          }
 180          //读取fifo中的数据,port为子串口的路数,num是读取的数据的个数,函数返回读取到的
 181          //数据的首地址指针
 182          //*****************************************************************************
 183          
 184          //*****************************************************************************
 185          void write_fifo(unsigned char port,unsigned char *p,unsigned char num)
 186          {
 187                  unsigned char n;
 188                  uart_sendByte(0xc0+((port-1)<<4)+num);  
 189                  for(n=0;n<num;n++)
 190                  uart_sendByte(*(p+n));
 191          }
 192          //写fifo,port为子串口的路数,num是读取的数据的个数,p是将要写入数据的首地址
 193          //****************************************************************************
 194          
 195          
 196          */
 197          
 198          
 199          
 200          
 201          
 202          


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