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

📄 uart51.lst

📁 基于51平台的串口一扩五芯片GM8125的测试程序
💻 LST
字号:
C51 COMPILER V7.50   UART51                                                                03/09/2005 21:43:21 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE UART51
OBJECT MODULE PLACED IN uart51.OBJ
COMPILER INVOKED BY: E:\学习工具\Keil51\C51\BIN\C51.EXE uart51.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************************
   2          * 文件:uart51.c
   3          * 功能:UART0和UART1基本操作程序库
   4          * 作者:宋智宁
   5          * 日期:2005.3.8
   6          * 备注:支持AT89S52(入口参数uart_no无效),中断服务程序由用户来修改
   7          *********************************************************************************/
   8          #include "config.h"
   9          
  10          /******************************************************************************
  11          * 名称:Uart_Init()
  12          * 功能:UART初始化子程序
  13          * 入口参数:bit uart_no --选择串口(无效)
  14          *           unsigned char mode--串口模式
  15          *                       unsigned int bd_rate--常用波特率
  16          * 出口参数:无
  17          * 使用全局变量:无
  18          * 说明:(1) CPU:AT89S52
  19          *               (2) 晶振频率:11.0592 MHz
  20          *               (3) 机器周期:1.08 us
  21          *               (4) UART: 用TIMER1      
  22          *               (5) 注意串口工作方式和中断的开启
  23          *       (6) 最大波特率57600bps
  24          ******************************************************************************/
  25          void Uart_Init(bit uart_no, unsigned char mode, unsigned int bd_rate)
  26          {
  27   1        unsigned int timerval;
  28   1      
  29   1        EA = 0; //初始化时关总中断
  30   1      
  31   1      //----Timer1-Init-----------------------------
  32   1        TMOD = (TMOD&0x0f)+0x20; //TIMER1,MODE2
  33   1      
  34   1        if(bd_rate>28800)
  35   1        {
  36   2          bd_rate = bd_rate/2;
  37   2              PCON |= 0x80;  //SMOD = 1;
  38   2        }else
  39   1          PCON &= 0x7F;  //SMOD = 0; 
  40   1                       
  41   1        timerval = 0x00 - 28800/bd_rate; //BD_RATE = (fosc/(12*(256-N)))/32;
  42   1        TR1 = 0; 
  43   1        TH1 = (unsigned char)timerval;   
  44   1        TL1 = (unsigned char)timerval;  
  45   1        TR1 = 1;  
  46   1      //----Uart0-Init-----------------------------    
  47   1        if(mode<=3)
  48   1        {    
  49   2          SCON = (mode<<6) | 0x10;  //SERIAL0 MODE=mode ; REN=1; SM2=0
  50   2        }
  51   1      
  52   1        #if SERIAL_INT_EN==1
  53   1          ES = 1;  
  54   1        #else
                  ES = 0;
C51 COMPILER V7.50   UART51                                                                03/09/2005 21:43:21 PAGE 2   

                #endif 
  57   1       
  58   1        EA = 1; //开总中断 (注意串行中断的ISR)
  59   1      }
*** WARNING C280 IN LINE 25 OF UART51.C: 'uart_no': unreferenced local variable
  60          
  61          /******************************************************************************
  62          * 名称:Uart_Send_Byte()
  63          * 功能:Uart发送 N Byte子程序
  64          * 入口参数:bit uart_no --选择串口(无效)
  65          *           unsigned char buf[] --发送数据指针
  66          *                       unsigned char num --发送字节数
  67          * 出口参数:无
  68          * 使用全局变量:无
  69          ******************************************************************************/
  70          void Uart_Send_Byte(bit uart_no, unsigned char buf[], unsigned char num)
  71          {
  72   1        unsigned char i;
  73   1      
  74   1        #if SERIAL_INT_EN==1
  75   1          ES = 0; //关中断
  76   1        #endif
  77   1      
  78   1        for(i=0; i<num; i++)
  79   1        { 
  80   2          SBUF = buf[i];       //Uart
  81   2          while(!TI);  //wait for send
  82   2          TI = 0;
  83   2        }
  84   1        #if SERIAL_INT_EN==1
  85   1          ES = 1; //开中断
  86   1        #endif        
  87   1      }
