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

📄 uart.lst

📁 AT89C51 I2C接口通信程序例程.rar
💻 LST
字号:
C51 COMPILER V7.04   UART                                                                  11/28/2007 16:14:11 PAGE 1   


C51 COMPILER V7.04, 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          /* 文件名  :UART.c
   3          /* 芯片    :Atmel AT89C51
   4          /* 作者    :Ericson
   5          /* 日期    :2007.11.15
   6          /* 功能描述:本文件为UART串行通信协议提供支持,通过AT89C51的通用UART接口
   7                                  发送和接收上位机的命令。本软件实用于采用RS485外扩接口芯片实现
   8                                  的半双工通信方式。
   9                                   
  10          /***********************************************************************/
  11          
  12          //***********************************************************************
  13          //包含头文件
  14          #include "UART.h"
  15          #include "BOARD.h"
  16          
  17          //***********************************************************************
  18          //串行口波特率设定函数
  19          //参数:br -- 波特率参数,其相关定义参照<UART.h>
  20          void UART_SetBaudRate(uchar br)
  21          {
  22   1              switch(br)
  23   1              {
  24   2                      case BAUD_RATE_300       :      TH1 = 0xA0;TL1 = 0xA0;PCON &= 0x7F;break;
  25   2                      case BAUD_RATE_600   :  TH1 = 0xD0;TL1 = 0xD0;PCON &= 0x7F;break;
  26   2                      case BAUD_RATE_1200  :  TH1 = 0xE8;TL1 = 0xE8;PCON &= 0x7F;break;
  27   2                      case BAUD_RATE_2400  :  TH1 = 0xF4;TL1 = 0xF4;PCON &= 0x7F;break;
  28   2                      case BAUD_RATE_4800  :  TH1 = 0xFA;TL1 = 0xFA;PCON &= 0x7F;break;
  29   2                      case BAUD_RATE_9600  :  TH1 = 0xFD;TL1 = 0xFD;PCON &= 0x7F;break;
  30   2                      case BAUD_RATE_19200 :  TH1 = 0xFD;TL1 = 0xFD;PCON |= 0x80;break;
  31   2                      default : break;
  32   2              }
  33   1      }
  34          
  35          //***********************************************************************
  36          //串行口启动函数
  37          //参数说明:无
  38          void UART_Init(void)
  39          {
  40   1              uchar index;
  41   1              for(index = 0;index<BUFFER_LENGTH;index++)
  42   1              {
  43   2                      RcvBUF[index] = 0;
  44   2                      TrxBUF[index] = 0;
  45   2              }
  46   1              TMOD &= 0x0F;
  47   1          TMOD |= 0x20;                                                       //Timer1工作在模式2,即8位硬件自动加载
  48   1              UART_SetBaudRate(BAUD_RATE_9600);
  49   1              SCON = 0x50;                                                    //UART工作在8-bit模式,使能串行口接收
  50   1              ES = 1;                                                         //开启串行口中断
  51   1              PS = 1;                                                                 //串行口中断设为高优先级
  52   1              if((TMOD&0x03) != 0x03)         TR1 = 1;        //如果定时器0不是工作在方式3,启动定时器1,否则不用。
  53   1              UARTCTRL = 0;                                                   //默认为接收模式
  54   1      }
  55          
C51 COMPILER V7.04   UART                                                                  11/28/2007 16:14:11 PAGE 2   

  56          //***********************************************************************
  57          //串行口发送一个字符串函数
  58          //参数说明:str -- 待发送的字符串首地址
  59          //                      len     -- 待发送的字符串长度,最大为250
  60          bit UART_SendStr(uchar *str,uchar len)
  61          {
  62   1              uchar index;
  63   1              if( len>BUFFER_LENGTH )   return(FALSE);
  64   1              UARTCTRL = 1;
  65   1              Delay_1ms();
  66   1              ES = 0;
  67   1              for(index = 0;index<len;index++)
  68   1              {
  69   2                      SBUF = *(str+index);
  70   2                      while(TI == 0);
  71   2                      TI = 0;
  72   2              }
  73   1              ES = 1;
  74   1              Delay_1ms();
  75   1              UARTCTRL = 0;
  76   1      }
  77          
  78          //结束


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    206    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -