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

📄 main.lst

📁 sst芯片参考 增强UART功能
💻 LST
字号:
C51 COMPILER V8.01   MAIN                                                                  04/19/2006 10:46:36 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <2_UART_SST.h>
   2          #include <stdio.h>
   3          
   4          extern xdata struct uart1_rx_strut 
   5          {
   6                  uchar  no_data_count ;                  //接收缓冲区无数据的时间计数,接收到数据,将置为0,没有数据时,20ms加一(在定时中断内
             -加一)
   7                  uchar  rx_state ;                               //接收的状态
   8                  uchar  rx_bitcont ;                             //接收的一个数据的位数(常用的为8位宽度)
   9                  uchar  buff[MAX_SIZE_BUF] ;             //接收缓冲区大小
  10                  uint   count   ;                                //已经接收的数据个数,也可根据接收的数目,来判断有无新数据,在取出数据后,将这个数目清零
  11          }uart2_rx,uart1_rx ;                            //原来的BUFFER设为256,由于SST89E516的XRAM为300H,如果分配4个256的BUFFER,SST MCU内部
             -的XRAM便不够,
  12                                                                                  //因此出现第2个UART不能接收或发送的现象.
  13          //----------------------------------------
  14          void main(void )
  15          {
  16   1              UART_SST_init( ) ;                      //调用扩展UART的初始化函数
  17   1              UART1_rx_disable();                     //这里无用,只是防止在编译时出现未调用的警告.
  18   1              UART1_rx_enable( );                     //允许UART1进行接收
  19   1              UART2_rx_disable();                     //这里无用,只是防止在编译时出现未调用的警告.
  20   1              UART2_rx_enable( );                     ////允许UART1进行接收
  21   1      
  22   1              EA = 1 ;                                        //开总中断
  23   1      
  24   1              while(1)
  25   1              {       
  26   2                      if( uart2_rx.no_data_count > 250 )              //连续250循环中没有接收到数据,开始发送接收的数据
  27   2                      {                                                                               //if didn't receive data beyond 1 second, consider receive data finished
  28   3                              if( uart2_rx.count != 0 )
  29   3                                      {                                                                       //if received data ,transfer it                 
  30   4                                      UART2_send_out( uart2_rx.buff ,uart2_rx.count );        //就将接收缓冲区的数据全部发送出去
  31   4                                      uart2_rx.count = 0 ;                                            //发送完毕,就将接收的数目改为0,表示接收区的内容已全部取出
  32   4                                      }
  33   3                              uart2_rx.no_data_count = 0 ;            //置接收缓冲区内有数据标志,没有数据时,置为非0标志
  34   3                      }
  35   2      
  36   2      
  37   2                      if ( uart1_rx.no_data_count > 250 )             //连续250循环中没有接收到数据,开始发送接收的数据
  38   2                      {                                                                               //if didn't receive data beyond 1 second, consider receive data finished
  39   3                              if( uart1_rx.count != 0 )
  40   3                                      {                                                                       //if received data ,transfer it                 
  41   4                                      UART1_send_out( uart1_rx.buff ,uart1_rx.count );        //就将接收缓冲区的数据全部发送出去
  42   4                                      uart1_rx.count = 0 ;                                            //发送完毕,就将接收的数目改为0,表示接收区的内容已全部取出
  43   4                                      }
  44   3                              uart1_rx.no_data_count = 0 ;            //置接收缓冲区内有数据标志,没有数据时,置为非0标志
  45   3                      }
  46   2      
  47   2      
  48   2                      uart1_rx.no_data_count++;                               //一个循环,接收无数据的次数加一
  49   2                      uart2_rx.no_data_count++;                               //一个循环,接收无数据的次数加一
  50   2              }       
  51   1      }       


C51 COMPILER V8.01   MAIN                                                                  04/19/2006 10:46:36 PAGE 2   

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