*** WARNING C280 IN LINE 70 OF UART51.C: 'uart_no': unreferenced local variable
  88          
  89          /******************************************************************************
  90          * 名称:Uart_Send_Str()
  91          * 功能:Uart顺序发送字符串子程序
  92          * 入口参数:bit uart_no --选择串口(无效)
  93          *           unsigned char *str_dat ----字符串指针
  94          * 出口参数:无
  95          * 使用全局变量:无
  96          ******************************************************************************/
  97          void Uart_Send_Str(bit uart_no, unsigned char *str_p)
  98          {
  99   1        unsigned char i;
 100   1      
 101   1        #if SERIAL_INT_EN==1
 102   1          ES = 0; //关中断
 103   1        #endif 
 104   1      
 105   1        while((*str_p)!=0)
 106   1        {
 107   2          SBUF = (*str_p++);   //uart
 108   2          while(!TI);  //wait for send
 109   2          TI = 0;
 110   2        }
 111   1        #if SERIAL_INT_EN==1
 112   1          ES = 1; //开中断
 113   1        #endif 
 114   1      }
*** WARNING C280 IN LINE 97 OF UART51.C: 'uart_no': unreferenced local variable
C51 COMPILER V7.50   UART51                                                                03/09/2005 21:43:21 PAGE 3   

*** WARNING C280 IN LINE 99 OF UART51.C: 'i': unreferenced local variable
 115          
 116          /******************************************************************************
 117          * 名称:Uart_Rev_Byte()
 118          * 功能:Uart等待接收 N Byte子程序
 119          * 入口参数:bit uart_no --选择串口(无效)
 120          *           unsigned char buf[] --接收缓冲区
 121          *                       unsigned char num --接收字节数
 122          * 出口参数:无
 123          * 使用全局变量:无
 124          ******************************************************************************/
 125          void Uart_Rev_Byte(bit uart_no, unsigned char buf[], unsigned char num)
 126          {
 127   1        unsigned char i;
 128   1          
 129   1        #if SERIAL_INT_EN==1
 130   1          ES = 0; //关中断
 131   1        #endif 
 132   1      
 133   1        for(i=0; i<num; i++)
 134   1        { 
 135   2          while(!RI);  //uart0
 136   2          buf[i] = SBUF;   //receive data
 137   2          RI = 0;
 138   2        }
 139   1        #if SERIAL_INT_EN==1
 140   1          ES = 1; //开中断
 141   1        #endif    
 142   1      }
*** WARNING C280 IN LINE 125 OF UART51.C: 'uart_no': unreferenced local variable
 143          
 144          
 145          #if SERIAL_INT_EN==1
 146          
 147          /******************************************************************************
 148          * 名称:ISR_Uart_Rev()
 149          * 功能:Uart接收数据中断服务程序
 150          * 入口参数:无
 151          * 出口参数:无
 152          * 使用全局变量:unsigned char buf[]--接收缓冲区
 153          * 说明:本函数由用户根据需要修改
 154          ******************************************************************************/
 155          void ISR_Uart_Rev(void) interrupt 4
 156          {
 157   1        if(TI) //发送中断
 158   1        {
 159   2          TI = 0;
 160   2              return; 
 161   2        }
 162   1        if(RI) //接收中断
 163   1        {
 164   2          RI = 0;
 165   2          GM8125_Byte_Rev(SBUF); //GM8125数据接收处理子程序(供中断服务程序调用)
 166   2        }
 167   1      } 
 168          
 169          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    270    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V7.50   UART51                                                                03/09/2005 21:43:21 PAGE 4   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       4
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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